import { assertEquals } from "https://deno.land/std@0.223.0/assert/mod.ts"; import { inject } from "./inject.ts"; function toInject( p1: number, p2: number, p3: number, p4: number, p5: number, p6: number, p7: number, p8: number, p9: number, ) { return [ p1, p2, p3, p4, p5, p6, p7, p8, p9, ]; } const expectedResult = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, ] Deno.test("inject with single parameter", () => { const injected = inject(toInject, 1); const result = injected(2, 3, 4, 5, 6, 7, 8, 9); assertEquals(result, expectedResult); }); Deno.test("inject with two parameters", () => { const injected = inject(toInject, 1, 2); const result = injected(3, 4, 5, 6, 7, 8, 9); assertEquals(result, expectedResult); }); Deno.test("inject with three parameters", () => { const injected = inject(toInject, 1, 2, 3); const result = injected(4, 5, 6, 7, 8, 9); assertEquals(result, expectedResult); }); Deno.test("inject with four parameters", () => { const injected = inject(toInject, 1, 2, 3, 4); const result = injected(5, 6, 7, 8, 9); assertEquals(result, expectedResult); }); Deno.test("inject with five parameters", () => { const injected = inject(toInject, 1, 2, 3, 4, 5); const result = injected(6, 7, 8, 9); assertEquals(result, expectedResult); }); Deno.test("inject with six parameters", () => { const injected = inject(toInject, 1, 2, 3, 4, 5, 6); const result = injected(7, 8, 9); assertEquals(result, expectedResult); }); Deno.test("inject with seven parameters", () => { const injected = inject(toInject, 1, 2, 3, 4, 5, 6, 7); const result = injected(8, 9); assertEquals(result, expectedResult); }); Deno.test("inject with eight parameters", () => { const injected = inject(toInject, 1, 2, 3, 4, 5, 6, 7, 8); const result = injected(9); assertEquals(result, expectedResult); }); Deno.test("inject with nine parameters", () => { const injected = inject(toInject, 1, 2, 3, 4, 5, 6, 7, 8, 9); const result = injected(); assertEquals(result, expectedResult); });