openvidu/frontend/webcomponent/tests/e2e/openvidu-meet.test.ts
2025-03-10 19:25:11 +01:00

31 lines
1.2 KiB
TypeScript

// tests/e2e/openvidu-meet.e2e.ts
import { test, expect } from '@playwright/test';
test.describe('OpenViduMeet E2E Tests', () => {
test('should load iframe with correct URL including additional parameters', async ({ page }) => {
await page.setContent(
`<openvidu-meet room-url="https://meet.example.com" room-name="Sala1" pepito-perez="55"></openvidu-meet>`
);
const iframe = page.locator('iframe');
await expect(iframe).toHaveAttribute('src', 'https://meet.example.com?room-name=Sala1&pepito-perez=55');
});
test('should handle postMessage interactions', async ({ page }) => {
await page.setContent(`<openvidu-meet room-url="https://meet.example.com" room-name="Sala1"></openvidu-meet>`);
const [event] = await Promise.all([
page.evaluate(() => {
return new Promise((resolve) => {
const component = document.querySelector('openvidu-meet');
if (component) {
component.addEventListener('conference-event', (e) => resolve(e.detail));
}
window.postMessage({ event: 'participant-joined', participant: 'María Gómez' }, '*');
});
})
]);
expect(event).toEqual({ event: 'participant-joined', participant: 'María Gómez' });
});
});