Skip to content

Commit 2834488

Browse files
authored
feat: migrated from jasmine/karma to jest (#DS-2192) (koobiq#154)
1 parent 31faf22 commit 2834488

File tree

45 files changed

+2483
-677
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+2483
-677
lines changed

.github/workflows/actions/setup-yarn/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ runs:
55
steps:
66
- uses: actions/setup-node@v4
77
with:
8-
node-version-file: .node-version
8+
node-version-file: .nvmrc
99

1010
- uses: actions/setup-node@v4
1111
with:

.node-version renamed to .nvmrc

File renamed without changes.

.prettierignore

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
1-
# Add files here to ignore them from prettier formatting
21
.angular/
32
.nx/
43
node_modules/
5-
64
.yarn/
7-
yarn.lock
8-
9-
*.api.md
10-
api-report.md
11-
125
/dist
136
/tmp
147
/temp
@@ -19,8 +12,11 @@ CHANGELOG.md
1912
/apps/docs/src/styles/koobiq/default-theme/
2013
/apps/docs/src/assets/versions.json
2114

15+
# ignore public-api-guard
16+
/tools/public_api_guard/**/*.md
17+
2218
# ignore auto-generated module
2319
/packages/docs-examples/example-module.ts
2420

2521
# ignore nunjuck templates
26-
tools/api-gen/rendering/templates
22+
/tools/api-gen/rendering/templates

angular.json

Lines changed: 12 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -200,21 +200,11 @@
200200
}
201201
},
202202
"test": {
203-
"builder": "@angular-devkit/build-angular:karma",
204-
"options": {
205-
"karmaConfig": "packages/cdk/karma.conf.js",
206-
"main": "packages/cdk/test.ts",
207-
"tsConfig": "packages/cdk/tsconfig.spec.json",
208-
"codeCoverage": true
209-
}
210-
},
211-
"lint": {
212-
"builder": "@angular-eslint/builder:lint",
203+
"builder": "@angular-builders/jest:run",
213204
"options": {
214-
"lintFilePatterns": [
215-
"packages/cdk/**/*.ts",
216-
"packages/cdk/**/*.html"
217-
]
205+
"roots": ["packages/cdk"],
206+
"configPath": "../../jest.config.js",
207+
"tsConfig": "../../tsconfig.spec.json"
218208
}
219209
}
220210
}
@@ -247,15 +237,6 @@
247237
"tsConfig": "packages/components/tsconfig.spec.json",
248238
"codeCoverage": true
249239
}
250-
},
251-
"lint": {
252-
"builder": "@angular-eslint/builder:lint",
253-
"options": {
254-
"lintFilePatterns": [
255-
"packages/components/**/*.ts",
256-
"packages/components/**/*.html"
257-
]
258-
}
259240
}
260241
}
261242
},
@@ -280,21 +261,11 @@
280261
}
281262
},
282263
"test": {
283-
"builder": "@angular-devkit/build-angular:karma",
264+
"builder": "@angular-builders/jest:run",
284265
"options": {
285-
"karmaConfig": "packages/angular-moment-adapter/karma.conf.js",
286-
"main": "packages/angular-moment-adapter/test.ts",
287-
"tsConfig": "packages/angular-moment-adapter/tsconfig.spec.json",
288-
"codeCoverage": true
289-
}
290-
},
291-
"lint": {
292-
"builder": "@angular-eslint/builder:lint",
293-
"options": {
294-
"lintFilePatterns": [
295-
"packages/angular-moment-adapter/**/*.ts",
296-
"packages/angular-moment-adapter/**/*.html"
297-
]
266+
"roots": ["packages/angular-moment-adapter"],
267+
"configPath": "../../jest.config.js",
268+
"tsConfig": "../../tsconfig.spec.json"
298269
}
299270
}
300271
}
@@ -320,21 +291,11 @@
320291
}
321292
},
322293
"test": {
323-
"builder": "@angular-devkit/build-angular:karma",
294+
"builder": "@angular-builders/jest:run",
324295
"options": {
325-
"karmaConfig": "packages/angular-luxon-adapter/karma.conf.js",
326-
"main": "packages/angular-luxon-adapter/test.ts",
327-
"tsConfig": "packages/angular-luxon-adapter/tsconfig.spec.json",
328-
"codeCoverage": true
329-
}
330-
},
331-
"lint": {
332-
"builder": "@angular-eslint/builder:lint",
333-
"options": {
334-
"lintFilePatterns": [
335-
"packages/angular-luxon-adapter/**/*.ts",
336-
"packages/angular-luxon-adapter/**/*.html"
337-
]
296+
"roots": ["packages/angular-luxon-adapter"],
297+
"configPath": "../../jest.config.js",
298+
"tsConfig": "../../tsconfig.spec.json"
338299
}
339300
}
340301
}

