镜像自地址
https://github.com/lhly/cloud-drive-renamer.git
已同步 2026-10-20 13:47:47 +08:00
删除不再使用的旧组件和模块,包括 hello-world、progress-dialog、rename-preview、 cookie-manager 和旧消息类型。更新 README 项目结构以反映当前代码布局, 修正 extension-loading 测试指向当前的 Shadow DOM 浮动按钮。
61 行
1.9 KiB
TypeScript
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();
|
|
}
|
|
});
|
|
});
|