Latest
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465import { assertEquals, assertThrowsAsync,} from "https://deno.land/std/testing/asserts.ts";import { buildParallel } from "./parallel.ts";import { Status } from "./handler.ts";import { TestBuilders } from "./mock_test.ts";
function buildMockDelayParallel(delay: number) { const delayMap = new Map<string, any>([ ["delay", delay], ]); const conf = [ { builderName: "square", timeout: 1000, required: true, }, { builderName: "delay", builderConf: delayMap, timeout: 1000, required: true, }, { builderName: "delay", builderConf: delayMap, timeout: 1000, required: true, }, ]; return buildParallel(conf, TestBuilders);}
Deno.test({ name: "build a parallel", async fn(): Promise<void> { const p = buildMockDelayParallel(500); assertEquals(p.pipes.length, 3); const start = Date.now(); const res = await p.handle({ status: Status.Ok, data: 2 }); const procMillisecond = Date.now() - start; assertEquals(res.data, [4, 2, 2]); assertEquals(procMillisecond >= 500 && procMillisecond < 520, true); }, sanitizeOps: false, sanitizeResources: false,});
Deno.test({ name: "build a parallel with failed pipe", async fn(): Promise<void> { const p = buildMockDelayParallel(1500);
await assertThrowsAsync(async () => { try { await p.handle({ status: Status.Ok, data: 2 }); } catch (e) { console.log(e.message); throw e; } }); },});