diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index 2daa9cdc7..c676cbc78 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -54,25 +54,25 @@ jobs: - name: Code format run: | npx nx affected --target format:check lint:check \ - --exclude tag:type:application \ + --exclude tag:type:application,armory-e2e-testing \ --base=origin/main - name: Test types run: | npx nx affected --target test:type \ - --exclude tag:type:application \ + --exclude tag:type:application,armory-e2e-testing \ --base=origin/main - name: Test unit run: | npx nx affected --target test:unit \ - --exclude tag:type:application \ + --exclude tag:type:application,armory-e2e-testing \ --base=origin/main - name: Test integration run: | npx nx affected --target test:integration \ - --exclude tag:type:application \ + --exclude tag:type:application,armory-e2e-testing \ --base=origin/main - name: Test end-to-end @@ -83,7 +83,7 @@ jobs: # in-memory. It'd be a good time to revisit this TODO and think about # using testcontainers. npx nx affected --target test:e2e \ - --exclude tag:type:application \ + --exclude tag:type:application,armory-e2e-testing \ --base=origin/main \ --testPathIgnorePatterns=packages/armory-sdk/src/lib/__test__/e2e/* diff --git a/Makefile b/Makefile index 75a1b429d..376fe3364 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,7 @@ include ./packages/policy-engine-shared/Makefile include ./packages/transaction-request-intent/Makefile include ./packages/signature/Makefile include ./packages/armory-sdk/Makefile +include ./packages/armory-e2e-testing/Makefile # For more terminal color codes, head over to # https://opensource.com/article/19/9/linux-terminal-colors diff --git a/packages/armory-e2e-testing/.eslintrc.json b/packages/armory-e2e-testing/.eslintrc.json new file mode 100644 index 000000000..adbe7ae2d --- /dev/null +++ b/packages/armory-e2e-testing/.eslintrc.json @@ -0,0 +1,25 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.json"], + "parser": "jsonc-eslint-parser", + "rules": { + "@nx/dependency-checks": "error" + } + } + ] +} diff --git a/packages/armory-e2e-testing/Makefile b/packages/armory-e2e-testing/Makefile new file mode 100644 index 000000000..6b3b2ac51 --- /dev/null +++ b/packages/armory-e2e-testing/Makefile @@ -0,0 +1,37 @@ +ARMORY_E2E_TESTING_PROJECT_NAME := armory-e2e-testing +ARMORY_E2E_TESTING_PROJECT_DIR := ./packages/armory-e2e-testing + +# === Build === + +armory-e2e-testing/build: + npx nx build ${ARMORY_E2E_TESTING_PROJECT_NAME} + +# === Code format === + +armory-e2e-testing/format: + npx nx format:write --projects ${ARMORY_E2E_TESTING_PROJECT_NAME} + +armory-e2e-testing/lint: + npx nx lint ${ARMORY_E2E_TESTING_PROJECT_NAME} -- --fix + +armory-e2e-testing/format/check: + npx nx format:check --projects ${ARMORY_E2E_TESTING_PROJECT_NAME} + +armory-e2e-testing/lint/check: + npx nx lint ${ARMORY_E2E_TESTING_PROJECT_NAME} + +# === Testing === + +armory-e2e-testing/test/type: + npx tsc \ + --project ${ARMORY_E2E_TESTING_PROJECT_DIR}/tsconfig.lib.json \ + --noEmit + +armory-e2e-testing/test/unit/watch: + make armory-e2e-testing/test/unit ARGS=--watch + +armory-e2e-testing/test/e2e: + npx nx test:e2e ${ARMORY_E2E_TESTING_PROJECT_NAME} -- ${ARGS} + +armory-e2e-testing/test/e2e/watch: + make armory-e2e-testing/test/e2e ARGS=--watch diff --git a/packages/armory-e2e-testing/README.md b/packages/armory-e2e-testing/README.md new file mode 100644 index 000000000..de62e1148 --- /dev/null +++ b/packages/armory-e2e-testing/README.md @@ -0,0 +1,3 @@ +# User-journey + +This package is an e2e test package. It encapsulate some core usage scenarios for armory stack. In order to run, all diff --git a/packages/armory-e2e-testing/jest.config.ts b/packages/armory-e2e-testing/jest.config.ts new file mode 100644 index 000000000..8015e7979 --- /dev/null +++ b/packages/armory-e2e-testing/jest.config.ts @@ -0,0 +1,18 @@ +import type { Config } from 'jest' + +const config: Config = { + displayName: 'armory-sdk', + moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], + preset: '../../jest.preset.js', + testEnvironment: 'node', + transform: { + '^.+\\.[tj]sx?$': [ + 'ts-jest', + { + tsconfig: '/tsconfig.spec.json' + } + ] + } +} + +export default config diff --git a/packages/armory-e2e-testing/jest.e2e.ts b/packages/armory-e2e-testing/jest.e2e.ts new file mode 100644 index 000000000..b7d56d62b --- /dev/null +++ b/packages/armory-e2e-testing/jest.e2e.ts @@ -0,0 +1,9 @@ +import type { Config } from 'jest' +import sharedConfig from './jest.config' + +const config: Config = { + ...sharedConfig, + testMatch: ['/**/__test__/e2e/**/*.spec.ts'] +} + +export default config diff --git a/packages/armory-e2e-testing/project.json b/packages/armory-e2e-testing/project.json new file mode 100644 index 000000000..2f020b349 --- /dev/null +++ b/packages/armory-e2e-testing/project.json @@ -0,0 +1,25 @@ +{ + "name": "armory-e2e-testing", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "packages/armory-e2e-testing/src", + "projectType": "library", + "tags": [], + "targets": { + "lint": { + "executor": "@nx/eslint:lint", + "outputs": ["{options.outputFile}"], + "options": { + "lintFilePatterns": ["packages/armory-e2e-testing/**/*.ts"] + } + }, + "test:e2e": { + "executor": "@nx/jest:jest", + "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], + "options": { + "jestConfig": "packages/armory-e2e-testing/jest.e2e.ts", + "verbose": true, + "runInBand": true + } + } + } +} diff --git a/packages/armory-sdk/src/lib/__test__/e2e/criterion/check-approvals.spec.ts b/packages/armory-e2e-testing/src/__test__/e2e/criterion/check-approvals.spec.ts similarity index 92% rename from packages/armory-sdk/src/lib/__test__/e2e/criterion/check-approvals.spec.ts rename to packages/armory-e2e-testing/src/__test__/e2e/criterion/check-approvals.spec.ts index c54e8435f..849803d46 100644 --- a/packages/armory-sdk/src/lib/__test__/e2e/criterion/check-approvals.spec.ts +++ b/packages/armory-e2e-testing/src/__test__/e2e/criterion/check-approvals.spec.ts @@ -1,9 +1,9 @@ import { Action, Decision, entitiesSchema, FIXTURE, Request } from '@narval/policy-engine-shared' import { v4 } from 'uuid' -import defaultEntities from '../../resource/entity/test.default.json' -import twoAdminApproval from '../../resource/policy/checkApprovals/2-admin-approval-required.json' -import adminApproval from '../../resource/policy/checkApprovals/admin-approval-required.json' -import adminPermitAll from '../../resource/policy/checkPrincipalRole/admin-permit-all.json' +import defaultEntities from '../../../resource/entity/test.default.json' +import twoAdminApproval from '../../../resource/policy/checkApprovals/2-admin-approval-required.json' +import adminApproval from '../../../resource/policy/checkApprovals/admin-approval-required.json' +import adminPermitAll from '../../../resource/policy/checkPrincipalRole/admin-permit-all.json' import { buildAuthClient, buildPolicy, @@ -12,7 +12,7 @@ import { getAuthAdminApiKey, getAuthHost, saveDataStore -} from '../../util/setup' +} from '../../../util/setup' const systemManagerHexPk = FIXTURE.UNSAFE_PRIVATE_KEY.Root const ericPrivateKey = FIXTURE.UNSAFE_PRIVATE_KEY.Eric diff --git a/packages/armory-sdk/src/lib/__test__/e2e/criterion/check-rate-limit.spec.ts b/packages/armory-e2e-testing/src/__test__/e2e/criterion/check-rate-limit.spec.ts similarity index 91% rename from packages/armory-sdk/src/lib/__test__/e2e/criterion/check-rate-limit.spec.ts rename to packages/armory-e2e-testing/src/__test__/e2e/criterion/check-rate-limit.spec.ts index 769246bb4..344dd3589 100644 --- a/packages/armory-sdk/src/lib/__test__/e2e/criterion/check-rate-limit.spec.ts +++ b/packages/armory-e2e-testing/src/__test__/e2e/criterion/check-rate-limit.spec.ts @@ -1,8 +1,8 @@ import { Action, entitiesSchema, FIXTURE, Request } from '@narval/policy-engine-shared' import { v4 } from 'uuid' -import defaultEntities from '../../resource/entity/test.default.json' -import adminPermitAll from '../../resource/policy/checkPrincipalRole/admin-permit-all.json' -import memberTwoTransferPerDay from '../../resource/policy/checkRateLimit/members-2-transfer-per-day.json' +import defaultEntities from '../../../resource/entity/test.default.json' +import adminPermitAll from '../../../resource/policy/checkPrincipalRole/admin-permit-all.json' +import memberTwoTransferPerDay from '../../../resource/policy/checkRateLimit/members-2-transfer-per-day.json' import { buildAuthClient, buildPolicy, @@ -11,7 +11,7 @@ import { getAuthAdminApiKey, getAuthHost, saveDataStore -} from '../../util/setup' +} from '../../../util/setup' const systemManagerHexPk = FIXTURE.UNSAFE_PRIVATE_KEY.Root const ericPrivateKey = FIXTURE.UNSAFE_PRIVATE_KEY.Eric diff --git a/packages/armory-sdk/src/lib/__test__/e2e/criterion/check-spending-limit.spec.ts b/packages/armory-e2e-testing/src/__test__/e2e/criterion/check-spending-limit.spec.ts similarity index 93% rename from packages/armory-sdk/src/lib/__test__/e2e/criterion/check-spending-limit.spec.ts rename to packages/armory-e2e-testing/src/__test__/e2e/criterion/check-spending-limit.spec.ts index c5d2c29a9..bebcf5fbf 100644 --- a/packages/armory-sdk/src/lib/__test__/e2e/criterion/check-spending-limit.spec.ts +++ b/packages/armory-e2e-testing/src/__test__/e2e/criterion/check-spending-limit.spec.ts @@ -1,9 +1,9 @@ import { Action, entitiesSchema, FIXTURE, Request } from '@narval/policy-engine-shared' import { v4 } from 'uuid' -import defaultEntities from '../../resource/entity/test.default.json' -import adminPermitAll from '../../resource/policy/checkPrincipalRole/admin-permit-all.json' -import treasuryMemberCanTransferOneEthFixed from '../../resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-fixed.json' -import treasuryMemberCanTransferOneEthRolling from '../../resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-rolling.json' +import defaultEntities from '../../../resource/entity/test.default.json' +import adminPermitAll from '../../../resource/policy/checkPrincipalRole/admin-permit-all.json' +import treasuryMemberCanTransferOneEthFixed from '../../../resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-fixed.json' +import treasuryMemberCanTransferOneEthRolling from '../../../resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-rolling.json' import { buildAuthClient, buildPolicy, @@ -12,7 +12,7 @@ import { getAuthAdminApiKey, getAuthHost, saveDataStore -} from '../../util/setup' +} from '../../../util/setup' const systemManagerHexPk = FIXTURE.UNSAFE_PRIVATE_KEY.Root const ericPrivateKey = FIXTURE.UNSAFE_PRIVATE_KEY.Eric diff --git a/packages/armory-sdk/src/lib/__test__/e2e/scenarii/address-book-management.spec.ts b/packages/armory-e2e-testing/src/__test__/e2e/scenarii/address-book-management.spec.ts similarity index 97% rename from packages/armory-sdk/src/lib/__test__/e2e/scenarii/address-book-management.spec.ts rename to packages/armory-e2e-testing/src/__test__/e2e/scenarii/address-book-management.spec.ts index 07884f0ce..29f469812 100644 --- a/packages/armory-sdk/src/lib/__test__/e2e/scenarii/address-book-management.spec.ts +++ b/packages/armory-e2e-testing/src/__test__/e2e/scenarii/address-book-management.spec.ts @@ -11,9 +11,9 @@ import { AddressBookAddresses } from 'packages/policy-engine-shared/src/lib/dev. import { v4 } from 'uuid' import { Hex } from 'viem' import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts' -import defaultEntities from '../../resource/entity/test.default.json' -import addressBookAndRoles from '../../resource/policy/set/address-book-and-roles.json' -import { buildAuthClient, createClient, saveDataStore } from '../../util/setup' +import defaultEntities from '../../../resource/entity/test.default.json' +import addressBookAndRoles from '../../../resource/policy/set/address-book-and-roles.json' +import { buildAuthClient, createClient, saveDataStore } from '../../../util/setup' const TEST_TIMEOUT_MS = 30_000 diff --git a/packages/armory-sdk/src/lib/__test__/e2e/scenarii/approvals-and-spending-limit.spec.ts b/packages/armory-e2e-testing/src/__test__/e2e/scenarii/approvals-and-spending-limit.spec.ts similarity index 94% rename from packages/armory-sdk/src/lib/__test__/e2e/scenarii/approvals-and-spending-limit.spec.ts rename to packages/armory-e2e-testing/src/__test__/e2e/scenarii/approvals-and-spending-limit.spec.ts index fd8a43e7a..a861d3353 100644 --- a/packages/armory-sdk/src/lib/__test__/e2e/scenarii/approvals-and-spending-limit.spec.ts +++ b/packages/armory-e2e-testing/src/__test__/e2e/scenarii/approvals-and-spending-limit.spec.ts @@ -1,15 +1,15 @@ /* eslint-disable jest/consistent-test-it */ import { Action, Decision, entitiesSchema, FIXTURE, policySchema, Request } from '@narval/policy-engine-shared' import { v4 } from 'uuid' -import defaultEntities from '../../resource/entity/test.default.json' -import approvalsAndSpendingLimit from '../../resource/policy/set/approvals-and-spending-limit.json' -import { buildAuthClient, createClient, saveDataStore } from '../../util/setup' +import defaultEntities from '../../../resource/entity/test.default.json' +import approvalsAndSpendingLimit from '../../../resource/policy/set/approvals-and-spending-limit.json' +import { buildAuthClient, createClient, saveDataStore } from '../../../util/setup' const TEST_TIMEOUT_MS = 30_000 jest.setTimeout(TEST_TIMEOUT_MS) -export const advanceTime = (hours: number): void => { +export const peradvanceTime = (hours: number): void => { jest.useFakeTimers() jest.setSystemTime(Date.now() + hours * 60 * 60 * 1000) } @@ -25,7 +25,7 @@ const ericPrivateKey = FIXTURE.UNSAFE_PRIVATE_KEY.Eric const genNonce = (request: Request) => ({ ...request, nonce: `${request.nonce}-${v4()}` }) describe('approvals and spending limits', () => { - describe('members can spend up to 1 eth per day, above an approval is required', () => { + describe('members can spend up to 1 eth day, above an approval is required', () => { const request: Request = { action: Action.SIGN_TRANSACTION, nonce: 'test-nonce-4', diff --git a/packages/armory-sdk/src/lib/__test__/e2e/scenarii/defi-interactions.spec.ts b/packages/armory-e2e-testing/src/__test__/e2e/scenarii/defi-interactions.spec.ts similarity index 97% rename from packages/armory-sdk/src/lib/__test__/e2e/scenarii/defi-interactions.spec.ts rename to packages/armory-e2e-testing/src/__test__/e2e/scenarii/defi-interactions.spec.ts index 285d289b0..a0171e9fc 100644 --- a/packages/armory-sdk/src/lib/__test__/e2e/scenarii/defi-interactions.spec.ts +++ b/packages/armory-e2e-testing/src/__test__/e2e/scenarii/defi-interactions.spec.ts @@ -8,9 +8,9 @@ import { Request } from '@narval/policy-engine-shared' import { v4 } from 'uuid' -import defiEntities from '../../resource/entity/defi-interaction.json' -import defiInteractionPolicy from '../../resource/policy/set/defi-interaction.json' -import { buildAuthClient, createClient, saveDataStore } from '../../util/setup' +import defiEntities from '../../../resource/entity/defi-interaction.json' +import defiInteractionPolicy from '../../../resource/policy/set/defi-interaction.json' +import { buildAuthClient, createClient, saveDataStore } from '../../../util/setup' const TEST_TIMEOUT_MS = 30_000 diff --git a/packages/armory-sdk/src/lib/__test__/e2e/scenarii/tiered-eth-transfer-policy.spec.ts b/packages/armory-e2e-testing/src/__test__/e2e/scenarii/tiered-eth-transfer-policy.spec.ts similarity index 96% rename from packages/armory-sdk/src/lib/__test__/e2e/scenarii/tiered-eth-transfer-policy.spec.ts rename to packages/armory-e2e-testing/src/__test__/e2e/scenarii/tiered-eth-transfer-policy.spec.ts index d162947e3..ee43952e1 100644 --- a/packages/armory-sdk/src/lib/__test__/e2e/scenarii/tiered-eth-transfer-policy.spec.ts +++ b/packages/armory-e2e-testing/src/__test__/e2e/scenarii/tiered-eth-transfer-policy.spec.ts @@ -1,9 +1,9 @@ /* eslint-disable jest/consistent-test-it */ import { Action, Decision, entitiesSchema, FIXTURE, policySchema, Request, toHex } from '@narval/policy-engine-shared' import { v4 } from 'uuid' -import defaultEntities from '../../resource/entity/test.default.json' -import tieredEthTransfer from '../../resource/policy/set/tiered-eth-transfer.json' -import { buildAuthClient, createClient, saveDataStore } from '../../util/setup' +import defaultEntities from '../../../resource/entity/test.default.json' +import tieredEthTransfer from '../../../resource/policy/set/tiered-eth-transfer.json' +import { buildAuthClient, createClient, saveDataStore } from '../../../util/setup' const TEST_TIMEOUT_MS = 30_000 diff --git a/packages/armory-sdk/src/lib/__test__/e2e/scenarii/user-journeys.spec.ts b/packages/armory-e2e-testing/src/__test__/e2e/scenarii/user-journeys.spec.ts similarity index 96% rename from packages/armory-sdk/src/lib/__test__/e2e/scenarii/user-journeys.spec.ts rename to packages/armory-e2e-testing/src/__test__/e2e/scenarii/user-journeys.spec.ts index 7737bd162..66bf3bdcd 100644 --- a/packages/armory-sdk/src/lib/__test__/e2e/scenarii/user-journeys.spec.ts +++ b/packages/armory-e2e-testing/src/__test__/e2e/scenarii/user-journeys.spec.ts @@ -1,4 +1,23 @@ /* eslint-disable jest/consistent-test-it */ +import { + AuthAdminClient, + AuthClient, + AuthorizationResponseDtoStatusEnum, + ClientDto, + CreateClientResponseDto, + DataStoreConfig, + EntityStoreClient, + Permission, + PolicyStoreClient, + SignOptions, + Signer, + VaultAdminClient, + VaultClient, + WalletDto, + createHttpDataStore, + credential, + resourceId +} from '@narval/armory-sdk' import { AccessToken, AccountEntity, @@ -26,16 +45,6 @@ import { import { format } from 'date-fns' import { v4 as uuid } from 'uuid' import { english, generateMnemonic, generatePrivateKey, privateKeyToAccount } from 'viem/accounts' -import { AuthAdminClient, AuthClient } from '../../../auth/client' -import { EntityStoreClient, PolicyStoreClient } from '../../../data-store/client' -import { DataStoreConfig } from '../../../data-store/type' -import { createHttpDataStore, credential } from '../../../data-store/util' -import { Permission } from '../../../domain' -import { AuthorizationResponseDtoStatusEnum, CreateClientResponseDto } from '../../../http/client/auth' -import { ClientDto, WalletDto } from '../../../http/client/vault' -import { SignOptions, Signer } from '../../../shared/type' -import { resourceId } from '../../../utils' -import { VaultAdminClient, VaultClient } from '../../../vault/client' const TEST_TIMEOUT_MS = 30_000 diff --git a/packages/armory-sdk/src/lib/__test__/resource/entity/defi-interaction.json b/packages/armory-e2e-testing/src/resource/entity/defi-interaction.json similarity index 100% rename from packages/armory-sdk/src/lib/__test__/resource/entity/defi-interaction.json rename to packages/armory-e2e-testing/src/resource/entity/defi-interaction.json diff --git a/packages/armory-sdk/src/lib/__test__/resource/entity/test.default.json b/packages/armory-e2e-testing/src/resource/entity/test.default.json similarity index 100% rename from packages/armory-sdk/src/lib/__test__/resource/entity/test.default.json rename to packages/armory-e2e-testing/src/resource/entity/test.default.json diff --git a/packages/armory-sdk/src/lib/__test__/resource/policy/checkApprovals/2-admin-approval-required.json b/packages/armory-e2e-testing/src/resource/policy/checkApprovals/2-admin-approval-required.json similarity index 100% rename from packages/armory-sdk/src/lib/__test__/resource/policy/checkApprovals/2-admin-approval-required.json rename to packages/armory-e2e-testing/src/resource/policy/checkApprovals/2-admin-approval-required.json diff --git a/packages/armory-sdk/src/lib/__test__/resource/policy/checkApprovals/admin-approval-required.json b/packages/armory-e2e-testing/src/resource/policy/checkApprovals/admin-approval-required.json similarity index 100% rename from packages/armory-sdk/src/lib/__test__/resource/policy/checkApprovals/admin-approval-required.json rename to packages/armory-e2e-testing/src/resource/policy/checkApprovals/admin-approval-required.json diff --git a/packages/armory-sdk/src/lib/__test__/resource/policy/checkPrincipalRole/admin-permit-all.json b/packages/armory-e2e-testing/src/resource/policy/checkPrincipalRole/admin-permit-all.json similarity index 100% rename from packages/armory-sdk/src/lib/__test__/resource/policy/checkPrincipalRole/admin-permit-all.json rename to packages/armory-e2e-testing/src/resource/policy/checkPrincipalRole/admin-permit-all.json diff --git a/packages/armory-sdk/src/lib/__test__/resource/policy/checkRateLimit/members-2-transfer-per-day.json b/packages/armory-e2e-testing/src/resource/policy/checkRateLimit/members-2-transfer-per-day.json similarity index 100% rename from packages/armory-sdk/src/lib/__test__/resource/policy/checkRateLimit/members-2-transfer-per-day.json rename to packages/armory-e2e-testing/src/resource/policy/checkRateLimit/members-2-transfer-per-day.json diff --git a/packages/armory-sdk/src/lib/__test__/resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-fixed.json b/packages/armory-e2e-testing/src/resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-fixed.json similarity index 100% rename from packages/armory-sdk/src/lib/__test__/resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-fixed.json rename to packages/armory-e2e-testing/src/resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-fixed.json diff --git a/packages/armory-sdk/src/lib/__test__/resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-rolling.json b/packages/armory-e2e-testing/src/resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-rolling.json similarity index 100% rename from packages/armory-sdk/src/lib/__test__/resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-rolling.json rename to packages/armory-e2e-testing/src/resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-rolling.json diff --git a/packages/armory-sdk/src/lib/__test__/resource/policy/set/address-book-and-roles.json b/packages/armory-e2e-testing/src/resource/policy/set/address-book-and-roles.json similarity index 100% rename from packages/armory-sdk/src/lib/__test__/resource/policy/set/address-book-and-roles.json rename to packages/armory-e2e-testing/src/resource/policy/set/address-book-and-roles.json diff --git a/packages/armory-sdk/src/lib/__test__/resource/policy/set/approvals-and-spending-limit.json b/packages/armory-e2e-testing/src/resource/policy/set/approvals-and-spending-limit.json similarity index 100% rename from packages/armory-sdk/src/lib/__test__/resource/policy/set/approvals-and-spending-limit.json rename to packages/armory-e2e-testing/src/resource/policy/set/approvals-and-spending-limit.json diff --git a/packages/armory-sdk/src/lib/__test__/resource/policy/set/defi-interaction.json b/packages/armory-e2e-testing/src/resource/policy/set/defi-interaction.json similarity index 100% rename from packages/armory-sdk/src/lib/__test__/resource/policy/set/defi-interaction.json rename to packages/armory-e2e-testing/src/resource/policy/set/defi-interaction.json diff --git a/packages/armory-sdk/src/lib/__test__/resource/policy/set/tiered-eth-transfer.json b/packages/armory-e2e-testing/src/resource/policy/set/tiered-eth-transfer.json similarity index 100% rename from packages/armory-sdk/src/lib/__test__/resource/policy/set/tiered-eth-transfer.json rename to packages/armory-e2e-testing/src/resource/policy/set/tiered-eth-transfer.json diff --git a/packages/armory-sdk/src/lib/__test__/util/setup.ts b/packages/armory-e2e-testing/src/util/setup.ts similarity index 94% rename from packages/armory-sdk/src/lib/__test__/util/setup.ts rename to packages/armory-e2e-testing/src/util/setup.ts index 6ad031b06..ea606d58a 100644 --- a/packages/armory-sdk/src/lib/__test__/util/setup.ts +++ b/packages/armory-e2e-testing/src/util/setup.ts @@ -1,10 +1,18 @@ +import { + AuthAdminClient, + AuthClient, + AuthConfig, + createHttpDataStore, + DataStoreConfig, + EntityStoreClient, + PolicyStoreClient, + VaultAdminClient, + VaultConfig +} from '@narval/armory-sdk' import { Entities, Hex, Policy, policySchema, Request } from '@narval/policy-engine-shared' import { buildSignerForAlg, getPublicKey, privateKeyToJwk } from '@narval/signature' import { format } from 'date-fns' import { v4 } from 'uuid' -import { AuthAdminClient, AuthClient, AuthConfig } from '../../auth' -import { createHttpDataStore, DataStoreConfig, EntityStoreClient, PolicyStoreClient } from '../../data-store' -import { VaultAdminClient, VaultConfig } from '../../vault' export const getAuthHost = () => 'http://localhost:3005' export const getAuthAdminApiKey = () => 'armory-admin-api-key' diff --git a/packages/armory-e2e-testing/tsconfig.json b/packages/armory-e2e-testing/tsconfig.json new file mode 100644 index 000000000..efb889526 --- /dev/null +++ b/packages/armory-e2e-testing/tsconfig.json @@ -0,0 +1,18 @@ +{ + "extends": "../../tsconfig.base.json", + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ], + "compilerOptions": { + "module": "commonjs", + "strict": true, + "resolveJsonModule": true + } +} diff --git a/packages/armory-e2e-testing/tsconfig.lib.json b/packages/armory-e2e-testing/tsconfig.lib.json new file mode 100644 index 000000000..2e16b8791 --- /dev/null +++ b/packages/armory-e2e-testing/tsconfig.lib.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "declaration": true, + "types": ["node"] + }, + "include": ["src/**/*.ts"], + "exclude": ["jest.config.ts", "src/**/*.spec.ts"] +} diff --git a/packages/armory-e2e-testing/tsconfig.spec.json b/packages/armory-e2e-testing/tsconfig.spec.json new file mode 100644 index 000000000..f6d8ffcc9 --- /dev/null +++ b/packages/armory-e2e-testing/tsconfig.spec.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node"] + }, + "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"] +} diff --git a/packages/armory-sdk/src/index.ts b/packages/armory-sdk/src/index.ts index 694101d6d..134104d52 100644 --- a/packages/armory-sdk/src/index.ts +++ b/packages/armory-sdk/src/index.ts @@ -7,6 +7,10 @@ export * from './lib/shared/promise' export * from './lib/types' export * from './lib/vault' +export { AuthorizationResponseDtoStatusEnum } from './lib/http/client/auth' +export type { CreateClientResponseDto } from './lib/http/client/auth' +export type { ClientDto, WalletDto } from './lib/http/client/vault' +export type { Signer } from './lib/shared/type' export { resourceId } from './lib/utils' export type { Jwk, PrivateKey, PublicKey, RsaPublicKey } from '@narval/signature'