From 8d4117aae0a6f9837a16a0b29f2b7ace1ec739f8 Mon Sep 17 00:00:00 2001
From: huanghuoguoguo <60681390+huanghuoguoguo@users.noreply.github.com>
Date: Sat, 17 Oct 2026 16:54:46 +0800
Subject: [PATCH] test(web): resolve clipboard fixture dependencies through
Vite
---
web/tests/e2e/codex-copy-feedback.spec.ts | 17 +------
web/tests/e2e/fixtures/codex-copy-harness.mjs | 45 +++++++++++++++++++
2 files changed, 46 insertions(+), 16 deletions(-)
create mode 100644 web/tests/e2e/fixtures/codex-copy-harness.mjs
diff --git a/web/tests/e2e/codex-copy-feedback.spec.ts b/web/tests/e2e/codex-copy-feedback.spec.ts
index 8c431db77..e5217f449 100644
--- a/web/tests/e2e/codex-copy-feedback.spec.ts
+++ b/web/tests/e2e/codex-copy-feedback.spec.ts
@@ -13,22 +13,7 @@ async function mount(page: Page, mode: string) {
window.$RefreshReg$ = () => {};
window.$RefreshSig$ = () => (type) => type;
window.__vite_plugin_react_preamble_installed__ = true;
- `,
+ `,
}),
);
await page.addInitScript((mode) => {
diff --git a/web/tests/e2e/fixtures/codex-copy-harness.mjs b/web/tests/e2e/fixtures/codex-copy-harness.mjs
new file mode 100644
index 000000000..c8f277ed9
--- /dev/null
+++ b/web/tests/e2e/fixtures/codex-copy-harness.mjs
@@ -0,0 +1,45 @@
+import React from 'react';
+import { createRoot } from 'react-dom/client';
+import i18n from 'i18next';
+import { initReactI18next } from 'react-i18next';
+import { Toaster } from '/src/components/ui/sonner.tsx';
+import '/src/app/global.css';
+import {
+ Dialog,
+ DialogContent,
+ DialogTitle,
+} from '/src/components/ui/dialog.tsx';
+import Section from '/src/app/home/components/models-dialog/component/provider-form/CodexAccountSection.tsx';
+i18n.use(initReactI18next);
+await i18n.init({
+ lng: 'en',
+ resources: { en: { translation: {} } },
+ interpolation: { escapeValue: false },
+});
+const root = createRoot(document.getElementById('root'));
+window.renderCode = (code = 'FIXTURE-1234', attempt = 'attempt-1') =>
+ root.render(
+ React.createElement(
+ Dialog,
+ { open: true },
+ React.createElement(
+ DialogContent,
+ {},
+ React.createElement(DialogTitle, {}, 'Copy fixture'),
+ React.createElement(Section, {
+ providerId: 'fixture',
+ login: {
+ phase: 'pending',
+ device: {
+ user_code: code,
+ authorization_id: attempt,
+ verification_uri: 'https://example.invalid',
+ expires_at: 9999999999,
+ },
+ },
+ }),
+ ),
+ React.createElement(Toaster),
+ ),
+ );
+window.renderCode();