UNPKG

geninq

Version:

A JavaScript version of the Linq library for Generators

82 lines (79 loc) 2.36 kB
import { It } from "../test-utils"; import "./join"; import "./async"; It( "Performs a basic join", (s) => s .join( [ { name: "Test Pet 1", owner: "Test1" }, { name: "Test Pet 2", owner: "Test2" }, { name: "Test Pet 3", owner: "Paul Popat" }, { name: "Test Pet 4", owner: "Test1" }, { name: "Test Pet 5", owner: "Test2" }, { name: "Test Pet 6", owner: "Paul Popat" }, { name: "Test Pet 7", owner: "Test1" }, ].geninq(), (i) => i.name, (i) => i.owner, (owner, pet) => ({ name: pet.name, owner: owner.name, type: owner.type, }) ) .array(), [ { owner: "Test1", type: 2, name: "Test Pet 1" }, { owner: "Test1", type: 2, name: "Test Pet 4" }, { owner: "Test1", type: 2, name: "Test Pet 7" }, { owner: "Test2", type: 1, name: "Test Pet 2" }, { owner: "Test2", type: 1, name: "Test Pet 5" }, { owner: "Paul Popat", type: 2, name: "Test Pet 3" }, { owner: "Paul Popat", type: 2, name: "Test Pet 6" }, ], [ { name: "Test1", type: 2 }, { name: "Test2", type: 1 }, { name: "Paul Popat", type: 2 }, ] ); It( "Performs a basic join on an array", (s) => s .join( [ { name: "Test Pet 1", owner: "Test1" }, { name: "Test Pet 2", owner: "Test2" }, { name: "Test Pet 3", owner: "Paul Popat" }, { name: "Test Pet 4", owner: "Test1" }, { name: "Test Pet 5", owner: "Test2" }, { name: "Test Pet 6", owner: "Paul Popat" }, { name: "Test Pet 7", owner: "Test1" }, ], (i) => i.name, (i) => i.owner, (owner, pet) => ({ name: pet.name, owner: owner.name, type: owner.type, }) ) .array(), [ { owner: "Test1", type: 2, name: "Test Pet 1" }, { owner: "Test1", type: 2, name: "Test Pet 4" }, { owner: "Test1", type: 2, name: "Test Pet 7" }, { owner: "Test2", type: 1, name: "Test Pet 2" }, { owner: "Test2", type: 1, name: "Test Pet 5" }, { owner: "Paul Popat", type: 2, name: "Test Pet 3" }, { owner: "Paul Popat", type: 2, name: "Test Pet 6" }, ], [ { name: "Test1", type: 2 }, { name: "Test2", type: 1 }, { name: "Paul Popat", type: 2 }, ] );