UNPKG

libcore

Version:

Kicks-start helpers for cross-browser libraries and different versions of nodejs

68 lines (51 loc) 2.29 kB
'use strict'; import createRegistry from '../../registry'; import { array } from '../../type'; describe(`Inserts registry [value] into String json path [path] relative to registry storage using registryInstance.insert(path:String, value:Mixed)`, () => { var registry; beforeEach(() => { registry = createRegistry(); registry.assign({ "name": "diko", "0": [{ "id": 101, "value": 19, "label": "nineteen" }], "2": [{ "id": 10, "value": 68, "label": "sixty eight" }], "next": function () { return true; } }); }); it(`1. Should throw error if given [path] parameter is not String.`, () => { var value = "buang"; expect(() => registry.insert(null, value)).toThrow(); expect(() => registry.insert(new Date(), value)).toThrow(); expect(() => registry.insert(NaN, value)).toThrow(); expect(() => registry.insert({}, value)).toThrow(); }); it(`2. Should insert [value] into registry storage with the given String [path] parameter.`, () => { var value = "buang"; expect(() => registry.insert("name", value)).not.toThrow(); expect(() => registry.insert("[0].id", value)).not.toThrow(); expect(registry.find("name")).toBe(value); expect(registry.find("[0].id")).toBe(value); expect(registry.insert("[0].0.id", value)).toBe(registry); expect(registry.insert("2[0].label", value)).toBe(registry); expect(registry.find("[0].0.id")).toBe(value); expect(registry.find("2[0].label")).toBe(value); // retain "Array-ness" expect(array(registry.find("[2]"))).toBe(true); }); });