UNPKG

playwright-bdd

Version:
34 lines (29 loc) 1 kB
/** * Returns reference to a messagesBuilder singleton instance. * We pass onTestEnd and onEnd calls only for the first reference (reporter), * otherwise all events will be duplicated. */ import * as pw from '@playwright/test/reporter'; import { MessagesBuilder } from '.'; export type MessagesBuilderRef = ReturnType<typeof getMessagesBuilderRef>; let instance: MessagesBuilder; let referenceCount = 0; export function getMessagesBuilderRef() { if (!instance) instance = new MessagesBuilder(); const isFirstRef = ++referenceCount === 1; return { builder: instance, onBegin(config: pw.FullConfig) { if (isFirstRef) this.builder.onBegin(config); }, onTestEnd(test: pw.TestCase, result: pw.TestResult) { if (isFirstRef) this.builder.onTestEnd(test, result); }, onEnd(fullResult: pw.FullResult) { if (isFirstRef) this.builder.onEnd(fullResult); }, onError(error: pw.TestError) { if (isFirstRef) this.builder.onError(error); }, }; }