Skip to content
This repository has been archived by the owner on May 3, 2021. It is now read-only.

Commit

Permalink
feat: index optic tests complete
Browse files Browse the repository at this point in the history
  • Loading branch information
baetheus committed Apr 13, 2021
1 parent 2ec763f commit 6970dff
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions testing/optics/index.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { assertEquals } from "https://deno.land/std/testing/asserts.ts";

import * as I from "../../optics/index.ts";
import * as O from "../../option.ts";

Deno.test("Index indexArray", () => {
const index = I.indexArray<number>();
const { getOption, set } = index.index(1);

assertEquals(getOption([]), O.none);
assertEquals(getOption([1]), O.none);
assertEquals(getOption([1, 2]), O.some(2));

assertEquals(set(1)([]), []);
assertEquals(set(1)([1]), [1]);
assertEquals(set(1)([1, 2]), [1, 1]);
});

Deno.test("Index indexRecord", () => {
const index = I.indexRecord<number>();
const { getOption, set } = index.index("one");

assertEquals(getOption({}), O.none);
assertEquals(getOption({ two: 2 }), O.none);
assertEquals(getOption({ one: 1 }), O.some(1));

assertEquals(set(2)({}), {});
assertEquals(set(2)({ two: 2 }), { two: 2 });
assertEquals(set(2)({ one: 1 }), { one: 2 });
assertEquals(set(1)({ one: 1 }), { one: 1 });
});

0 comments on commit 6970dff

Please sign in to comment.