UNPKG

web-atoms-core

Version:
115 lines (72 loc) 2.34 kB
import { AtomList } from "../../core/AtomList"; import Assert from "@web-atoms/unit-test/dist/Assert"; import Test from "@web-atoms/unit-test/dist/Test"; import TestItem from "@web-atoms/unit-test/dist/TestItem"; export class AtomListTest extends TestItem { @Test public remove(): void { const list = new AtomList(); Assert.isFalse(list.remove(4)); Assert.isFalse(list.remove((item) => 5)); list.addAll([1, 2]); Assert.isFalse(list.remove(4)); Assert.isFalse(list.remove((item) => item === 5)); Assert.isTrue(list.remove(1)); Assert.isTrue(list.remove((item) => item === 2)); Assert.isEmpty(list.length); } @Test public removeMultiple(): void { const list = [1, 2, 3, 4, 5]; // remove all even numbers... list.remove((x) => (x % 2) === 0); Assert.equals(3, list.length); } @Test public insert(): void { const list = new AtomList(); list.addAll([1, 2]); list.insert(1, 5); Assert.equals(5, list[1]); } @Test public wrap(): void { const list = [1, 2]; const d = list.watch((x) => { const a = x as [any, string, number, any]; Assert.isTrue(typeof a[1] === "string"); }, true); list.add(1); } @Test public replace(): void { const list = new AtomList<number>(); list.add(2); const r = [1, 2]; list.replace(r); Assert.equals(2, r.length); } @Test public replacePaging(): void { const list = new AtomList<number>(); const r = [1, 2] as any; r.total = 10; list.addAll(r); const a = [4, 5] as any; a.total = 10; list.replace(a, 2, 2); Assert.equals(2, list.start); Assert.equals(2, list.size); Assert.equals(10, list.total); list.next(); Assert.equals(4, list.start); list.prev(); Assert.equals(2, list.start); list.prev(); Assert.equals(0, list.start); list.prev(); Assert.equals(0, list.start); list.start = 0; list.size = 2; } }