import { strict as assert } from 'node:assert'; import fs from 'node:fs'; import { extractDetails } from './rerunFlakyTests.js'; function extractDetailsFromPayload(filename) { return extractDetails( fs.readFileSync(`tests/flakyTestPayloads/${filename}.txt`, { encoding: 'utf8', }), ); } const chatClient = extractDetailsFromPayload('chat_client'); assert.equal( chatClient.title, 'Flaky hard delete: /datum/computer_file/program/chatclient', ); assert.equal(chatClient.failures.length, 1); const monkeyBusiness = extractDetailsFromPayload('monkey_business'); assert.equal( monkeyBusiness.title, 'Flaky test monkey_business: Cannot execute null.resolve().', ); assert.equal(monkeyBusiness.failures.length, 1); const shapeshift = extractDetailsFromPayload('shapeshift'); assert.equal( shapeshift.title, 'Multiple errors in flaky test shapeshift_spell', ); assert.equal(shapeshift.failures.length, 16); const multipleFailures = extractDetailsFromPayload('multiple_failures'); assert.equal( multipleFailures.title, 'Multiple flaky test failures in more_shapeshift_spell, shapeshift_spell', ); assert.equal(multipleFailures.failures.length, 2); const invalidTimer = extractDetailsFromPayload('invalid_timer'); assert.equal( invalidTimer.title, 'Flaky test monkey_business: Invalid timer: /datum/looping_sound/proc/start_sound_loop() on /datum/looping_sound/showering', );