33 lines
1.5 KiB
JavaScript
33 lines
1.5 KiB
JavaScript
|
|
import { test, expect } from '@playwright/test';
|
||
|
|
|
||
|
|
test('Capability demo page atomic tests verification', async ({ page }) => {
|
||
|
|
page.on('console', msg => console.log('BROWSER:', msg.text()));
|
||
|
|
|
||
|
|
await page.goto('http://localhost:5173/test/capability.html');
|
||
|
|
await page.waitForTimeout(3000);
|
||
|
|
|
||
|
|
const testResults = await page.evaluate(() => {
|
||
|
|
const getTexts = (sel) => Array.from(document.querySelectorAll(sel)).map(el => el.textContent.trim());
|
||
|
|
const getColors = (sel) => Array.from(document.querySelectorAll(sel)).map(el => el.style.color);
|
||
|
|
|
||
|
|
return {
|
||
|
|
textBinding: getTexts('p[$text="DemoState.testTitle"]'),
|
||
|
|
textColor: getColors('p[$text="DemoState.testTitle"]'),
|
||
|
|
ifTrue: document.querySelector('.alert-success')?.textContent.trim(),
|
||
|
|
ifFalse: document.querySelector('.alert-danger')?.textContent.trim(),
|
||
|
|
eachItems: getTexts('li.list-group-item'),
|
||
|
|
nestedEachInIf: getTexts('.badge.bg-primary'),
|
||
|
|
nestedIfInEach: getTexts('.bg-white')
|
||
|
|
};
|
||
|
|
});
|
||
|
|
|
||
|
|
console.log('Atomic Test Results:', JSON.stringify(testResults, null, 2));
|
||
|
|
|
||
|
|
expect(testResults.textBinding).toContain('Framework Is Active');
|
||
|
|
expect(testResults.ifTrue).toBe('显示的内容 (True)');
|
||
|
|
expect(testResults.ifFalse).toBeUndefined();
|
||
|
|
expect(testResults.eachItems).toHaveLength(3);
|
||
|
|
expect(testResults.nestedEachInIf).toHaveLength(3);
|
||
|
|
expect(testResults.nestedIfInEach).toHaveLength(2); // Item A and C are visible
|
||
|
|
});
|