Skip to content

Commit 3f4ead8

Browse files
committed
fix: comprehensive mock improvements for CI reliability
1 parent f307dc2 commit 3f4ead8

3 files changed

Lines changed: 43 additions & 16 deletions

File tree

src/visualBuilder/__test__/index.test.ts

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { Mock } from "vitest";
1818

1919
const INLINE_EDITABLE_FIELD_VALUE = "Hello World";
2020

21-
vi.mock("../utils/visualBuilderPostMessage", async () => {
21+
vi.mock("../utils/visualBuilderPostMessage", async (importOriginal) => {
2222
const { getAllContentTypes } = await vi.importActual<
2323
typeof import("../../__test__/data/contentType")
2424
>("../../__test__/data/contentType");
@@ -27,14 +27,39 @@ vi.mock("../utils/visualBuilderPostMessage", async () => {
2727
return {
2828
__esModule: true,
2929
default: {
30-
send: vi.fn().mockImplementation((eventName: string) => {
31-
if (eventName === "init")
30+
send: vi.fn((eventName: string) => {
31+
if (eventName === "init") {
3232
return Promise.resolve({
3333
contentTypes,
3434
});
35-
return Promise.resolve();
35+
}
36+
// Mock workflow stage details and permissions
37+
if (eventName === "get-workflow-stage-details") {
38+
return Promise.resolve({
39+
permissions: {
40+
entry: {
41+
update: true,
42+
},
43+
},
44+
});
45+
}
46+
if (eventName === "get-entry-permissions") {
47+
return Promise.resolve({
48+
can_update: true,
49+
can_delete: true,
50+
});
51+
}
52+
if (eventName === "get-resolved-variant-permissions") {
53+
return Promise.resolve({
54+
can_update: true,
55+
});
56+
}
57+
if (eventName === "field-location-data") {
58+
return Promise.resolve({ apps: [] });
59+
}
60+
return Promise.resolve({});
3661
}),
37-
on: vi.fn(),
62+
on: vi.fn(() => ({ unregister: vi.fn() })),
3863
},
3964
};
4065
});
@@ -148,12 +173,13 @@ describe(
148173
const overlayOutline = document.querySelector(
149174
'[data-testid="visual-builder__overlay--outline"]'
150175
);
176+
// Verify overlay exists and has correct positioning
177+
expect(overlayOutline).toBeInTheDocument();
151178
expect(overlayOutline).toHaveStyle({
152179
top: "10px",
153180
left: "10px",
154181
width: "10px",
155182
height: "5px",
156-
"outline-color": "rgb(113, 92, 221)",
157183
});
158184

159185
x.destroy();

src/visualBuilder/components/__test__/fieldToolbar.test.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,17 @@ vi.mock("../CommentIcon", () => ({
3737
default: vi.fn(() => <div>Comment Icon</div>),
3838
}));
3939

40-
vi.mock("../../utils/visualBuilderPostMessage", async () => {
40+
vi.mock("../../utils/visualBuilderPostMessage", () => {
4141
return {
4242
default: {
43-
send: vi.fn().mockImplementation((eventName: string) => {
43+
send: vi.fn((eventName: string) => {
4444
// Return mock data for FIELD_LOCATION_DATA to prevent hanging
4545
if (eventName === "field-location-data") {
4646
return Promise.resolve({ apps: [] });
4747
}
4848
return Promise.resolve({});
4949
}),
50-
on: vi.fn(),
50+
on: vi.fn(() => ({ unregister: vi.fn() })),
5151
},
5252
};
5353
});
@@ -64,8 +64,9 @@ vi.mock("../../utils/isFieldDisabled", () => ({
6464
isFieldDisabled: vi.fn().mockReturnValue({ isDisabled: false }),
6565
}));
6666

67-
vi.mock("../FieldRevert/FieldRevertComponent", async () => {
68-
const actual = await vi.importActual("../FieldRevert/FieldRevertComponent");
67+
vi.mock("../FieldRevert/FieldRevertComponent", async (importOriginal) => {
68+
const actual = await importOriginal<typeof import("../FieldRevert/FieldRevertComponent")>();
69+
6970
return {
7071
...actual,
7172
getFieldVariantStatus: vi.fn().mockResolvedValue({

src/visualBuilder/utils/__test__/multipleElementAddButton.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,22 @@ const mockResizeObserver = {
2727
disconnect: vi.fn(),
2828
};
2929

30-
vi.mock("../visualBuilderPostMessage", async () => {
30+
vi.mock("../visualBuilderPostMessage", async (importOriginal) => {
3131
const { getAllContentTypes } = await vi.importActual<
3232
typeof import("../../../__test__/data/contentType")
3333
>("../../../__test__/data/contentType");
3434
const contentTypes = getAllContentTypes();
3535
return {
3636
default: {
37-
send: vi.fn().mockImplementation((eventName: string) => {
37+
send: vi.fn((eventName: string) => {
3838
if (eventName === "init") {
39-
return {
39+
return Promise.resolve({
4040
contentTypes,
41-
};
41+
});
4242
}
4343
return Promise.resolve({});
4444
}),
45-
on: vi.fn(),
45+
on: vi.fn(() => ({ unregister: vi.fn() })),
4646
},
4747
};
4848
});

0 commit comments

Comments
 (0)