import { expect, test } from "vitest"; import { setEnv } from "@webstudio-is/feature-flags"; import { renderData, ws } from "@webstudio-is/template"; import { createDefaultPages } from "@webstudio-is/project-build"; import type { Project } from "@webstudio-is/project"; import { registerContainers } from "../sync/sync-stores"; import { $instances, $pages, $project } from "../nano-states"; import { $awareness } from "../awareness"; import { html } from "./plugin-html"; setEnv("*"); registerContainers(); test("paste html fragment", async () => { const data = renderData( ); $project.set({ id: "" } as Project); $instances.set(data.instances); $pages.set( createDefaultPages({ rootInstanceId: "bodyId", homePageId: "pageId" }) ); $awareness.set({ pageId: "pageId", instanceSelector: ["divId", "bodyId"] }); expect( await html.onPaste?.(`

It works

`) ).toEqual(true); const [_bodyId, _divId, sectionId, headingId] = $instances.get().keys(); expect(sectionId).toBeTruthy(); expect(headingId).toBeTruthy(); expect($instances.get()).toEqual( renderData( It works ).instances ); }); test("ignore html without any tags", async () => { const data = renderData( ); $project.set({ id: "" } as Project); $instances.set(data.instances); $pages.set( createDefaultPages({ rootInstanceId: "bodyId", homePageId: "pageId" }) ); $awareness.set({ pageId: "pageId", instanceSelector: ["divId", "bodyId"] }); expect(await html.onPaste?.(`It works`)).toEqual(false); expect($instances.get()).toEqual(data.instances); });