diff --git a/packages/cli/src/codegen/schema.test.ts b/packages/cli/src/codegen/schema.test.ts index 24bb7de8d..6f549d01e 100644 --- a/packages/cli/src/codegen/schema.test.ts +++ b/packages/cli/src/codegen/schema.test.ts @@ -38,7 +38,7 @@ const testEntity = async (generatedTypes: any[], expectedEntity: any) => { expect(methods.length).toBe(expectedEntity.methods.length); }; -describe.concurrent('Schema code generator', () => { +describe('Schema code generator', { concurrent: true }, () => { test('Should generate nothing for non entity types', () => { const codegen = createSchemaCodeGen(` type Foo { @@ -217,7 +217,7 @@ describe.concurrent('Schema code generator', () => { return 0 } else { return value.toI32() - } + } `, }, { @@ -313,7 +313,7 @@ describe.concurrent('Schema code generator', () => { params: [], returnType: new NamedType('WalletLoader'), body: ` - return new WalletLoader("Account", this.get('id')!.toString(), "wallets") + return new WalletLoader("Account", this.get('id')!.toString(), "wallets") `, }, ], @@ -566,7 +566,7 @@ describe.concurrent('Schema code generator', () => { id: Bytes! related: [RelatedBytes!]! @derivedFrom(field: "related") } - + type RelatedBytes @entity { id: ID! related: WithBytes! @@ -647,17 +647,17 @@ describe.concurrent('Schema code generator', () => { test('no derived loader for interface', () => { const codegen = createSchemaCodeGen(` interface IExample { - id: ID! + id: ID! main: Main! num: Int! } - + type Example1 implements IExample @entity { - id: ID! + id: ID! main: Main! num: Int! } - + type Main @entity { id: ID! examples: [IExample!]! @derivedFrom(field: "main") diff --git a/packages/cli/src/codegen/types/index.test.ts b/packages/cli/src/codegen/types/index.test.ts index c08713803..99c60c432 100644 --- a/packages/cli/src/codegen/types/index.test.ts +++ b/packages/cli/src/codegen/types/index.test.ts @@ -1,7 +1,7 @@ import { describe, expect, test } from 'vitest'; import * as codegen from './index.js'; -describe.concurrent('ethereum.Value -> AssemblyScript', () => { +describe('ethereum.Value -> AssemblyScript', { concurrent: true }, () => { // Scalar values test('address -> Address', () => { diff --git a/packages/cli/src/codegen/util.test.ts b/packages/cli/src/codegen/util.test.ts index 34d475cea..403893543 100644 --- a/packages/cli/src/codegen/util.test.ts +++ b/packages/cli/src/codegen/util.test.ts @@ -1,7 +1,7 @@ import { describe, expect, test } from 'vitest'; import { disambiguateNames, unrollTuple } from './util.js'; -describe.concurrent('Codegen utilities', () => { +describe('Codegen utilities', { concurrent: true }, () => { test('Name disambiguation', () => { expect( disambiguateNames({ diff --git a/packages/cli/src/command-helpers/compiler.test.ts b/packages/cli/src/command-helpers/compiler.test.ts index 7965b412a..533ed0549 100644 --- a/packages/cli/src/command-helpers/compiler.test.ts +++ b/packages/cli/src/command-helpers/compiler.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest'; import { appendApiVersionForGraph } from './compiler.js'; -describe.concurrent('appendApiVersionForGraph', () => { +describe('appendApiVersionForGraph', { concurrent: true }, () => { it('append /api/v0 to Prod URL with trailing slash', () => { expect(appendApiVersionForGraph('https://api.thegraph.com/ipfs/')).toBe( 'https://api.thegraph.com/ipfs/api/v0', diff --git a/packages/cli/src/command-helpers/contracts.test.ts b/packages/cli/src/command-helpers/contracts.test.ts index c650a1818..0036a2269 100644 --- a/packages/cli/src/command-helpers/contracts.test.ts +++ b/packages/cli/src/command-helpers/contracts.test.ts @@ -85,7 +85,7 @@ const TEST_CONTRACT_START_BLOCKS = { // }, }; -describe.sequential('getStartBlockForContract', async () => { +describe('getStartBlockForContract', { sequential: true }, async () => { const registry = await loadRegistry(); const contractService = new ContractService(registry); for (const [network, contracts] of Object.entries(TEST_CONTRACT_START_BLOCKS)) { diff --git a/packages/cli/src/command-helpers/version.test.ts b/packages/cli/src/command-helpers/version.test.ts index 02c540b3d..26aacc8d7 100644 --- a/packages/cli/src/command-helpers/version.test.ts +++ b/packages/cli/src/command-helpers/version.test.ts @@ -3,7 +3,7 @@ import * as loadManifestUtils from '../migrations/util/load-manifest.js'; import * as graphTsUtil from '../migrations/util/versions.js'; import { assertGraphTsVersion, assertManifestApiVersion } from './version.js'; -describe.concurrent('Version Command Helpers', () => { +describe('Version Command Helpers', { concurrent: true }, () => { beforeEach(() => { vi.resetModules(); }); diff --git a/packages/cli/src/protocols/ethereum/codegen/abi.test.ts b/packages/cli/src/protocols/ethereum/codegen/abi.test.ts index a274559a4..c7acce284 100644 --- a/packages/cli/src/protocols/ethereum/codegen/abi.test.ts +++ b/packages/cli/src/protocols/ethereum/codegen/abi.test.ts @@ -8,7 +8,7 @@ let tempdir: string; let abi: ABI; let generatedTypes: any[] = []; -describe.concurrent('ABI code generation', () => { +describe('ABI code generation', { concurrent: true }, () => { beforeAll(async () => { tempdir = await fs.mkdtemp('abi-codegen'); diff --git a/packages/cli/src/validation/schema.test.ts b/packages/cli/src/validation/schema.test.ts index 8719dbe66..f2f400229 100644 --- a/packages/cli/src/validation/schema.test.ts +++ b/packages/cli/src/validation/schema.test.ts @@ -1,7 +1,7 @@ import { describe, expect, test } from 'vitest'; import { typeSuggestion } from './schema.js'; -describe.concurrent('Schema validation', () => { +describe('Schema validation', { concurrent: true }, () => { test('Type suggestions', () => { expect(typeSuggestion('Address')).toEqual('Bytes'); expect(typeSuggestion('address')).toEqual('Bytes'); diff --git a/packages/cli/tests/cli/init.test.ts b/packages/cli/tests/cli/init.test.ts index 874659a24..392c0af66 100644 --- a/packages/cli/tests/cli/init.test.ts +++ b/packages/cli/tests/cli/init.test.ts @@ -4,8 +4,12 @@ import { cliTest } from './util'; // we run the tests sequentially because each init command installs deps with the // same package manager and we want to avoid race conditions on the deps cache -describe.sequential( +describe( 'Init', + { + sequential: true, + timeout: 100_000, + }, () => { const baseDir = path.join(__dirname, 'init'); @@ -238,7 +242,4 @@ describe.sequential( ); }); }, - { - timeout: 60_000, - }, ); diff --git a/packages/cli/tests/cli/validation.test.ts b/packages/cli/tests/cli/validation.test.ts index b0432ee6b..81a7838f4 100644 --- a/packages/cli/tests/cli/validation.test.ts +++ b/packages/cli/tests/cli/validation.test.ts @@ -1,266 +1,250 @@ import { describe } from 'vitest'; import { cliTest } from './util'; -describe.concurrent( - 'Validation', - () => { - cliTest( - 'Block handler filters', - ['codegen', '--skip-migrations'], - 'validation/block-handler-filters', - { - exitCode: 0, - }, - ); - cliTest( - 'Invalid subgraph manifest', - ['codegen', '--skip-migrations'], - 'validation/invalid-manifest', - { - exitCode: 1, - }, - ); - cliTest( - 'Invalid subgraph manifest (cannot infer protocol)', - ['codegen', '--skip-migrations'], - 'validation/invalid-manifest-cannot-infer-protocol', - { - exitCode: 1, - }, - ); - cliTest( - 'ABI not found in data source', - ['codegen', '--skip-migrations'], - 'validation/abi-not-found', - { - exitCode: 1, - }, - ); - cliTest('Invalid ABI files', ['codegen', '--skip-migrations'], 'validation/invalid-abis', { +describe('Validation', { concurrent: true, timeout: 60_000 }, () => { + cliTest( + 'Block handler filters', + ['codegen', '--skip-migrations'], + 'validation/block-handler-filters', + { + exitCode: 0, + }, + ); + cliTest( + 'Invalid subgraph manifest', + ['codegen', '--skip-migrations'], + 'validation/invalid-manifest', + { + exitCode: 1, + }, + ); + cliTest( + 'Invalid subgraph manifest (cannot infer protocol)', + ['codegen', '--skip-migrations'], + 'validation/invalid-manifest-cannot-infer-protocol', + { + exitCode: 1, + }, + ); + cliTest( + 'ABI not found in data source', + ['codegen', '--skip-migrations'], + 'validation/abi-not-found', + { + exitCode: 1, + }, + ); + cliTest('Invalid ABI files', ['codegen', '--skip-migrations'], 'validation/invalid-abis', { + exitCode: 1, + }); + cliTest( + 'Event not found in ABI', + ['codegen', '--skip-migrations'], + 'validation/event-not-found', + { + exitCode: 1, + }, + ); + cliTest( + 'Call function not found in the ABI', + ['codegen', '--skip-migrations'], + 'validation/call-function-not-found', + { + exitCode: 1, + }, + ); + cliTest( + 'Call handler with tuple', + ['codegen', '--skip-migrations'], + 'validation/call-handler-with-tuple', + { + exitCode: 0, + }, + ); + cliTest('2D arrays are valid', ['codegen', '--skip-migrations'], 'validation/2d-array-is-valid', { + exitCode: 0, + }); + cliTest('3D arrays are valid', ['codegen', '--skip-migrations'], 'validation/3d-array-is-valid', { + exitCode: 0, + }); + cliTest( + 'Missing entity "id" field', + ['codegen', '--skip-migrations'], + 'validation/missing-entity-id', + { + exitCode: 1, + }, + ); + cliTest( + 'Invalid entity field types', + ['codegen', '--skip-migrations'], + 'validation/invalid-entity-field-types', + { + exitCode: 1, + }, + ); + cliTest( + 'Invalid contract addresses', + ['codegen', '--skip-migrations'], + 'validation/invalid-contract-addresses', + ); + cliTest( + 'Entity field arguments', + ['codegen', '--skip-migrations'], + 'validation/entity-field-args', + { + exitCode: 1, + }, + ); + cliTest( + 'Example values found in manifest', + ['codegen', '--skip-migrations'], + 'validation/example-values-found', + { exitCode: 0 }, + ); + cliTest( + 'Source without address is valid', + ['codegen', '--skip-migrations'], + 'validation/source-without-address-is-valid', + { + exitCode: 0, + }, + ); + cliTest( + 'Invalid data source template', + ['codegen', '--skip-migrations'], + 'validation/invalid-data-source-template', + { exitCode: 1 }, + ); + cliTest( + 'BigDecimal is a valid type', + ['codegen', '--skip-migrations'], + 'validation/big-decimal-is-valid', + { + exitCode: 0, + }, + ); + cliTest( + 'topic0 is valid in an event handler', + ['codegen', '--skip-migrations'], + 'validation/topic0-is-valid', + { + exitCode: 0, + }, + ); + cliTest( + 'Ethereum contract data source without handlers', + ['codegen', '--skip-migrations'], + 'validation/ethereum-contract-without-handlers', + { + exitCode: 1, + }, + ); + cliTest( + 'Missing or invalid @derivedFrom fields', + ['codegen', '--skip-migrations'], + 'validation/missing-or-invalid-derived-from-fields', + { + exitCode: 1, + }, + ); + cliTest( + 'Deriving from interface-typed fields is allowed', + ['codegen', '--skip-migrations'], + 'validation/derived-from-with-interface', + { + exitCode: 0, + }, + ); + cliTest( + '@derivedFrom target type missing', + ['codegen', '--skip-migrations'], + 'validation/derived-from-target-type-missing', + { exitCode: 1, - }); - cliTest( - 'Event not found in ABI', - ['codegen', '--skip-migrations'], - 'validation/event-not-found', - { - exitCode: 1, - }, - ); - cliTest( - 'Call function not found in the ABI', - ['codegen', '--skip-migrations'], - 'validation/call-function-not-found', - { - exitCode: 1, - }, - ); - cliTest( - 'Call handler with tuple', - ['codegen', '--skip-migrations'], - 'validation/call-handler-with-tuple', - { - exitCode: 0, - }, - ); - cliTest( - '2D arrays are valid', - ['codegen', '--skip-migrations'], - 'validation/2d-array-is-valid', - { - exitCode: 0, - }, - ); - cliTest( - '3D arrays are valid', - ['codegen', '--skip-migrations'], - 'validation/3d-array-is-valid', - { - exitCode: 0, - }, - ); - cliTest( - 'Missing entity "id" field', - ['codegen', '--skip-migrations'], - 'validation/missing-entity-id', - { - exitCode: 1, - }, - ); - cliTest( - 'Invalid entity field types', - ['codegen', '--skip-migrations'], - 'validation/invalid-entity-field-types', - { - exitCode: 1, - }, - ); - cliTest( - 'Invalid contract addresses', - ['codegen', '--skip-migrations'], - 'validation/invalid-contract-addresses', - ); - cliTest( - 'Entity field arguments', - ['codegen', '--skip-migrations'], - 'validation/entity-field-args', - { - exitCode: 1, - }, - ); - cliTest( - 'Example values found in manifest', - ['codegen', '--skip-migrations'], - 'validation/example-values-found', - { exitCode: 0 }, - ); - cliTest( - 'Source without address is valid', - ['codegen', '--skip-migrations'], - 'validation/source-without-address-is-valid', - { - exitCode: 0, - }, - ); - cliTest( - 'Invalid data source template', - ['codegen', '--skip-migrations'], - 'validation/invalid-data-source-template', - { exitCode: 1 }, - ); - cliTest( - 'BigDecimal is a valid type', - ['codegen', '--skip-migrations'], - 'validation/big-decimal-is-valid', - { - exitCode: 0, - }, - ); - cliTest( - 'topic0 is valid in an event handler', - ['codegen', '--skip-migrations'], - 'validation/topic0-is-valid', - { - exitCode: 0, - }, - ); - cliTest( - 'Ethereum contract data source without handlers', - ['codegen', '--skip-migrations'], - 'validation/ethereum-contract-without-handlers', - { - exitCode: 1, - }, - ); - cliTest( - 'Missing or invalid @derivedFrom fields', - ['codegen', '--skip-migrations'], - 'validation/missing-or-invalid-derived-from-fields', - { - exitCode: 1, - }, - ); - cliTest( - 'Deriving from interface-typed fields is allowed', - ['codegen', '--skip-migrations'], - 'validation/derived-from-with-interface', - { - exitCode: 0, - }, - ); - cliTest( - '@derivedFrom target type missing', - ['codegen', '--skip-migrations'], - 'validation/derived-from-target-type-missing', - { - exitCode: 1, - }, - ); - cliTest('NEAR is a valid chain', ['codegen', '--skip-migrations'], 'validation/near-is-valid', { + }, + ); + cliTest('NEAR is a valid chain', ['codegen', '--skip-migrations'], 'validation/near-is-valid', { + exitCode: 0, + }); + cliTest( + 'Deprecated template format gives nice error', + ['codegen', '--skip-migrations'], + 'validation/nested-template-nice-error', + { exitCode: 0, - }); - cliTest( - 'Deprecated template format gives nice error', - ['codegen', '--skip-migrations'], - 'validation/nested-template-nice-error', - { - exitCode: 0, - }, - ); + }, + ); - cliTest( - 'Duplicate data source name', - ['codegen', '--skip-migrations'], - 'validation/duplicate-data-source-name', - { - exitCode: 1, - }, - ); + cliTest( + 'Duplicate data source name', + ['codegen', '--skip-migrations'], + 'validation/duplicate-data-source-name', + { + exitCode: 1, + }, + ); - cliTest( - 'Duplicate template name', - ['codegen', '--skip-migrations'], - 'validation/duplicate-template-name', - { - exitCode: 1, - }, - ); + cliTest( + 'Duplicate template name', + ['codegen', '--skip-migrations'], + 'validation/duplicate-template-name', + { + exitCode: 1, + }, + ); - cliTest( - 'No network names (valid)', - ['codegen', '--skip-migrations'], - 'validation/no-network-names', - { - exitCode: 0, - }, - ); + cliTest( + 'No network names (valid)', + ['codegen', '--skip-migrations'], + 'validation/no-network-names', + { + exitCode: 0, + }, + ); - cliTest( - 'Conflicting network names', - ['codegen', '--skip-migrations'], - 'validation/conflicting-network-names', - { - exitCode: 1, - }, - ); + cliTest( + 'Conflicting network names', + ['codegen', '--skip-migrations'], + 'validation/conflicting-network-names', + { + exitCode: 1, + }, + ); - cliTest( - 'Conflicting protocol names', - ['codegen', '--skip-migrations'], - 'validation/conflicting-protocol-names', - { - exitCode: 1, - }, - ); + cliTest( + 'Conflicting protocol names', + ['codegen', '--skip-migrations'], + 'validation/conflicting-protocol-names', + { + exitCode: 1, + }, + ); - cliTest( - 'Invalid @fulltext directive', - ['codegen', '--skip-migrations'], - 'validation/invalid-fulltext-directive', - { - exitCode: 1, - }, - ); + cliTest( + 'Invalid @fulltext directive', + ['codegen', '--skip-migrations'], + 'validation/invalid-fulltext-directive', + { + exitCode: 1, + }, + ); - cliTest( - 'Invalid GraphQL schema', - ['codegen', '--skip-migrations'], - 'validation/invalid-graphql-schema', - { - exitCode: 1, - }, - ); + cliTest( + 'Invalid GraphQL schema', + ['codegen', '--skip-migrations'], + 'validation/invalid-graphql-schema', + { + exitCode: 1, + }, + ); - cliTest( - 'Should parse indexerHints', - ['codegen', '--skip-migrations'], - 'validation/indexer-hints', - { - exitCode: 0, - }, - ); - }, - { - timeout: 60_000, - }, -); + cliTest( + 'Should parse indexerHints', + ['codegen', '--skip-migrations'], + 'validation/indexer-hints', + { + exitCode: 0, + }, + ); +});