Skip to content

Commit

Permalink
WIP add vitest
Browse files Browse the repository at this point in the history
  • Loading branch information
danielpza committed Aug 8, 2024
1 parent cc131d3 commit ff930e8
Show file tree
Hide file tree
Showing 6 changed files with 908 additions and 26 deletions.
5 changes: 3 additions & 2 deletions test/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"private": true,
"license": "MIT",
"scripts": {
"test": "jest",
"test": "vitest --globals",
"g:ts-node": "cd $INIT_CWD && ts-node",
"postinstall": "node prepare.mjs"
},
Expand All @@ -25,7 +25,8 @@
"typescript": "^5.5.4",
"typescript-four-seven": "npm:[email protected]",
"typescript-three": "npm:[email protected]",
"typescript-transform-paths": "portal:../"
"typescript-transform-paths": "portal:../",
"vitest": "^2.0.5"
},
"workspaces": [
"projects/*"
Expand Down
4 changes: 2 additions & 2 deletions test/tests/extras.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ describe(`Extra Tests`, () => {
describe(`Built Tests`, () => {
// see: https://github.com/LeDDGroup/typescript-transform-paths/issues/130
test(`Transformer works without ts-node being present`, () => {
jest.doMock(
vi.doMock(
"ts-node",
() => {
throw new ModuleNotFoundError("ts-node");
Expand All @@ -30,7 +30,7 @@ describe(`Extra Tests`, () => {
const res = getEmitResultFromProgram(program);
expect(res[indexFile].js).toMatch(`var _identifier_1 = require("./id")`);
} finally {
jest.dontMock("ts-node");
vi.dontMock("ts-node");
}
});

Expand Down
4 changes: 2 additions & 2 deletions test/tests/nx.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ import * as transformerModule from "typescript-transform-paths/dist/transformer"

describe(`NX Transformer`, () => {
describe("Plugin", () => {
let mockedTransformer: jest.SpyInstance;
let mockedTransformer: vi.SpyInstance;

const program: any = { x: 1 };

beforeAll(async () => {
mockedTransformer = jest.spyOn(transformerModule, "default").mockReturnValue(<any>(() => {}));
mockedTransformer = vi.spyOn(transformerModule, "default").mockReturnValue(<any>(() => {}));
});
afterAll(() => {
mockedTransformer.mockClear();
Expand Down
28 changes: 14 additions & 14 deletions test/tests/register.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ describe(`Register script`, () => {
test(`Registers initial ts-node if none found`, () => {
const originalTsNodeInstance = global.process[instanceSymbol];
global.process[instanceSymbol] = void 0;
let registerSpy: jest.SpyInstance | undefined;
let registerSpy: vi.SpyInstance | undefined;
try {
registerSpy = jest.spyOn(tsNode, "register");
registerSpy = vi.spyOn(tsNode, "register");
expect(global.process[instanceSymbol]).toBeUndefined();

register.initialize();
Expand All @@ -65,9 +65,9 @@ describe(`Register script`, () => {

const originalTsNodeInstance = global.process[instanceSymbol];
global.process[instanceSymbol] = fakeInstance;
let registerSpy: jest.SpyInstance | undefined;
let registerSpy: vi.SpyInstance | undefined;
try {
registerSpy = jest.spyOn(tsNode, "register");
registerSpy = vi.spyOn(tsNode, "register");

const { tsNodeInstance } = register.initialize();

Expand All @@ -89,26 +89,26 @@ describe(`Register script`, () => {

describe(`Register`, () => {
test(`Throws without ts-node`, () => {
jest.doMock(
vi.doMock(
"ts-node",
() => {
throw new ModuleNotFoundError("ts-node");
},
{ virtual: true },
);
expect(() => register()).toThrow(`Cannot resolve ts-node`);
jest.dontMock("ts-node");
vi.dontMock("ts-node");
});

test(`Throws if can't register ts-node`, () => {
jest.doMock("ts-node", () => ({ register: () => {} }), { virtual: true });
vi.doMock("ts-node", () => ({ register: () => {} }), { virtual: true });
expect(() => register()).toThrow(`Could not register ts-node instance!`);
jest.dontMock("ts-node");
vi.dontMock("ts-node");
});

test(`No transformers in tsConfig exits quietly`, () => {
const originalInitialize = register.initialize;
const initializeSpy = jest.spyOn(register, "initialize");
const initializeSpy = vi.spyOn(register, "initialize");
try {
initializeSpy.mockImplementation(() => {
const res = originalInitialize();
Expand All @@ -133,7 +133,7 @@ describe(`Register script`, () => {
after: [fakeExistingTransformer],
afterDeclarations: [fakeExistingTransformer],
};
const transformerFactoryFn = jest.fn().mockReturnValue(fakeTransformerConfig);
const transformerFactoryFn = vi.fn().mockReturnValue(fakeTransformerConfig);
const fakeProgram: any = {};

let existingTransformers: CustomTransformers | ((p: Program) => CustomTransformers) | undefined;
Expand All @@ -149,19 +149,19 @@ describe(`Register script`, () => {
}

describe.each(configMap)(`$label`, ({ transformers, hasBefore, hasAfterDeclarations }) => {
let mockTransformer: jest.SpyInstance;
let initializeSpy: jest.SpyInstance;
let mockTransformer: vi.SpyInstance;
let initializeSpy: vi.SpyInstance;
let registerResult: tsNode.RegisterOptions;
let instanceRegistrationResult: tsNode.Service;
let mergedTransformers: CustomTransformers;

beforeAll(() => {
mockTransformer = jest.spyOn(transformerModule, "default").mockReturnValue(fakeTransformer);
mockTransformer = vi.spyOn(transformerModule, "default").mockReturnValue(fakeTransformer);

global.process[instanceSymbol] = void 0;

const originalInitialize = register.initialize;
initializeSpy = jest.spyOn(register, "initialize");
initializeSpy = vi.spyOn(register, "initialize");
initializeSpy.mockImplementation(() => {
const res = originalInitialize();
if (existingTransformers) res.tsNodeInstance.options.transformers = existingTransformers;
Expand Down
2 changes: 1 addition & 1 deletion test/tests/transformer/specific.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ const moduleAugmentFile = ts.normalizePath(path.join(projectRoot, "src/module-au
* ****************************************************************************************************************** */

declare global {
namespace jest {
namespace vi {
interface Matchers<R> {
transformedMatches(expected: RegExp | string, opt?: { base?: EmittedFiles[]; kind?: ("dts" | "js")[] }): void;
}
Expand Down
Loading

0 comments on commit ff930e8

Please sign in to comment.