import {fileURLToPath} from 'node:url';import {test} from 'tap';import fixReporterEnv from '../helper/fix-reporter-env.js';import report from '../helper/report.js';import TTYStream from '../helper/tty-stream.js';fixReporterEnv();test(async t => {const {default: TapReporter} = await import('../../lib/reporters/tap.js');const run = (type, sanitizers = []) => t => {t.plan(1);const logFile = fileURLToPath(new URL(`tap.${type.toLowerCase()}.${process.version.split('.')[0]}.log`, import.meta.url));const tty = new TTYStream({columns: 200,sanitizers: [...sanitizers, report.sanitizers.cwd, report.sanitizers.experimentalWarning, report.sanitizers.posix, report.sanitizers.tapLoaders, report.sanitizers.timers],});const reporter = new TapReporter({extensions: ['cjs'],projectDir: report.projectDir(type),reportStream: tty,stdStream: tty,sanitizeStackOutput: report.sanitizers.cwd,});return report[type](reporter).then(() => {tty.end();return tty.asBuffer();}).then(buffer => report.assert(t, logFile, buffer)).catch(t.threw);};t.test('tap reporter - regular run', run('regular'));t.test('tap reporter - failFast run', run('failFast'));t.test('tap reporter - second failFast run', run('failFast2'));t.test('tap reporter - only run', run('only'));t.test('tap reporter - edge cases', run('edgeCases'));});