import { expect } from '@playwright/test'; import { LogEntry } from './logParser'; expect.extend({ async toContainEventCreation(logs: LogEntry[], eventName: string) { const eventCreationLog = logs.find(log => log.level === 'INFO' && log.component === 'EventManager' && log.message.includes(`Event created: ${eventName}`) ); return { pass: !!eventCreationLog, message: () => eventCreationLog ? `Expected logs not to contain event creation for "${eventName}"` : `Expected logs to contain event creation for "${eventName}"` }; }, async toContainEventModification(logs: LogEntry[], eventName: string) { const eventModificationLog = logs.find(log => log.level === 'INFO' && log.component === 'EventManager' && log.message.includes(`Event modified: ${eventName}`) ); return { pass: !!eventModificationLog, message: () => eventModificationLog ? `Expected logs not to contain event modification for "${eventName}"` : `Expected logs to contain event modification for "${eventName}"` }; } }); // Add the custom matchers to the global expect interface declare global { namespace PlaywrightTest { interface Matchers { toContainEventCreation(eventName: string): Promise; toContainEventModification(eventName: string): Promise; } } }