/// <reference lib="dom" />
import { expect } from "e2e";
import { test, WEB } from "./t3.ts";

test("Copied labelled email preserves its destination in the composer", WEB, async ({ t3, app, browser, screen }) => {
  const project = await t3.project("email-copy-demo");
  const thread = await t3.thread({ project, title: "Copy email link", messages: ["Contact [Support](mailto:support@example.com?subject=Help) for help."] });
  await t3.open(thread);
  await screen.getByRole("button", /^Agent Contact/).tap();
  await screen.getByRole("link", "Support", { exact: true }).waitFor({ state: "visible" });
  await browser.evaluate(() => {
    const paragraph = document.querySelector('a[href="mailto:support@example.com?subject=Help"]')!.closest("p")!;
    const range = document.createRange();
    range.selectNodeContents(paragraph);
    const selection = window.getSelection()!;
    selection.removeAllRanges();
    selection.addRange(range);
  });
  await browser.keyboard.press("Control+c");
  await screen.getByRole("textbox").tap();
  await browser.keyboard.press("Control+v");
  await app.screenshot("email-pasted-in-composer");
  await expect.poll(() => browser.evaluate(() => document.querySelector('[role="textbox"]')?.textContent)).toBe("Contact [Support](mailto:support@example.com?subject=Help) for help.");
});
