const assert = require('node:assert'); const fs = require('fs'); const os = require('os'); const path = require('path'); const translator = require('./pipeline/translator'); const { normalize } = require('./pipeline/normalizer'); function run() { const entry = { instrument_id: 'inst1', config: { location: 'default-lab' }, translator: { engine: 'overrides', forceInstrumentId: true, meta: { direction: 'mono' } } }; const rawPayload = 'ABC|123'; const canonicalSeed = { instrument_id: entry.instrument_id, sample_id: 'raw-1', result_time: new Date().toISOString(), results: [{ test_code: 'RAW', value: rawPayload }], meta: { raw_payload: rawPayload } }; const translated = translator.translate(entry, canonicalSeed, 'astm-serial', entry.translator.engine); const normalized = normalize(translated); assert.strictEqual(normalized.instrument_id, 'inst1'); assert.strictEqual(normalized.results[0].test_code, 'RAW'); assert.strictEqual(normalized.results[0].value, rawPayload); const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'tinylink-map-')); const mapFilePath = path.join(tempDir, 'inst1.map'); fs.writeFileSync(mapFilePath, [ '# smoke test map', 'HEADER = H|{instrument_id}|{connector}', 'ORDER = O|{sample_id}|{order_tests}' ].join('\n')); const templateEntry = { ...entry, files: { config: path.join(process.cwd(), 'config', 'app.yaml') }, translator: { engine: 'template', file: mapFilePath, messages: ['HEADER', 'ORDER'], forceInstrumentId: true } }; const templateTranslated = translator.translate(templateEntry, canonicalSeed, 'astm-serial', templateEntry.translator.engine); const templateNormalized = normalize(templateTranslated); assert.strictEqual(templateNormalized.meta.rendered_messages.length, 2); assert.strictEqual(templateNormalized.meta.rendered_messages[0].body, 'H|inst1|astm-serial'); assert.strictEqual(templateNormalized.meta.rendered_messages[1].body, 'O|raw-1|^^^RAW'); fs.rmSync(tempDir, { recursive: true, force: true }); console.log('Raw pipeline smoke test passed'); } run();