Pre Release New Changes
This commit is contained in:
@@ -333,3 +333,39 @@ test("data-for preserves arrays of objects from encoded component scope", () =>
|
||||
"Four",
|
||||
]);
|
||||
});
|
||||
|
||||
|
||||
test("$emit inside component functions does not depend on a global browser event", () => {
|
||||
const behavior = Buffer.from(
|
||||
JSON.stringify({
|
||||
functions: `
|
||||
function showOverlay(sourceEvent) {
|
||||
visible = true
|
||||
$emit("open", { source: sourceEvent.type })
|
||||
}
|
||||
`,
|
||||
watches: [],
|
||||
lifecycle: {},
|
||||
}),
|
||||
).toString("base64");
|
||||
|
||||
delete (globalThis as Record<string, unknown>).event;
|
||||
|
||||
const win = mount(
|
||||
`<div data-scope="visible: false" data-wrn-events="open" data-wrn-behavior="${behavior}">
|
||||
<button data-on-click="showOverlay(event)">Open overlay</button>
|
||||
<span>{visible}</span>
|
||||
</div>`,
|
||||
);
|
||||
|
||||
const root = win.document.querySelector("[data-wrn-events]")!;
|
||||
let detail: Record<string, unknown> | undefined;
|
||||
root.addEventListener("open", (event) => {
|
||||
detail = (event as unknown as CustomEvent).detail;
|
||||
});
|
||||
|
||||
win.document.querySelector("button")!.click();
|
||||
|
||||
expect(win.document.querySelector("span")!.textContent).toBe("true");
|
||||
expect(detail).toEqual({ source: "click" });
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user