cloud-drive-renamer/tests/e2e/extension-loading.spec.ts
Zain dfa2179e81 chore: 清理未使用的死代码并更新文档
删除不再使用的旧组件和模块,包括 hello-world、progress-dialog、rename-preview、
cookie-manager 和旧消息类型。更新 README 项目结构以反映当前代码布局,
修正 extension-loading 测试指向当前的 Shadow DOM 浮动按钮。
2026-08-15 20:32:21 +08:00

61 行
1.9 KiB
TypeScript

import { test, expect } from '@playwright/test';
/**
* E2E测试: 扩展加载和基本功能
*
* 测试扩展是否能正确加载到浏览器中,并验证基本功能可用性
*/
test.describe('扩展加载测试', () => {
test('应该成功加载扩展', async ({ page }) => {
// 导航到夸克网盘测试页面
await page.goto('https://pan.quark.cn');
// 等待页面加载
await page.waitForLoadState('networkidle');
// 验证页面标题
await expect(page).toHaveTitle(/夸克网盘/);
});
test('应该在页面中注入内容脚本', async ({ page }) => {
await page.goto('https://pan.quark.cn');
await page.waitForLoadState('networkidle');
// 等待内容脚本挂载当前架构的 Shadow DOM 浮动按钮
const floatingButtonHost = page.locator('#cloud-drive-renamer-shadow-host');
await expect(floatingButtonHost).toBeAttached({ timeout: 5000 });
const hasFloatingButton = await page.evaluate(() => {
const host = document.querySelector('#cloud-drive-renamer-shadow-host');
return host?.shadowRoot?.querySelector('#cloud-drive-renamer-floating-button') !== null;
});
expect(hasFloatingButton).toBe(true);
});
test('应该能够访问扩展的background service worker', async ({ context }) => {
// 获取service worker
const serviceWorker = await context.serviceWorkers()[0];
expect(serviceWorker).toBeDefined();
});
test('应该能够打开扩展popup', async ({ page, context }) => {
// 获取扩展ID
const extensionId = await page.evaluate(() => {
return chrome?.runtime?.id;
});
if (extensionId) {
// 打开popup页面
const popupPage = await context.newPage();
await popupPage.goto(`chrome-extension://${extensionId}/popup.html`);
// 验证popup加载成功
await expect(popupPage.locator('h1')).toHaveText(/云盘批量重命名/);
await popupPage.close();
}
});
});