Skip to content

Commit 748d5d1

Browse files
committed
test: Load .ts specs via require so Node 24 native type-stripping doesn't break them
CI runs Node 24, which natively strips TypeScript and loads .ts as ESM, bypassing the @babel/register CJS hook. ESM needs explicit extensions, so extensionless relative imports failed. Force Jasmine's require loader (engages the hook on Node 20), add explicit .ts extensions, and mark type-only imports with 'import type' so the suite loads identically on Node 20/22/24.
1 parent 00a1d52 commit 748d5d1

6 files changed

Lines changed: 11 additions & 8 deletions

File tree

spec/helpers/analytics.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { restRequest, ParseResponse } from './request';
2-
import { AuthOptions } from './headers';
1+
import { restRequest } from './request.ts';
2+
import type { ParseResponse } from './request.ts';
3+
import type { AuthOptions } from './headers.ts';
34

45
export type Dimensions = Record<string, string>;
56

spec/helpers/client.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { restRequest } from './request';
2-
import { AuthOptions } from './headers';
1+
import { restRequest } from './request.ts';
2+
import type { AuthOptions } from './headers.ts';
33

44
// Core object CRUD + query over the REST API. Defaults to REST API key auth;
55
// pass an explicit AuthOptions (e.g. { masterKey: true }) to override.

spec/helpers/headers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { TestConfig } from './config';
1+
import { TestConfig } from './config.ts';
22

33
export type ParseHeaders = Record<string, string>;
44

spec/helpers/request.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { TestConfig } from './config';
2-
import { buildHeaders, AuthOptions, ParseHeaders } from './headers';
1+
import { TestConfig } from './config.ts';
2+
import { buildHeaders } from './headers.ts';
3+
import type { AuthOptions, ParseHeaders } from './headers.ts';
34

45
// Uses the global fetch (Node 18+). Reading `global.fetch` dynamically keeps the
56
// client compatible with spec/helper.js's mockFetch, which intercepts external

spec/server/analytics.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { track, appOpened } from '../helpers/analytics';
1+
import { track, appOpened } from '../helpers/analytics.ts';
22

33
declare const reconfigureServer: (config?: Record<string, unknown>) => Promise<unknown>;
44

spec/support/jasmine.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@
22
"spec_dir": "spec",
33
"spec_files": ["**/*.[sS]pec.[jt]s"],
44
"helpers": ["support/tsRegister.js", "helper.js"],
5+
"jsLoader": "require",
56
"random": true
67
}

0 commit comments

Comments
 (0)