From 168e634cbdf9c9ed35d50689380b11afd92cf789 Mon Sep 17 00:00:00 2001 From: Bobby Lat Date: Mon, 11 Aug 2025 09:13:10 +0700 Subject: [PATCH 1/2] docs: add notes on transformer providing testing implementation of algo-ts constructs --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d729490..d93dfae 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,8 @@ Let's write a simple contract and test it using the `algorand-typescript-testing The transformer replicates AVM behavior, such as integer-only arithmetic where `3 / 2` produces `1`. For code requiring standard Node.js behaviour (e.g., `3 / 2` produces `1.5`), place it in separate `.ts` files and reference them from test files. +The transformer also redirects `@algorandfoundation/algorand-typescript` imports to `@algorandfoundation/algorand-typescript-testing/internal` to provide executable implementations of Algorand TypeScript constructs like `Global`, `Box`, `Uint64`, and `clone`. + #### Configuring vitest If you are using [vitest](https://vitest.dev/) with [@rollup/plugin-typescript](https://www.npmjs.com/package/@rollup/plugin-typescript) plugin, configure `puyaTsTransformer` as a `before` stage transformer of the `typescript` plugin in `vitest.config.mts` file. From df1a442b70a5255c01bc4b4b96016fa5a740dfb4 Mon Sep 17 00:00:00 2001 From: Bobby Lat Date: Mon, 11 Aug 2025 10:18:46 +0700 Subject: [PATCH 2/2] refactor: change test file extensions to opt-in to puyaTsTransformer --- README.md | 6 ++++-- .../{contract.spec.ts => contract.algo.spec.ts} | 0 .../auction/{contract.spec.ts => contract.algo.spec.ts} | 0 .../calculator/{contract.spec.ts => contract.algo.spec.ts} | 0 .../{contract.spec.ts => contract.algo.spec.ts} | 0 .../hello-world/{contract.spec.ts => contract.algo.spec.ts} | 0 .../{signature.spec.ts => signature.algo.spec.ts} | 0 .../{contract.spec.ts => contract.algo.spec.ts} | 0 .../marketplace/{contract.spec.ts => contract.algo.spec.ts} | 0 ...led-factory.spec.ts => precompiled-factory.algo.spec.ts} | 0 ...ompiled-typed.spec.ts => precompiled-typed.algo.spec.ts} | 0 .../{contract.spec.ts => contract.algo.spec.ts} | 0 .../{contract.spec.ts => contract.algo.spec.ts} | 0 .../{contract.spec.ts => contract.algo.spec.ts} | 0 examples/voting/{contract.spec.ts => contract.algo.spec.ts} | 0 .../{contract.spec.ts => contract.algo.spec.ts} | 0 package-lock.json | 2 +- package.json | 2 +- src/test-transformer/program-factory.ts | 2 +- src/test-transformer/vitest-transformer.ts | 2 +- tests/arc4/{address.spec.ts => address.algo.spec.ts} | 0 tests/arc4/{bool.spec.ts => bool.algo.spec.ts} | 0 tests/arc4/{byte.spec.ts => byte.algo.spec.ts} | 0 .../{dynamic-array.spec.ts => dynamic-array.algo.spec.ts} | 0 .../{dynamic-bytes.spec.ts => dynamic-bytes.algo.spec.ts} | 0 tests/arc4/{emit.spec.ts => emit.algo.spec.ts} | 0 ...-decode-arc4.spec.ts => encode-decode-arc4.algo.spec.ts} | 0 ...method-selector.spec.ts => method-selector.algo.spec.ts} | 0 ...urce-encoding.spec.ts => resource-encoding.algo.spec.ts} | 0 .../{static-array.spec.ts => static-array.algo.spec.ts} | 0 .../{static-bytes.spec.ts => static-bytes.algo.spec.ts} | 0 tests/arc4/{str.spec.ts => str.algo.spec.ts} | 0 tests/arc4/{struct.spec.ts => struct.algo.spec.ts} | 0 tests/arc4/{tuple.spec.ts => tuple.algo.spec.ts} | 0 tests/arc4/{ufixednxm.spec.ts => ufixednxm.algo.spec.ts} | 0 tests/arc4/{uintn.spec.ts => uintn.algo.spec.ts} | 0 ...ro-constructor.spec.ts => zero-constructor.algo.spec.ts} | 0 ...crypto-op-codes.spec.ts => crypto-op-codes.algo.spec.ts} | 0 tests/{fixed-array.spec.ts => fixed-array.algo.spec.ts} | 0 ...values.spec.ts => global-state-arc4-values.algo.spec.ts} | 0 tests/{itxn-compose.spec.ts => itxn-compose.algo.spec.ts} | 0 ...-values.spec.ts => local-state-arc4-values.algo.spec.ts} | 0 tests/{log.spec.ts => log.algo.spec.ts} | 0 tests/{match.spec.ts => match.algo.spec.ts} | 0 ...i-inheritance.spec.ts => multi-inheritance.algo.spec.ts} | 0 ...able-array.spec.ts => native-mutable-array.algo.spec.ts} | 0 ...le-object.spec.ts => native-mutable-object.algo.spec.ts} | 0 ...nly-array.spec.ts => native-readonly-array.algo.spec.ts} | 0 ...y-object.spec.ts => native-readonly-object.algo.spec.ts} | 0 tests/primitives/{biguint.spec.ts => biguint.algo.spec.ts} | 0 tests/primitives/{bytes.spec.ts => bytes.algo.spec.ts} | 0 tests/primitives/{uint64.spec.ts => uint64.algo.spec.ts} | 0 tests/{pure-op-codes.spec.ts => pure-op-codes.algo.spec.ts} | 0 ...reference-array.spec.ts => reference-array.algo.spec.ts} | 0 .../{arc4-contract.spec.ts => arc4-contract.algo.spec.ts} | 0 tests/references/{asset.spec.ts => asset.algo.spec.ts} | 0 tests/references/{box-map.spec.ts => box-map.algo.spec.ts} | 0 tests/references/{box-ref.spec.ts => box-ref.algo.spec.ts} | 0 tests/references/{box.spec.ts => box.algo.spec.ts} | 0 .../{state-op-codes.spec.ts => state-op-codes.algo.spec.ts} | 0 ...ch-statements.spec.ts => switch-statements.algo.spec.ts} | 0 tests/{urange.spec.ts => urange.algo.spec.ts} | 0 62 files changed, 8 insertions(+), 6 deletions(-) rename examples/arc4-simple-voting/{contract.spec.ts => contract.algo.spec.ts} (100%) rename examples/auction/{contract.spec.ts => contract.algo.spec.ts} (100%) rename examples/calculator/{contract.spec.ts => contract.algo.spec.ts} (100%) rename examples/hello-world-abi/{contract.spec.ts => contract.algo.spec.ts} (100%) rename examples/hello-world/{contract.spec.ts => contract.algo.spec.ts} (100%) rename examples/htlc-logicsig/{signature.spec.ts => signature.algo.spec.ts} (100%) rename examples/local-storage/{contract.spec.ts => contract.algo.spec.ts} (100%) rename examples/marketplace/{contract.spec.ts => contract.algo.spec.ts} (100%) rename examples/precompiled/{precompiled-factory.spec.ts => precompiled-factory.algo.spec.ts} (100%) rename examples/precompiled/{precompiled-typed.spec.ts => precompiled-typed.algo.spec.ts} (100%) rename examples/proof-of-attendance/{contract.spec.ts => contract.algo.spec.ts} (100%) rename examples/scratch-storage/{contract.spec.ts => contract.algo.spec.ts} (100%) rename examples/simple-voting/{contract.spec.ts => contract.algo.spec.ts} (100%) rename examples/voting/{contract.spec.ts => contract.algo.spec.ts} (100%) rename examples/zk-whitelist/{contract.spec.ts => contract.algo.spec.ts} (100%) rename tests/arc4/{address.spec.ts => address.algo.spec.ts} (100%) rename tests/arc4/{bool.spec.ts => bool.algo.spec.ts} (100%) rename tests/arc4/{byte.spec.ts => byte.algo.spec.ts} (100%) rename tests/arc4/{dynamic-array.spec.ts => dynamic-array.algo.spec.ts} (100%) rename tests/arc4/{dynamic-bytes.spec.ts => dynamic-bytes.algo.spec.ts} (100%) rename tests/arc4/{emit.spec.ts => emit.algo.spec.ts} (100%) rename tests/arc4/{encode-decode-arc4.spec.ts => encode-decode-arc4.algo.spec.ts} (100%) rename tests/arc4/{method-selector.spec.ts => method-selector.algo.spec.ts} (100%) rename tests/arc4/{resource-encoding.spec.ts => resource-encoding.algo.spec.ts} (100%) rename tests/arc4/{static-array.spec.ts => static-array.algo.spec.ts} (100%) rename tests/arc4/{static-bytes.spec.ts => static-bytes.algo.spec.ts} (100%) rename tests/arc4/{str.spec.ts => str.algo.spec.ts} (100%) rename tests/arc4/{struct.spec.ts => struct.algo.spec.ts} (100%) rename tests/arc4/{tuple.spec.ts => tuple.algo.spec.ts} (100%) rename tests/arc4/{ufixednxm.spec.ts => ufixednxm.algo.spec.ts} (100%) rename tests/arc4/{uintn.spec.ts => uintn.algo.spec.ts} (100%) rename tests/arc4/{zero-constructor.spec.ts => zero-constructor.algo.spec.ts} (100%) rename tests/{crypto-op-codes.spec.ts => crypto-op-codes.algo.spec.ts} (100%) rename tests/{fixed-array.spec.ts => fixed-array.algo.spec.ts} (100%) rename tests/{global-state-arc4-values.spec.ts => global-state-arc4-values.algo.spec.ts} (100%) rename tests/{itxn-compose.spec.ts => itxn-compose.algo.spec.ts} (100%) rename tests/{local-state-arc4-values.spec.ts => local-state-arc4-values.algo.spec.ts} (100%) rename tests/{log.spec.ts => log.algo.spec.ts} (100%) rename tests/{match.spec.ts => match.algo.spec.ts} (100%) rename tests/{multi-inheritance.spec.ts => multi-inheritance.algo.spec.ts} (100%) rename tests/{native-mutable-array.spec.ts => native-mutable-array.algo.spec.ts} (100%) rename tests/{native-mutable-object.spec.ts => native-mutable-object.algo.spec.ts} (100%) rename tests/{native-readonly-array.spec.ts => native-readonly-array.algo.spec.ts} (100%) rename tests/{native-readonly-object.spec.ts => native-readonly-object.algo.spec.ts} (100%) rename tests/primitives/{biguint.spec.ts => biguint.algo.spec.ts} (100%) rename tests/primitives/{bytes.spec.ts => bytes.algo.spec.ts} (100%) rename tests/primitives/{uint64.spec.ts => uint64.algo.spec.ts} (100%) rename tests/{pure-op-codes.spec.ts => pure-op-codes.algo.spec.ts} (100%) rename tests/{reference-array.spec.ts => reference-array.algo.spec.ts} (100%) rename tests/references/{arc4-contract.spec.ts => arc4-contract.algo.spec.ts} (100%) rename tests/references/{asset.spec.ts => asset.algo.spec.ts} (100%) rename tests/references/{box-map.spec.ts => box-map.algo.spec.ts} (100%) rename tests/references/{box-ref.spec.ts => box-ref.algo.spec.ts} (100%) rename tests/references/{box.spec.ts => box.algo.spec.ts} (100%) rename tests/{state-op-codes.spec.ts => state-op-codes.algo.spec.ts} (100%) rename tests/{switch-statements.spec.ts => switch-statements.algo.spec.ts} (100%) rename tests/{urange.spec.ts => urange.algo.spec.ts} (100%) diff --git a/README.md b/README.md index d93dfae..47f169c 100644 --- a/README.md +++ b/README.md @@ -44,12 +44,14 @@ Let's write a simple contract and test it using the `algorand-typescript-testing #### Simulating AVM -`algorand-typescript-testing` includes a TypeScript transformer (`puyaTsTransformer`) that ensures contracts (with `.algo.ts` extension) and tests (with `.spec.ts` or `.test.ts` extensions) behave consistently between Node.js and AVM environments. +`algorand-typescript-testing` includes a TypeScript transformer (`puyaTsTransformer`) that ensures contracts (with `.algo.ts` extension) and tests (with `.algo.spec.ts` or `.algo.test.ts` extensions) behave consistently between Node.js and AVM environments. The transformer replicates AVM behavior, such as integer-only arithmetic where `3 / 2` produces `1`. For code requiring standard Node.js behaviour (e.g., `3 / 2` produces `1.5`), place it in separate `.ts` files and reference them from test files. The transformer also redirects `@algorandfoundation/algorand-typescript` imports to `@algorandfoundation/algorand-typescript-testing/internal` to provide executable implementations of Algorand TypeScript constructs like `Global`, `Box`, `Uint64`, and `clone`. +If there are tests which do not need to be executed in the AVM context such as end to end tests, simply use `.test.ts` or `.spec.ts` file extensions without `.algo` part and the transformer would skip them. + #### Configuring vitest If you are using [vitest](https://vitest.dev/) with [@rollup/plugin-typescript](https://www.npmjs.com/package/@rollup/plugin-typescript) plugin, configure `puyaTsTransformer` as a `before` stage transformer of the `typescript` plugin in `vitest.config.mts` file. @@ -95,7 +97,7 @@ import { createDefaultEsmPreset, type JestConfigWithTsJest } from 'ts-jest' const presetConfig = createDefaultEsmPreset({}) const jestConfig: JestConfigWithTsJest = { ...presetConfig, - testMatch: ['**/*.test.ts'], + testMatch: ['**/*.algo.test.ts'], setupFilesAfterEnv: ['/jest.setup.ts'], transform: { '^.+\\.tsx?$': [ diff --git a/examples/arc4-simple-voting/contract.spec.ts b/examples/arc4-simple-voting/contract.algo.spec.ts similarity index 100% rename from examples/arc4-simple-voting/contract.spec.ts rename to examples/arc4-simple-voting/contract.algo.spec.ts diff --git a/examples/auction/contract.spec.ts b/examples/auction/contract.algo.spec.ts similarity index 100% rename from examples/auction/contract.spec.ts rename to examples/auction/contract.algo.spec.ts diff --git a/examples/calculator/contract.spec.ts b/examples/calculator/contract.algo.spec.ts similarity index 100% rename from examples/calculator/contract.spec.ts rename to examples/calculator/contract.algo.spec.ts diff --git a/examples/hello-world-abi/contract.spec.ts b/examples/hello-world-abi/contract.algo.spec.ts similarity index 100% rename from examples/hello-world-abi/contract.spec.ts rename to examples/hello-world-abi/contract.algo.spec.ts diff --git a/examples/hello-world/contract.spec.ts b/examples/hello-world/contract.algo.spec.ts similarity index 100% rename from examples/hello-world/contract.spec.ts rename to examples/hello-world/contract.algo.spec.ts diff --git a/examples/htlc-logicsig/signature.spec.ts b/examples/htlc-logicsig/signature.algo.spec.ts similarity index 100% rename from examples/htlc-logicsig/signature.spec.ts rename to examples/htlc-logicsig/signature.algo.spec.ts diff --git a/examples/local-storage/contract.spec.ts b/examples/local-storage/contract.algo.spec.ts similarity index 100% rename from examples/local-storage/contract.spec.ts rename to examples/local-storage/contract.algo.spec.ts diff --git a/examples/marketplace/contract.spec.ts b/examples/marketplace/contract.algo.spec.ts similarity index 100% rename from examples/marketplace/contract.spec.ts rename to examples/marketplace/contract.algo.spec.ts diff --git a/examples/precompiled/precompiled-factory.spec.ts b/examples/precompiled/precompiled-factory.algo.spec.ts similarity index 100% rename from examples/precompiled/precompiled-factory.spec.ts rename to examples/precompiled/precompiled-factory.algo.spec.ts diff --git a/examples/precompiled/precompiled-typed.spec.ts b/examples/precompiled/precompiled-typed.algo.spec.ts similarity index 100% rename from examples/precompiled/precompiled-typed.spec.ts rename to examples/precompiled/precompiled-typed.algo.spec.ts diff --git a/examples/proof-of-attendance/contract.spec.ts b/examples/proof-of-attendance/contract.algo.spec.ts similarity index 100% rename from examples/proof-of-attendance/contract.spec.ts rename to examples/proof-of-attendance/contract.algo.spec.ts diff --git a/examples/scratch-storage/contract.spec.ts b/examples/scratch-storage/contract.algo.spec.ts similarity index 100% rename from examples/scratch-storage/contract.spec.ts rename to examples/scratch-storage/contract.algo.spec.ts diff --git a/examples/simple-voting/contract.spec.ts b/examples/simple-voting/contract.algo.spec.ts similarity index 100% rename from examples/simple-voting/contract.spec.ts rename to examples/simple-voting/contract.algo.spec.ts diff --git a/examples/voting/contract.spec.ts b/examples/voting/contract.algo.spec.ts similarity index 100% rename from examples/voting/contract.spec.ts rename to examples/voting/contract.algo.spec.ts diff --git a/examples/zk-whitelist/contract.spec.ts b/examples/zk-whitelist/contract.algo.spec.ts similarity index 100% rename from examples/zk-whitelist/contract.spec.ts rename to examples/zk-whitelist/contract.algo.spec.ts diff --git a/package-lock.json b/package-lock.json index 0bd8f90..5b78a10 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,7 +52,7 @@ "tsx": "4.19.3", "typedoc": "^0.28.1", "typedoc-plugin-markdown": "^4.6.0", - "typescript": "^5.8.2", + "typescript": "^5.8.3", "upath": "^2.0.1", "vitest": "3.2.4" } diff --git a/package.json b/package.json index 02a14ca..83328e5 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "tsx": "4.19.3", "typedoc": "^0.28.1", "typedoc-plugin-markdown": "^4.6.0", - "typescript": "^5.8.2", + "typescript": "^5.8.3", "upath": "^2.0.1", "vitest": "3.2.4" }, diff --git a/src/test-transformer/program-factory.ts b/src/test-transformer/program-factory.ts index a436039..c9ceda7 100644 --- a/src/test-transformer/program-factory.ts +++ b/src/test-transformer/program-factory.ts @@ -7,7 +7,7 @@ export interface TransformerConfig { testingPackageName: string } export const defaultTransformerConfig: TransformerConfig = { - includeExt: ['.algo.ts', '.spec.ts', '.test.ts'], + includeExt: ['.algo.ts', '.algo.spec.ts', '.algo.test.ts'], testingPackageName: '@algorandfoundation/algorand-typescript-testing', } diff --git a/src/test-transformer/vitest-transformer.ts b/src/test-transformer/vitest-transformer.ts index c088c72..b57fae8 100644 --- a/src/test-transformer/vitest-transformer.ts +++ b/src/test-transformer/vitest-transformer.ts @@ -28,7 +28,7 @@ programTransformer.factory = createProgramFactory(defaultTransformerConfig) ** @type {ts.TransformerFactory & ((config: Partial) => ts.TransformerFactory)} * * @param {Partial} [config] Configuration options - * @param {string[]} [config.includeExt=['.algo.ts', '.spec.ts']] File extensions to process + * @param {string[]} [config.includeExt=['.algo.ts', '.algo.spec.ts']] File extensions to process * @param {string} [config.testingPackageName='@algorandfoundation/algorand-typescript-testing'] Package name for testing imports * * @example diff --git a/tests/arc4/address.spec.ts b/tests/arc4/address.algo.spec.ts similarity index 100% rename from tests/arc4/address.spec.ts rename to tests/arc4/address.algo.spec.ts diff --git a/tests/arc4/bool.spec.ts b/tests/arc4/bool.algo.spec.ts similarity index 100% rename from tests/arc4/bool.spec.ts rename to tests/arc4/bool.algo.spec.ts diff --git a/tests/arc4/byte.spec.ts b/tests/arc4/byte.algo.spec.ts similarity index 100% rename from tests/arc4/byte.spec.ts rename to tests/arc4/byte.algo.spec.ts diff --git a/tests/arc4/dynamic-array.spec.ts b/tests/arc4/dynamic-array.algo.spec.ts similarity index 100% rename from tests/arc4/dynamic-array.spec.ts rename to tests/arc4/dynamic-array.algo.spec.ts diff --git a/tests/arc4/dynamic-bytes.spec.ts b/tests/arc4/dynamic-bytes.algo.spec.ts similarity index 100% rename from tests/arc4/dynamic-bytes.spec.ts rename to tests/arc4/dynamic-bytes.algo.spec.ts diff --git a/tests/arc4/emit.spec.ts b/tests/arc4/emit.algo.spec.ts similarity index 100% rename from tests/arc4/emit.spec.ts rename to tests/arc4/emit.algo.spec.ts diff --git a/tests/arc4/encode-decode-arc4.spec.ts b/tests/arc4/encode-decode-arc4.algo.spec.ts similarity index 100% rename from tests/arc4/encode-decode-arc4.spec.ts rename to tests/arc4/encode-decode-arc4.algo.spec.ts diff --git a/tests/arc4/method-selector.spec.ts b/tests/arc4/method-selector.algo.spec.ts similarity index 100% rename from tests/arc4/method-selector.spec.ts rename to tests/arc4/method-selector.algo.spec.ts diff --git a/tests/arc4/resource-encoding.spec.ts b/tests/arc4/resource-encoding.algo.spec.ts similarity index 100% rename from tests/arc4/resource-encoding.spec.ts rename to tests/arc4/resource-encoding.algo.spec.ts diff --git a/tests/arc4/static-array.spec.ts b/tests/arc4/static-array.algo.spec.ts similarity index 100% rename from tests/arc4/static-array.spec.ts rename to tests/arc4/static-array.algo.spec.ts diff --git a/tests/arc4/static-bytes.spec.ts b/tests/arc4/static-bytes.algo.spec.ts similarity index 100% rename from tests/arc4/static-bytes.spec.ts rename to tests/arc4/static-bytes.algo.spec.ts diff --git a/tests/arc4/str.spec.ts b/tests/arc4/str.algo.spec.ts similarity index 100% rename from tests/arc4/str.spec.ts rename to tests/arc4/str.algo.spec.ts diff --git a/tests/arc4/struct.spec.ts b/tests/arc4/struct.algo.spec.ts similarity index 100% rename from tests/arc4/struct.spec.ts rename to tests/arc4/struct.algo.spec.ts diff --git a/tests/arc4/tuple.spec.ts b/tests/arc4/tuple.algo.spec.ts similarity index 100% rename from tests/arc4/tuple.spec.ts rename to tests/arc4/tuple.algo.spec.ts diff --git a/tests/arc4/ufixednxm.spec.ts b/tests/arc4/ufixednxm.algo.spec.ts similarity index 100% rename from tests/arc4/ufixednxm.spec.ts rename to tests/arc4/ufixednxm.algo.spec.ts diff --git a/tests/arc4/uintn.spec.ts b/tests/arc4/uintn.algo.spec.ts similarity index 100% rename from tests/arc4/uintn.spec.ts rename to tests/arc4/uintn.algo.spec.ts diff --git a/tests/arc4/zero-constructor.spec.ts b/tests/arc4/zero-constructor.algo.spec.ts similarity index 100% rename from tests/arc4/zero-constructor.spec.ts rename to tests/arc4/zero-constructor.algo.spec.ts diff --git a/tests/crypto-op-codes.spec.ts b/tests/crypto-op-codes.algo.spec.ts similarity index 100% rename from tests/crypto-op-codes.spec.ts rename to tests/crypto-op-codes.algo.spec.ts diff --git a/tests/fixed-array.spec.ts b/tests/fixed-array.algo.spec.ts similarity index 100% rename from tests/fixed-array.spec.ts rename to tests/fixed-array.algo.spec.ts diff --git a/tests/global-state-arc4-values.spec.ts b/tests/global-state-arc4-values.algo.spec.ts similarity index 100% rename from tests/global-state-arc4-values.spec.ts rename to tests/global-state-arc4-values.algo.spec.ts diff --git a/tests/itxn-compose.spec.ts b/tests/itxn-compose.algo.spec.ts similarity index 100% rename from tests/itxn-compose.spec.ts rename to tests/itxn-compose.algo.spec.ts diff --git a/tests/local-state-arc4-values.spec.ts b/tests/local-state-arc4-values.algo.spec.ts similarity index 100% rename from tests/local-state-arc4-values.spec.ts rename to tests/local-state-arc4-values.algo.spec.ts diff --git a/tests/log.spec.ts b/tests/log.algo.spec.ts similarity index 100% rename from tests/log.spec.ts rename to tests/log.algo.spec.ts diff --git a/tests/match.spec.ts b/tests/match.algo.spec.ts similarity index 100% rename from tests/match.spec.ts rename to tests/match.algo.spec.ts diff --git a/tests/multi-inheritance.spec.ts b/tests/multi-inheritance.algo.spec.ts similarity index 100% rename from tests/multi-inheritance.spec.ts rename to tests/multi-inheritance.algo.spec.ts diff --git a/tests/native-mutable-array.spec.ts b/tests/native-mutable-array.algo.spec.ts similarity index 100% rename from tests/native-mutable-array.spec.ts rename to tests/native-mutable-array.algo.spec.ts diff --git a/tests/native-mutable-object.spec.ts b/tests/native-mutable-object.algo.spec.ts similarity index 100% rename from tests/native-mutable-object.spec.ts rename to tests/native-mutable-object.algo.spec.ts diff --git a/tests/native-readonly-array.spec.ts b/tests/native-readonly-array.algo.spec.ts similarity index 100% rename from tests/native-readonly-array.spec.ts rename to tests/native-readonly-array.algo.spec.ts diff --git a/tests/native-readonly-object.spec.ts b/tests/native-readonly-object.algo.spec.ts similarity index 100% rename from tests/native-readonly-object.spec.ts rename to tests/native-readonly-object.algo.spec.ts diff --git a/tests/primitives/biguint.spec.ts b/tests/primitives/biguint.algo.spec.ts similarity index 100% rename from tests/primitives/biguint.spec.ts rename to tests/primitives/biguint.algo.spec.ts diff --git a/tests/primitives/bytes.spec.ts b/tests/primitives/bytes.algo.spec.ts similarity index 100% rename from tests/primitives/bytes.spec.ts rename to tests/primitives/bytes.algo.spec.ts diff --git a/tests/primitives/uint64.spec.ts b/tests/primitives/uint64.algo.spec.ts similarity index 100% rename from tests/primitives/uint64.spec.ts rename to tests/primitives/uint64.algo.spec.ts diff --git a/tests/pure-op-codes.spec.ts b/tests/pure-op-codes.algo.spec.ts similarity index 100% rename from tests/pure-op-codes.spec.ts rename to tests/pure-op-codes.algo.spec.ts diff --git a/tests/reference-array.spec.ts b/tests/reference-array.algo.spec.ts similarity index 100% rename from tests/reference-array.spec.ts rename to tests/reference-array.algo.spec.ts diff --git a/tests/references/arc4-contract.spec.ts b/tests/references/arc4-contract.algo.spec.ts similarity index 100% rename from tests/references/arc4-contract.spec.ts rename to tests/references/arc4-contract.algo.spec.ts diff --git a/tests/references/asset.spec.ts b/tests/references/asset.algo.spec.ts similarity index 100% rename from tests/references/asset.spec.ts rename to tests/references/asset.algo.spec.ts diff --git a/tests/references/box-map.spec.ts b/tests/references/box-map.algo.spec.ts similarity index 100% rename from tests/references/box-map.spec.ts rename to tests/references/box-map.algo.spec.ts diff --git a/tests/references/box-ref.spec.ts b/tests/references/box-ref.algo.spec.ts similarity index 100% rename from tests/references/box-ref.spec.ts rename to tests/references/box-ref.algo.spec.ts diff --git a/tests/references/box.spec.ts b/tests/references/box.algo.spec.ts similarity index 100% rename from tests/references/box.spec.ts rename to tests/references/box.algo.spec.ts diff --git a/tests/state-op-codes.spec.ts b/tests/state-op-codes.algo.spec.ts similarity index 100% rename from tests/state-op-codes.spec.ts rename to tests/state-op-codes.algo.spec.ts diff --git a/tests/switch-statements.spec.ts b/tests/switch-statements.algo.spec.ts similarity index 100% rename from tests/switch-statements.spec.ts rename to tests/switch-statements.algo.spec.ts diff --git a/tests/urange.spec.ts b/tests/urange.algo.spec.ts similarity index 100% rename from tests/urange.spec.ts rename to tests/urange.algo.spec.ts