69 lines
2.3 KiB
TypeScript
69 lines
2.3 KiB
TypeScript
import { describe, it, expect, jest } from '@jest/globals';
|
|
import { OpenViduMeet } from '../../src/components/OpenViduMeet';
|
|
import '../../src/index';
|
|
import { WebComponentCommand } from '../../src/models/command.model';
|
|
|
|
describe('OpenViduMeet Web Component Commands', () => {
|
|
let component: OpenViduMeet;
|
|
|
|
beforeEach(() => {
|
|
component = document.createElement('openvidu-meet') as OpenViduMeet;
|
|
document.body.appendChild(component);
|
|
});
|
|
|
|
afterEach(() => {
|
|
document.body.removeChild(component);
|
|
jest.restoreAllMocks();
|
|
document.body.innerHTML = '';
|
|
});
|
|
|
|
it('should update allowedOrigin when setAllowedOrigin is called', () => {
|
|
const testOrigin = 'https://test-origin.com';
|
|
|
|
// Set allowed origin
|
|
(component as any).commandsManager.setAllowedOrigin(testOrigin);
|
|
|
|
// Check if it was updated
|
|
expect((component as any).commandsManager.allowedOrigin).toBe(testOrigin);
|
|
});
|
|
|
|
it('should call commandsManager.sendMessage when leaveRoom is called', () => {
|
|
const spy = jest.spyOn(component['commandsManager'], 'sendMessage');
|
|
component.leaveRoom();
|
|
expect(spy).toHaveBeenCalledWith({ command: WebComponentCommand.LEAVE_ROOM });
|
|
});
|
|
|
|
it('should call commandsManager.sendMessage when endMeeting is called', () => {
|
|
const spy = jest.spyOn(component['commandsManager'], 'sendMessage');
|
|
component.endMeeting();
|
|
expect(spy).toHaveBeenCalledWith({ command: WebComponentCommand.END_MEETING });
|
|
});
|
|
|
|
it('should send message to iframe with correct origin', () => {
|
|
// Mock iframe contentWindow and postMessage
|
|
const mockPostMessage = jest.fn();
|
|
const iframe = component.shadowRoot?.querySelector('iframe');
|
|
|
|
// Mock the contentWindow
|
|
Object.defineProperty(iframe, 'contentWindow', {
|
|
value: { postMessage: mockPostMessage },
|
|
writable: true
|
|
});
|
|
|
|
// Set allowed origin
|
|
(component as any).commandsManager.setAllowedOrigin('https://test.com');
|
|
|
|
// Send a message
|
|
(component as any).commandsManager.sendMessage({ command: 'TEST' });
|
|
|
|
// Check if postMessage was called correctly
|
|
expect(mockPostMessage).toHaveBeenCalledWith({ command: 'TEST' }, 'https://test.com');
|
|
});
|
|
|
|
// it('should call commandsManager.sendMessage when toggleChat is called', () => {
|
|
// const spy = jest.spyOn(component['commandsManager'], 'sendMessage');
|
|
// component.toggleChat();
|
|
// expect(spy).toHaveBeenCalledWith({ action: WebComponentCommand.TOGGLE_CHAT });
|
|
// });
|
|
});
|