// https://github.com/nodejs/node/blob/main/lib/internal/test_runner/reporter/spec.js

export default async function* emojiReporter(source) {
    for await (const event of source) {
        switch (event.type) {
            case 'test:pass':
                yield '✅';
                break;
            case 'test:fail':
                yield '🐛';
                break;
        }
    }
}

// import { Transform } from 'node:stream';
//
// const customReporter = new Transform({
//     writableObjectMode: true,
//     transform(event, encoding, callback) {
//         switch (event.type) {
//             case 'test:start':
//                 callback(null, `test ${event.data.name} started`);
//                 break;
//             case 'test:pass':
//                 callback(null, `test ${event.data.name} passed`);
//                 break;
//             case 'test:fail':
//                 callback(null, `test ${event.data.name} failed`);
//                 break;
//         }
//     },
// });
//
// export default customReporter;

// export default async function * customReporter(source) {
//     for await (const event of source) {
//       switch (event.type) {
//         case 'test:start':
//           yield `test ${event.data.name} started\n`;
//           break;
//         case 'test:pass':
//           yield `test ${event.data.name} passed\n`;
//           break;
//         case 'test:fail':
//           yield `test ${event.data.name} failed\n`;
//           break;
//         case 'test:plan':
//           yield 'test plan';
//           break;
//         case 'test:diagnostic':
//           yield `${event.data.message}\n`;
//           break;
//         case 'test:coverage': {
//           const { totalLineCount } = event.data.summary.totals;
//           yield `total line count: ${totalLineCount}\n`;
//           break;
//         }
//       }
//     }
//   }
