From 516d6ce17132d7be76409ef9040bee9c104b53de Mon Sep 17 00:00:00 2001 From: robrobbins Date: Tue, 6 Feb 2024 01:29:38 +0000 Subject: [PATCH 1/3] adjust dist path in mina-signer tests. fixes for fieldToHex --- src/mina-signer/src/rosetta.ts | 7 ++++--- src/mina-signer/tests/client.test.ts | 2 +- src/mina-signer/tests/keypair.test.ts | 2 +- src/mina-signer/tests/message.test.ts | 4 ++-- src/mina-signer/tests/payment.test.ts | 4 ++-- src/mina-signer/tests/rosetta.test.ts | 2 +- src/mina-signer/tests/stake-delegation.test.ts | 4 ++-- 7 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/mina-signer/src/rosetta.ts b/src/mina-signer/src/rosetta.ts index 395a078ce1..835bec83a5 100644 --- a/src/mina-signer/src/rosetta.ts +++ b/src/mina-signer/src/rosetta.ts @@ -27,12 +27,13 @@ function fieldToHex( ) { let bytes = binable.toBytes(x); // set highest bit (which is empty) - bytes[bytes.length - 1] &= Number(paddingBit) << 7; - // map each byte to a hex string of length 2 + bytes[bytes.length - 1] |= Number(paddingBit) << 7; + // map each byte to a 0-padded hex string of length 2 return bytes - .map((byte) => byte.toString(16).split('').reverse().join('')) + .map((byte) => byte.toString(16).padStart(2, '0').split('').reverse().join('')) .join(''); } + function fieldFromHex( binable: Binable, hex: string diff --git a/src/mina-signer/tests/client.test.ts b/src/mina-signer/tests/client.test.ts index ca0cce3934..c55eaa0012 100644 --- a/src/mina-signer/tests/client.test.ts +++ b/src/mina-signer/tests/client.test.ts @@ -1,4 +1,4 @@ -import Client from '../dist/node/mina-signer/MinaSigner.js'; +import Client from '../../../dist/node/mina-signer/MinaSigner.js'; describe('Client Class Initialization', () => { let client; diff --git a/src/mina-signer/tests/keypair.test.ts b/src/mina-signer/tests/keypair.test.ts index 5e3e48dd59..30fa986b88 100644 --- a/src/mina-signer/tests/keypair.test.ts +++ b/src/mina-signer/tests/keypair.test.ts @@ -1,4 +1,4 @@ -import Client from '../dist/node/mina-signer/MinaSigner.js'; +import Client from '../../../dist/node/mina-signer/MinaSigner.js'; describe('Keypair', () => { let client: Client; diff --git a/src/mina-signer/tests/message.test.ts b/src/mina-signer/tests/message.test.ts index 26011eabff..00c09b662a 100644 --- a/src/mina-signer/tests/message.test.ts +++ b/src/mina-signer/tests/message.test.ts @@ -1,5 +1,5 @@ -import Client from '../dist/node/mina-signer/MinaSigner.js'; -import type { PrivateKey } from '../dist/node/mina-signer/src/TSTypes.js'; +import Client from '../../../dist/node/mina-signer/MinaSigner.js'; +import type { PrivateKey } from '../../../dist/node/mina-signer/src/TSTypes.js'; describe('Message', () => { describe('Mainnet network', () => { diff --git a/src/mina-signer/tests/payment.test.ts b/src/mina-signer/tests/payment.test.ts index 9a7d52804d..a5a34878ce 100644 --- a/src/mina-signer/tests/payment.test.ts +++ b/src/mina-signer/tests/payment.test.ts @@ -1,5 +1,5 @@ -import Client from '../dist/node/mina-signer/MinaSigner.js'; -import type { Keypair } from '../dist/node/mina-signer/src/TSTypes.js'; +import Client from '../../../dist/node/mina-signer/MinaSigner.js'; +import type { Keypair } from '../../../dist/node/mina-signer/src/TSTypes.js'; describe('Payment', () => { describe('Mainnet network', () => { diff --git a/src/mina-signer/tests/rosetta.test.ts b/src/mina-signer/tests/rosetta.test.ts index 5db94f21e1..1410ddeab8 100644 --- a/src/mina-signer/tests/rosetta.test.ts +++ b/src/mina-signer/tests/rosetta.test.ts @@ -1,4 +1,4 @@ -import Client from '../dist/node/mina-signer/MinaSigner.js'; +import Client from '../../../dist/node/mina-signer/MinaSigner.js'; describe('Rosetta', () => { let client: Client; diff --git a/src/mina-signer/tests/stake-delegation.test.ts b/src/mina-signer/tests/stake-delegation.test.ts index ea59458e1f..d7ac8f9231 100644 --- a/src/mina-signer/tests/stake-delegation.test.ts +++ b/src/mina-signer/tests/stake-delegation.test.ts @@ -1,5 +1,5 @@ -import Client from '../dist/node/mina-signer/MinaSigner.js'; -import type { Keypair } from '../dist/node/mina-signer/src/TSTypes.js'; +import Client from '../../../dist/node/mina-signer/MinaSigner.js'; +import type { Keypair } from '../../../dist/node/mina-signer/src/TSTypes.js'; describe('Stake Delegation', () => { describe('Mainnet network', () => { From db253350997287e548090312b504293dad11408e Mon Sep 17 00:00:00 2001 From: robrobbins Date: Tue, 6 Feb 2024 18:01:19 +0000 Subject: [PATCH 2/3] revert mina-signer test paths to dist. add dev readme section for building mina-signer and running single tests. fixup fixup --- README-dev.md | 15 +++++++++++++++ src/mina-signer/tests/client.test.ts | 2 +- src/mina-signer/tests/keypair.test.ts | 2 +- src/mina-signer/tests/message.test.ts | 4 ++-- src/mina-signer/tests/payment.test.ts | 4 ++-- src/mina-signer/tests/rosetta.test.ts | 2 +- src/mina-signer/tests/stake-delegation.test.ts | 4 ++-- 7 files changed, 24 insertions(+), 9 deletions(-) diff --git a/README-dev.md b/README-dev.md index 327717330d..6c1850ca9d 100644 --- a/README-dev.md +++ b/README-dev.md @@ -141,8 +141,23 @@ npm run test npm run test:unit ``` +#### Running Mina-Signer Tests +`npm run build` is not recursive, thus in order for the Mina Signer tests to run you must execute the following from the root directory: + +```sh +cd src/mina-signer +npm run build +cd ../.. +``` + This runs all the unit tests and provides you with a summary of the test results. +Note that you can run individual jest tests via the command: + +```sh +NODE_OPTIONS=--experimental-vm-modules npx jest +``` + You can also run integration tests by running: ```sh diff --git a/src/mina-signer/tests/client.test.ts b/src/mina-signer/tests/client.test.ts index c55eaa0012..ca0cce3934 100644 --- a/src/mina-signer/tests/client.test.ts +++ b/src/mina-signer/tests/client.test.ts @@ -1,4 +1,4 @@ -import Client from '../../../dist/node/mina-signer/MinaSigner.js'; +import Client from '../dist/node/mina-signer/MinaSigner.js'; describe('Client Class Initialization', () => { let client; diff --git a/src/mina-signer/tests/keypair.test.ts b/src/mina-signer/tests/keypair.test.ts index 30fa986b88..5e3e48dd59 100644 --- a/src/mina-signer/tests/keypair.test.ts +++ b/src/mina-signer/tests/keypair.test.ts @@ -1,4 +1,4 @@ -import Client from '../../../dist/node/mina-signer/MinaSigner.js'; +import Client from '../dist/node/mina-signer/MinaSigner.js'; describe('Keypair', () => { let client: Client; diff --git a/src/mina-signer/tests/message.test.ts b/src/mina-signer/tests/message.test.ts index 00c09b662a..26011eabff 100644 --- a/src/mina-signer/tests/message.test.ts +++ b/src/mina-signer/tests/message.test.ts @@ -1,5 +1,5 @@ -import Client from '../../../dist/node/mina-signer/MinaSigner.js'; -import type { PrivateKey } from '../../../dist/node/mina-signer/src/TSTypes.js'; +import Client from '../dist/node/mina-signer/MinaSigner.js'; +import type { PrivateKey } from '../dist/node/mina-signer/src/TSTypes.js'; describe('Message', () => { describe('Mainnet network', () => { diff --git a/src/mina-signer/tests/payment.test.ts b/src/mina-signer/tests/payment.test.ts index a5a34878ce..9a7d52804d 100644 --- a/src/mina-signer/tests/payment.test.ts +++ b/src/mina-signer/tests/payment.test.ts @@ -1,5 +1,5 @@ -import Client from '../../../dist/node/mina-signer/MinaSigner.js'; -import type { Keypair } from '../../../dist/node/mina-signer/src/TSTypes.js'; +import Client from '../dist/node/mina-signer/MinaSigner.js'; +import type { Keypair } from '../dist/node/mina-signer/src/TSTypes.js'; describe('Payment', () => { describe('Mainnet network', () => { diff --git a/src/mina-signer/tests/rosetta.test.ts b/src/mina-signer/tests/rosetta.test.ts index 1410ddeab8..5db94f21e1 100644 --- a/src/mina-signer/tests/rosetta.test.ts +++ b/src/mina-signer/tests/rosetta.test.ts @@ -1,4 +1,4 @@ -import Client from '../../../dist/node/mina-signer/MinaSigner.js'; +import Client from '../dist/node/mina-signer/MinaSigner.js'; describe('Rosetta', () => { let client: Client; diff --git a/src/mina-signer/tests/stake-delegation.test.ts b/src/mina-signer/tests/stake-delegation.test.ts index d7ac8f9231..ea59458e1f 100644 --- a/src/mina-signer/tests/stake-delegation.test.ts +++ b/src/mina-signer/tests/stake-delegation.test.ts @@ -1,5 +1,5 @@ -import Client from '../../../dist/node/mina-signer/MinaSigner.js'; -import type { Keypair } from '../../../dist/node/mina-signer/src/TSTypes.js'; +import Client from '../dist/node/mina-signer/MinaSigner.js'; +import type { Keypair } from '../dist/node/mina-signer/src/TSTypes.js'; describe('Stake Delegation', () => { describe('Mainnet network', () => { From b67432f8f6a3eb66a8ad528e011c8be4215b984c Mon Sep 17 00:00:00 2001 From: Gregor Mitscha-Baude Date: Tue, 6 Feb 2024 21:24:27 +0100 Subject: [PATCH 3/3] Apply suggestions from code review --- README-dev.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README-dev.md b/README-dev.md index 6c1850ca9d..389be17d9d 100644 --- a/README-dev.md +++ b/README-dev.md @@ -141,8 +141,7 @@ npm run test npm run test:unit ``` -#### Running Mina-Signer Tests -`npm run build` is not recursive, thus in order for the Mina Signer tests to run you must execute the following from the root directory: +In order for the mina-signer tests to run you must also build from inside its subdirectory: ```sh cd src/mina-signer @@ -155,7 +154,7 @@ This runs all the unit tests and provides you with a summary of the test results Note that you can run individual jest tests via the command: ```sh -NODE_OPTIONS=--experimental-vm-modules npx jest +./jest ``` You can also run integration tests by running: