bootstrap/test/bootstrap.spec.js

32 lines
1.3 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { test, expect } from '@playwright/test';
test('bootstrap self-contained integration', async ({ page }) => {
page.on('console', msg => console.log('BROWSER LOG:', msg.text()));
await page.goto('http://127.0.0.1:8083/test/index.html');
// 1. 验证 CSS 是否注入(检查 .container 是否有 padding
const container = page.locator('.container');
const padding = await container.evaluate(el => window.getComputedStyle(el).padding);
expect(padding).not.toBe('0px');
// 2. 验证 Icon 是否显示(通过伪元素内容检查)
const icon = page.locator('.bi-bootstrap-fill');
const iconContent = await icon.evaluate(el => window.getComputedStyle(el, '::before').content);
expect(iconContent).not.toBe('none');
// 3. 验证暗色模式切换
const html = page.locator('html');
// 初始应为 light
expect(await html.getAttribute('data-bs-theme')).toBe('light');
// 点击切换
await page.click('#toggle-btn');
expect(await html.getAttribute('data-bs-theme')).toBe('dark');
// 4. 验证主色修改
await page.evaluate(() => window.setTheme('#ff0000'));
const primaryColor = await page.evaluate(() => getComputedStyle(document.documentElement).getPropertyValue('--bs-primary'));
expect(primaryColor.trim()).toBe('#ff0000');
});