fix: use real cache key prefixes in mock and dynamic imports for CI compatibility
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
import { describe, test, expect, mock, beforeEach } from "bun:test";
|
||||
import { describe, test, expect, mock, beforeAll, beforeEach } from "bun:test";
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Top-level mocks — configured before the module is imported so the ESM
|
||||
// linker always sees the mocked version, regardless of Bun's module cache.
|
||||
// Top-level mocks — must be registered before any import of the service
|
||||
// module so the ESM linker resolves mocked dependencies.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
const postMock = mock(() => Promise.resolve({ data: { id: 9001 } }));
|
||||
@@ -22,11 +22,20 @@ mock.module("../../src/modules/cw-utils/opportunities/opportunities", () => ({
|
||||
opportunityCw: { update: updateMock },
|
||||
}));
|
||||
|
||||
// Import AFTER mocks
|
||||
import {
|
||||
submitTimeEntry,
|
||||
syncOpportunityStatus,
|
||||
} from "../../src/services/cw.opportunityService";
|
||||
// ---------------------------------------------------------------------------
|
||||
// Dynamic import — use await import() inside beforeAll so the module is
|
||||
// loaded AFTER mock.module calls take effect. Static imports are hoisted
|
||||
// above top-level code in some Bun versions, defeating the mock.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
let submitTimeEntry: typeof import("../../src/services/cw.opportunityService")["submitTimeEntry"];
|
||||
let syncOpportunityStatus: typeof import("../../src/services/cw.opportunityService")["syncOpportunityStatus"];
|
||||
|
||||
beforeAll(async () => {
|
||||
const mod = await import("../../src/services/cw.opportunityService");
|
||||
submitTimeEntry = mod.submitTimeEntry;
|
||||
syncOpportunityStatus = mod.syncOpportunityStatus;
|
||||
});
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Tests
|
||||
|
||||
Reference in New Issue
Block a user