34 lines
1.4 KiB
JavaScript
34 lines
1.4 KiB
JavaScript
import { test, expect } from '@playwright/test';
|
|
|
|
test('loader dynamic importmap generation and custom path redirect', async ({ page }) => {
|
|
page.on('console', msg => console.log('BROWSER LOG:', msg.text()));
|
|
|
|
// 打开测试页面
|
|
await page.goto('http://127.0.0.1:8084/test/index.html');
|
|
|
|
// 1. 验证生成的 importmap 标签结构
|
|
const importMapJson = await page.evaluate(() => {
|
|
const script = document.querySelector('script[type="importmap"]');
|
|
return script ? JSON.parse(script.textContent) : null;
|
|
});
|
|
|
|
expect(importMapJson).not.toBeNull();
|
|
expect(importMapJson.imports).toBeDefined();
|
|
|
|
// 2. 检查 state (常规 CDN 映射) 是否生成正确
|
|
const stateUrl = importMapJson.imports['@apigo.cc/state'];
|
|
expect(stateUrl).toContain('cdn.jsdelivr.net/npm/@apigo.cc/state');
|
|
|
|
// 3. 检查 bootstrap (本地相对路径重定向) 是否保留
|
|
const bootstrapUrl = importMapJson.imports['@apigo.cc/bootstrap'];
|
|
expect(bootstrapUrl).toBe('./mock-bootstrap.js');
|
|
|
|
// 4. 检查 base (本地绝对 HTTP 重定向) 是否保留
|
|
const baseUrl = importMapJson.imports['@apigo.cc/base'];
|
|
expect(baseUrl).toBe('http://127.0.0.1:8084/test/mock-base.js');
|
|
|
|
// 5. 验证重定向的 mock 模块确实可以被 ESM 成功导入并运行 (通过页面 status 的变化)
|
|
const status = page.locator('#status');
|
|
await expect(status).toHaveText('success');
|
|
});
|