UNPKG

@infect/infect-rda-sample-importer

Version:
60 lines (38 loc) 1.68 kB
import section from 'section-tests'; import assert from 'assert'; import AnresisHumanSampleProcessor from '../src/lib/processors/AnresisHumanSampleProcessor.js'; import Sample from '../src/lib/Sample.js'; import { Transform } from 'stream'; import path from 'path'; import RainbowConfig from '@rainbow-industries/rainbow-config'; import ServiceManager from '@infect/rda-service-manager'; import { AnresisTestData } from '@infect/rda-fixtures'; section('AnresisHumanSampleProcessor', (section) => { let sm; section.setup(async () => { sm = new ServiceManager({ args: '--dev --log-level=error+ --log-module=* --data-for-dev'.split(' ') }); await sm.startServices('@infect/rda-service-registry'); await sm.startServices('@infect/api'); }); section.test('process samples', async() => { section.setTimeout(2000); const configDir = path.join(path.dirname(new URL(import.meta.url).pathname), '../'); const config = new RainbowConfig(); await config.load(configDir); const processor = new AnresisHumanSampleProcessor({ config }); await processor.load(); const testData = new AnresisTestData(); const rows = await testData.getData(); const samples = rows.map((sampleData) => { return new Sample().setOriginalData(sampleData); }); const results = await processor.processSamples(samples); assert.equal(results.validSamples.length, 99); assert.equal(results.invalidSamples.length, 0); }); section.destroy(async() => { await sm.stopServices(); }); });