Skip to content

Commit c7f79ff

Browse files
committed
test: rewrite the tests in jest/typescript
1 parent 4d058bd commit c7f79ff

5 files changed

Lines changed: 245 additions & 37 deletions

File tree

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,55 @@
1-
const { requireFresh } = require("requirefresh")
2-
const path = require("path")
1+
import { requireFresh } from "requirefresh"
2+
import assert from "assert"
3+
import * as path from "path"
34

4-
const terserFile = path.join(path.dirname(__dirname), "src", ".terserrc.js")
5+
type Terserrc = typeof import("../src/.terserrc")
6+
function requireTerserrc(): Terserrc {
7+
return requireFresh(path.join(path.dirname(__dirname), "src", ".terserrc.js"))
8+
}
59

610
describe("Terser-Config-Atomic", () => {
711
it("production", () => {
812
process.env.NODE_ENV = "production"
913

10-
const TerserOptions = requireFresh(terserFile)
14+
const TerserOptions = requireTerserrc()
1115

1216
expect(typeof TerserOptions).toBe("object")
17+
assert(typeof TerserOptions.compress === "object")
1318
expect(TerserOptions.compress.global_defs).toEqual({
1419
"process.env.NODE_ENV": "production",
1520
"process.env.BABEL_ENV": "production",
1621
"@atom.inSpecMode": "() => false",
1722
"@atom.inDevMode": "() => false",
1823
})
1924
expect(TerserOptions.compress.passes).toBe(3)
20-
expect(TerserOptions.mangle).toBeTrue()
21-
expect(TerserOptions.format.beautify).toBeFalse()
25+
expect(TerserOptions.mangle).toBe(true)
26+
expect(TerserOptions.format.beautify).toBe(false)
2227
})
2328
it("development", () => {
2429
process.env.NODE_ENV = "development"
2530

26-
const TerserOptions = requireFresh(terserFile)
31+
const TerserOptions = requireTerserrc()
2732

2833
expect(typeof TerserOptions).toBe("object")
29-
expect(TerserOptions.compress).toBeFalse()
30-
expect(TerserOptions.mangle).toBeFalse()
31-
expect(TerserOptions.format.beautify).toBeTrue()
34+
expect(TerserOptions.compress).toBe(false)
35+
expect(TerserOptions.mangle).toBe(false)
36+
expect(TerserOptions.format.beautify).toBe(true)
3237
})
3338
it("test", () => {
3439
process.env.NODE_ENV = "test"
3540

36-
const TerserOptions = requireFresh(terserFile)
41+
const TerserOptions = requireTerserrc()
3742

3843
expect(typeof TerserOptions).toBe("object")
44+
assert(typeof TerserOptions.compress === "object")
3945
expect(TerserOptions.compress.global_defs).toEqual({
4046
"process.env.NODE_ENV": "test",
4147
"process.env.BABEL_ENV": "test",
4248
"@atom.inSpecMode": "() => true",
4349
"@atom.inDevMode": "() => false",
4450
})
4551
expect(TerserOptions.compress.passes).toBe(3)
46-
expect(TerserOptions.mangle).toBeFalse()
47-
expect(TerserOptions.format.beautify).toBeTrue()
52+
expect(TerserOptions.mangle).toBe(false)
53+
expect(TerserOptions.format.beautify).toBe(true)
4854
})
4955
})

jest.config.ts

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,17 @@
1-
/**
2-
* For a detailed explanation regarding each configuration property, visit:
3-
* https://jestjs.io/docs/configuration
4-
*/
5-
61
import type { Config } from "jest"
72

8-
const config: Config = {
9-
// Automatically clear mock calls, instances, contexts and results before every test
10-
clearMocks: true,
11-
12-
// Indicates whether the coverage information should be collected while executing the test
13-
collectCoverage: true,
14-
15-
// The directory where Jest should output its coverage files
16-
coverageDirectory: "coverage",
17-
18-
// Indicates which provider should be used to instrument code for coverage
19-
coverageProvider: "v8",
3+
const jestConfig: Config = {
4+
testMatch: ["**/*.test.ts"],
5+
testEnvironment: "node",
6+
extensionsToTreatAsEsm: [".ts", ".tsx", ".jsx"],
7+
transformIgnorePatterns: [], // transform node_modules
8+
transform: {
9+
"^.+\\.(t|j)sx?$": "@swc/jest",
10+
},
11+
// coverage
12+
collectCoverageFrom: ["src/**/*.{ts,tsx,js,jsx}"],
13+
coveragePathIgnorePatterns: ["assets", ".css.d.ts"],
14+
verbose: true,
2015
}
2116

22-
export default config
17+
export default jestConfig

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
},
2626
"atomTestRunner": "./test/runner",
2727
"devDependencies": {
28+
"@swc/jest": "^0.2.29",
29+
"@types/jest": "^29.5.4",
2830
"eslint": "^8.48.0",
2931
"eslint-config-atomic": "^1.19.3",
3032
"jest": "^29.6.4",

pnpm-lock.yaml

Lines changed: 173 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)