1- import fs from "fs" ;
2- import path from "path" ;
1+ import fs from "node: fs" ;
2+ import path from "node: path" ;
33import { Loader } from "cosmiconfig" ;
4+ import {
5+ afterAll ,
6+ afterEach ,
7+ beforeAll ,
8+ beforeEach ,
9+ describe ,
10+ expect ,
11+ it ,
12+ SpyInstance ,
13+ vi ,
14+ } from "vitest" ;
15+
16+ vi . mock ( "ts-node" , async ( ) => {
17+ const tsnode = await vi . importActual < typeof import ( "ts-node" ) > ( "ts-node" ) ;
18+
19+ let writableTsNode : any = { } ;
20+ Object . keys ( tsnode ) . forEach ( ( key ) =>
21+ Object . defineProperty ( writableTsNode , key , {
22+ value : ( tsnode as any ) [ key ] ,
23+ writable : true ,
24+ } )
25+ ) ;
26+
27+ return writableTsNode ;
28+ } ) ;
29+
430import * as tsnode from "ts-node" ;
31+
532import { TypeScriptLoader } from "./loader" ;
633import { TypeScriptCompileError } from "./typescript-compile-error" ;
734
835describe ( "TypeScriptLoader" , ( ) => {
936 const fixturesPath = path . resolve ( __dirname , "__fixtures__" ) ;
10- const tsNodeSpy = jest . spyOn ( tsnode , "register" ) ;
37+ const tsNodeSpy = vi . spyOn ( tsnode , "register" ) ;
1138
1239 let loader : Loader ;
1340
@@ -19,6 +46,10 @@ describe("TypeScriptLoader", () => {
1946 loader = TypeScriptLoader ( ) ;
2047 } ) ;
2148
49+ afterAll ( ( ) => {
50+ vi . restoreAllMocks ( ) ;
51+ } ) ;
52+
2253 it ( "should parse a valid TS file" , ( ) => {
2354 const filePath = path . resolve ( fixturesPath , "valid.fixture.ts" ) ;
2455 loader ( filePath , readFixtureContent ( filePath ) ) ;
@@ -40,7 +71,7 @@ describe("TypeScriptLoader", () => {
4071 try {
4172 const filePath = path . resolve ( fixturesPath , "invalid.fixture.ts" ) ;
4273 loader ( filePath , readFixtureContent ( filePath ) ) ;
43- fail (
74+ throw new Error (
4475 "Error should be thrown upon failing to transpile an invalid TS file."
4576 ) ;
4677 } catch ( error : unknown ) {
@@ -51,10 +82,10 @@ describe("TypeScriptLoader", () => {
5182 describe ( "ts-node" , ( ) => {
5283 const unknownError = "Test Error" ;
5384
54- let stub : jest . SpyInstance < tsnode . Service , [ service : tsnode . Service ] > ;
85+ let stub : SpyInstance < [ service : tsnode . Service ] , tsnode . Service > ;
5586
5687 beforeEach ( ( ) => {
57- stub = jest . spyOn ( tsnode , "register" ) . mockImplementation (
88+ stub = vi . spyOn ( tsnode , "register" ) . mockImplementation (
5889 ( ) =>
5990 ( {
6091 compile : ( ) : string => {
@@ -73,7 +104,7 @@ describe("TypeScriptLoader", () => {
73104 it ( "rethrows an error if it is not an instance of Error" , ( ) => {
74105 try {
75106 loader ( "filePath" , "readFixtureContent(filePath)" ) ;
76- fail (
107+ throw new Error (
77108 "Error should be thrown upon failing to transpile an invalid TS file."
78109 ) ;
79110 } catch ( error : unknown ) {
0 commit comments