Skip to content

Commit a66211a

Browse files
committed
Add hybrid module test setup for ESM, CommonJS tests #65
1 parent 79ed658 commit a66211a

18 files changed

+72
-119
lines changed

fix-hybrid-module.test.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
cat >dist/test/cjs/package.json <<!EOF
2+
{
3+
"type": "commonjs"
4+
}
5+
!EOF
6+
7+
cat >dist/test/esm/package.json <<!EOF
8+
{
9+
"type": "module"
10+
}
11+
!EOF

package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@
1212
"build": "npm run build:esm && npm run build:cjs && ./fix-hybrid-module.sh",
1313
"build:esm": "tsc -p ./tsconfig.esm.json",
1414
"build:cjs": "tsc -p ./tsconfig.cjs.json",
15-
"test": "npm run lint && npm run testonly",
16-
"testonly": "mocha --check-leaks --exit --full-trace --require ts-node/register/transpile-only 'src/**/__tests__/**/*-test.{ts,tsx}'",
15+
"build:test:cjs": "tsc -p ./tsconfig.test.cjs.json && ./fix-hybrid-module.test.sh",
16+
"build:test:esm": "tsc -p ./tsconfig.test.esm.json && ./fix-hybrid-module.test.sh",
17+
"test": "npm run lint && npm run build:test:cjs && npm run testonly:cjs && npm run build:test:esm && npm run testonly:esm",
18+
"testonly:cjs": "mocha --check-leaks --exit --full-trace 'dist/test/cjs/**/__tests__/**/*-test.js'",
19+
"testonly:esm": "mocha --check-leaks --exit --full-trace 'dist/test/esm/**/__tests__/**/*-test.js'",
1720
"dist": "npm run clean && npm run build",
1821
"prepare": "npm run clean && npm run dist"
1922
},
@@ -61,7 +64,6 @@
6164
"mocha": "^9.1.3",
6265
"prettier": "^2.4.1",
6366
"rimraf": "^3.0.2",
64-
"ts-node": "^10.3.0",
6567
"typescript": "^4.4.4"
6668
}
6769
}

src/QueryComplexity.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
getArgumentValues,
99
getDirectiveValues,
1010
getVariableValues,
11-
} from 'graphql/execution/values';
11+
} from 'graphql/execution/values.js';
1212

1313
import {
1414
ValidationContext,

src/__tests__/QueryComplexity-test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,19 @@ import {
1313

1414
import { expect } from 'chai';
1515

16-
import schema from './fixtures/schema';
16+
import schema from './fixtures/schema.js';
1717

1818
import ComplexityVisitor, {
1919
getComplexity,
2020
ComplexityEstimator,
21-
} from '../QueryComplexity';
21+
} from '../QueryComplexity.js';
2222
import defaultExport, {
2323
createComplexityRule,
2424
simpleEstimator,
2525
directiveEstimator,
2626
fieldExtensionsEstimator,
27-
} from '../index';
28-
import { CompatibleValidationContext } from './fixtures/CompatibleValidationContext';
27+
} from '../index.js';
28+
import { CompatibleValidationContext } from './fixtures/CompatibleValidationContext.js';
2929

3030
describe('QueryComplexity analysis', () => {
3131
const typeInfo = new TypeInfo(schema);

src/__tests__/fixtures/CompatibleValidationContext.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1-
import { GraphQLError, TypeInfo, ValidationContext } from 'graphql';
2-
import { GraphQLSchema } from 'graphql/type/schema';
3-
import { DocumentNode } from 'graphql/language/ast';
1+
import {
2+
GraphQLError,
3+
TypeInfo,
4+
ValidationContext,
5+
GraphQLSchema,
6+
DocumentNode,
7+
} from 'graphql';
48

59
/**
610
* This class is used to test that validation errors are raised correctly

src/__tests__/fixtures/schema.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
GraphQLInterfaceType,
1515
} from 'graphql';
1616

17-
import { ComplexityEstimatorArgs } from '../../QueryComplexity';
17+
import { ComplexityEstimatorArgs } from '../../QueryComplexity.js';
1818

1919
const Item: GraphQLObjectType = new GraphQLObjectType({
2020
name: 'Item',

src/estimators/directive/__tests__/directiveEstimator-test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ import {
1515

1616
import { expect } from 'chai';
1717

18-
import schema from './fixtures/schema';
18+
import schema from './fixtures/schema.js';
1919

20-
import ComplexityVisitor from '../../../QueryComplexity';
21-
import directiveEstimator, { createComplexityDirective } from '../index';
22-
import { CompatibleValidationContext } from '../../../__tests__/fixtures/CompatibleValidationContext';
20+
import ComplexityVisitor from '../../../QueryComplexity.js';
21+
import directiveEstimator, { createComplexityDirective } from '../index.js';
22+
import { CompatibleValidationContext } from '../../../__tests__/fixtures/CompatibleValidationContext.js';
2323

2424
describe('directiveEstimator analysis', () => {
2525
const typeInfo = new TypeInfo(schema);

src/estimators/directive/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import {
22
ComplexityEstimator,
33
ComplexityEstimatorArgs,
4-
} from '../../QueryComplexity';
4+
} from '../../QueryComplexity.js';
55
import {
66
getDirectiveValues,
77
GraphQLInt,
88
GraphQLList,
99
GraphQLNonNull,
1010
GraphQLString,
11+
GraphQLDirective,
12+
DirectiveLocation,
1113
} from 'graphql';
12-
import { GraphQLDirective } from 'graphql/type/directives';
13-
import { DirectiveLocation } from 'graphql/language/directiveLocation';
1414
import get from 'lodash.get';
1515

1616
export type ComplexityDirectiveOptions = {

src/estimators/fieldExtensions/__tests__/fieldExtensionsEstimator-test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ import { parse, TypeInfo, visit, visitWithTypeInfo } from 'graphql';
66

77
import { expect } from 'chai';
88

9-
import schema from './fixtures/schema';
9+
import schema from './fixtures/schema.js';
1010

11-
import ComplexityVisitor from '../../../QueryComplexity';
12-
import simpleEstimator from '../../simple';
13-
import fieldExtensionsEstimator from '../index';
14-
import { CompatibleValidationContext } from '../../../__tests__/fixtures/CompatibleValidationContext';
11+
import ComplexityVisitor from '../../../QueryComplexity.js';
12+
import simpleEstimator from '../../simple/index.js';
13+
import fieldExtensionsEstimator from '../index.js';
14+
import { CompatibleValidationContext } from '../../../__tests__/fixtures/CompatibleValidationContext.js';
1515

1616
describe('fieldExtensions estimator', () => {
1717
const typeInfo = new TypeInfo(schema);

src/estimators/fieldExtensions/__tests__/fixtures/schema.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
GraphQLInterfaceType,
1616
} from 'graphql';
1717

18-
import { ComplexityEstimatorArgs } from '../../../../QueryComplexity';
18+
import { ComplexityEstimatorArgs } from '../../../../QueryComplexity.js';
1919

2020
const Item: GraphQLObjectType = new GraphQLObjectType({
2121
name: 'Item',

0 commit comments

Comments
 (0)