UNPKG

@arrows/array

Version:
41 lines (33 loc) 1.14 kB
import { groupBy_ } from "./index" describe("Array groupByX", () => { it("returns object that groups array elements by key calculated by grouping function", () => { const arr = [ { type: "animal", name: "monkey" }, { type: "plant", name: "oak" }, { type: "animal", name: "elephant" }, { type: "mineral", name: "quartz" }, ] const groupingFn = (item) => item.type const result = groupBy_(groupingFn, arr) const result2 = groupBy_(groupingFn)(arr) const expected = { animal: [ { type: "animal", name: "monkey" }, { type: "animal", name: "elephant" }, ], plant: [{ type: "plant", name: "oak" }], mineral: [{ type: "mineral", name: "quartz" }], } expect(result).toEqual(result2) expect(result).toEqual(expected) }) it("returns empty object if empty array is provided", () => { const arr = [] const groupingFn = (item) => item.type const result = groupBy_(groupingFn, arr) const result2 = groupBy_(groupingFn)(arr) const expected = {} expect(result).toEqual(result2) expect(result).toEqual(expected) }) })