Skip to content

Commit 2aa2e01

Browse files
Integration tests (#4)
* Exposing server for use in integration tests * Adding test framework, docker updates and query/mutation tests
1 parent f609307 commit 2aa2e01

11 files changed

+8081
-2054
lines changed

Makefile

+3
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,6 @@ start-apollo-server-dev:
2121

2222
start-apollo-server-types-check:
2323
docker-compose run --rm --service-ports apollo-server-dev npm run types:check
24+
25+
start-apollo-server-test:
26+
docker-compose run --rm --service-ports apollo-server-dev npm run test

server/.dockerignore

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
!src/
33
!.nvmrc
44
!.prettierrc.json
5+
!jest-mjs-resolver.ts
6+
!jest.config.ts
57
!package.json
68
!package-lock.json
7-
!tsconfig.json
9+
!tsconfig.json
10+
!tsconfig.build.json

server/jest-mjs-resolver.ts

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// @ts-nocheck
2+
3+
const mjsResolver = (path, options) => {
4+
const mjsExtRegex = /\.mjs$/i;
5+
const resolver = options.defaultResolver;
6+
7+
if (mjsExtRegex.test(path)) {
8+
try {
9+
return resolver(path.replace(mjsExtRegex, '.mts'), options);
10+
} catch {
11+
// use default resolver
12+
}
13+
}
14+
15+
return resolver(path, options);
16+
};
17+
18+
module.exports = mjsResolver;

server/jest.config.ts

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import type { InitialOptionsTsJest } from 'ts-jest';
2+
3+
const configuration: InitialOptionsTsJest = {
4+
extensionsToTreatAsEsm: ['.ts', '.mts'],
5+
moduleFileExtensions: ['js', 'ts', 'tsx', 'mts'],
6+
resolver: '<rootDir>/jest-mjs-resolver.ts',
7+
testMatch: ['**/*.spec.mts'],
8+
transform: {
9+
'^.+\\.m?tsx?$': [
10+
'ts-jest',
11+
{
12+
useESM: true,
13+
},
14+
],
15+
},
16+
};
17+
18+
export default configuration;

0 commit comments

Comments
 (0)