docs/guides/directory-structure.en.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ The top-level directory structure:
88
├─ tools ···················· infrastructure/build scripts
99
├─ commitlint.config.js ····· scope-enum declaration
1010
├─ gulpfile.js ·············· Gulp tasks config
11-
├─ wallaby.js ··············· Wallaby/Webpack config
1211
└─ package.json ············· Project config
1312
```
1413

jest.config.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// @ts-check
2+
3+
const { pathsToModuleNameMapper } = require('ts-jest');
4+
const { compilerOptions } = require('./tsconfig.json');
5+
6+
/** @type {import('jest').Config} */
7+
const config = {
8+
rootDir: __dirname,
9+
bail: 1,
10+
verbose: true,
11+
resetModules: true,
12+
clearMocks: true,
13+
cacheDirectory: '<rootDir>/node_modules/.cache/jest',
14+
preset: 'jest-preset-angular',
15+
setupFilesAfterEnv: ['<rootDir>/tools/jest/setup.js'],
16+
moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, { prefix: '<rootDir>/' }),
17+
testMatch: ['<rootDir>/**/*.spec.ts']
18+
};
19+
20+
module.exports = config;

package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@
1212
"type": "git",
1313
"url": "https://github.com/koobiq/angular-components.git"
1414
},
15-
"engines": {
16-
"node": ">= 18"
17-
},
1815
"packageManager": "[email protected]",
1916
"requiredAngularVersion": "^17.0.0",
2017
"dependencies": {
@@ -38,6 +35,7 @@
3835
"zone.js": "^0.14.4"
3936
},
4037
"devDependencies": {
38+
"@angular-builders/jest": "17.0.3",
4139
"@angular-devkit/architect-cli": "0.1702.0",
4240
"@angular-devkit/build-angular": "17.2.0",
4341
"@angular-devkit/core": "17.2.0",
@@ -80,6 +78,7 @@
8078
"@types/glob": "^7.1.4",
8179
"@types/inquirer": "^7.3.3",
8280
"@types/jasmine": "^4.6.4",
81+
"@types/jest": "^29.5.12",
8382
"@types/license-checker": "^25.0.6",
8483
"@types/luxon": "^3.4.2",
8584
"@types/merge2": "^0.3.30",
@@ -109,6 +108,8 @@
109108
"inquirer": "^7.3.3",
110109
"jasmine": "^4.6.0",
111110
"jasmine-core": "^3.99.1",
111+
"jest": "^29.7.0",
112+
"jest-preset-angular": "^14.1.1",
112113
"karma": "^6.4.3",
113114
"karma-chrome-launcher": "^3.2.0",
114115
"karma-coverage": "^2.2.1",
@@ -141,11 +142,11 @@
141142
"stylelint": "^16.6.1",
142143
"stylelint-config-recommended-scss": "^14.0.0",
143144
"stylelint-prettier": "^5.0.0",
145+
"ts-jest": "^29.2.2",
144146
"ts-node": "^10.9.1",
145147
"tsconfig-paths": "^3.9.0",
146148
"tsickle": "^0.39.1",
147-
"typescript": "5.3.3",
148-
"wallaby-webpack": "^3.9.16"
149+
"typescript": "5.3.3"
149150
},
150151
"scripts": {
151152
"ng": "ng",
@@ -166,7 +167,7 @@
166167
"unit:components": "ng test components",
167168
"unit:angular-moment-adapter": "ng test angular-moment-adapter",
168169
"unit:angular-luxon-adapter": "ng test angular-luxon-adapter",
169-
"unit:schematics": "ts-node --project packages/schematics/tsconfig.json node_modules/jasmine/bin/jasmine packages/schematics/**/*.spec.ts",
170+
"unit:schematics": "jest --roots packages/schematics",
170171
"docs": "yarn run build:cdk && yarn run build:components && yarn run styles:built-all && yarn run build:angular-luxon-adapter && yarn run build:angular-moment-adapter && yarn run build:docs-content && yarn run build:package-docs-content && yarn run build:docs-examples-module && yarn run build:docs-examples && yarn run docs:start:dev",
171172
"docs:start:dev": "ng serve --configuration=development koobiq-docs",
172173
"docs:start:prod": "ng serve --configuration=production koobiq-docs",
@@ -175,7 +176,6 @@
175176
"docs:update-versions": "ts-node --project tools/update-doc-versions/tsconfig.json tools/update-doc-versions/update-doc-versions.ts",
176177
"docs:api-gen": "BASE_PATH=packages node --no-warnings=ExperimentalWarning --loader ts-node/esm/transpile-only tools/api-gen/generate-api-docs.mts",
177178
"preinstall": "node tools/npm/check-npm.js",
178-
"prepare": "husky",
179179
"postinstall": "tsc -p tools/builders/tsconfig.json",
180180
"linter:angular-luxon-adapter": "eslint -c ./packages/angular-luxon-adapter/.eslintrc.json .",
181181
"linter:angular-moment-adapter": "eslint -c ./packages/angular-moment-adapter/.eslintrc.json .",

packages/angular-luxon-adapter/karma.conf.js

Lines changed: 0 additions & 12 deletions
This file was deleted.

packages/angular-luxon-adapter/test.ts

Lines changed: 0 additions & 8 deletions
This file was deleted.

packages/angular-luxon-adapter/tsconfig.json

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
11
{
22
"extends": "../../tsconfig.json",
33
"compilerOptions": {
4-
"types": [
5-
"node",
6-
"jasmine"
7-
],
4+
"types": ["node", "jest"],
85
"paths": {
96
"@koobiq/cdk/*": ["./dist/cdk/*"],
107
"@koobiq/components/*": ["./dist/components/*"]
118
}
129
},
13-
"include": [
14-
"./**/*.ts"
15-
],
10+
"include": ["./**/*.ts"],
1611
"angularCompilerOptions": {
1712
"annotateForClosureCompiler": true,
1813
"allowSyntheticDefaultImports": true,

0 commit comments

Comments
 (0)