UNPKG

basicprimitives

Version:

Basic Primitives Diagrams for JavaScript - data visualization components library that implements organizational chart and multi-parent dependency diagrams, contains implementations of JavaScript Controls and PDF rendering plugins.

113 lines (89 loc) 3.94 kB
import ValueReader from './ValueReader'; test('Reader returns source value', () => { var reader = new ValueReader(["string"], true); var context = { isChanged: false, hash: {} }; var result = reader.read("Some message", "Some message", "name", context); expect(!context.isChanged).toBe(true); expect(result).toBe("Some message"); }); test('Reader returns default value', () => { var reader = new ValueReader(["string"], false, "welcome"); var context = { isChanged: false, hash: {} }; var result = reader.read("Some message", null, "name", context); expect(context.isChanged).toBe(true); expect(result).toBe("welcome"); }); test('Reader returns source null value', () => { var reader = new ValueReader(["string"], true); var context = { isChanged: false, hash: {} }; var result = reader.read("Some message", null, "name", context); expect(context.isChanged).toBe(true); expect(result).toBe(null); }); test('Reader returns source null value', () => { var reader = new ValueReader(["string"], true); var context = { isChanged: false, hash: {} }; var result = reader.read(null, null, "name", context); expect(!context.isChanged).toBe(true); expect(result).toBe(null); }); test('Reader returns defaul 10 value', () => { var reader = new ValueReader(["number"], false, 10); var context = { isChanged: false, hash: {} }; var result = reader.read(1, "1", "name", context); expect(context.isChanged).toBe(true); expect(result).toBe(10); }); test('Reader returns source 5 value', () => { var reader = new ValueReader(["number"], false, 10); var context = { isChanged: false, hash: {} }; var result = reader.read(1, 5, "name", context); expect(context.isChanged).toBe(true); expect(result).toBe(5); }); test('Reader returns source 5 value (2)', () => { var reader = new ValueReader(["number"], false, 10); var context = { isChanged: false, hash: {} }; var result = reader.read(5, 5, "name", context); expect(!context.isChanged).toBe(true); expect(result).toBe(5); }); test('Reader returns source null value (2)', () => { var reader = new ValueReader(["string", "object"], true); var context = { isChanged: false, hash: {} }; var result = reader.read({ color: "red" }, null, "name", context); expect(context.isChanged).toBe(true); expect(result).toBe(null); }); test('Reader returns default object', () => { var reader = new ValueReader(["string", "object"], false, { color: "blue" }); var context = { isChanged: false, hash: {} }; var result = reader.read({ color: "red" }, null, "name", context); expect(context.isChanged).toBe(true); expect(result).toEqual({ color: "blue" }); }); test('Reader returns source object', () => { var reader = new ValueReader(["string", "object"], false, { color: "blue" }); var context = { isChanged: false, hash: {} }; var result = reader.read({ color: "red" }, { color: "green" }, "name", context); expect(context.isChanged).toBe(true); expect(result).toEqual({ color: "green" }); }); test('Reader returns source object (2)', () => { var reader = new ValueReader(["string", "object"], false, { color: "blue" }); var context = { isChanged: false, hash: {} }; var result = reader.read({ color: "green" }, { color: "green" }, "name", context); expect(!context.isChanged).toBe(true); expect(result).toEqual({ color: "green" }); }); test('Reader should ignore cycles in JSON object', () => { var reader = new ValueReader(["object"], true); var context = { isChanged: false, hash: {} }; var target = { color: "green" }; target.parent = target; // Cycle var source = { color: "green" }; source.parent = source; // Cycle var result = reader.read(target, source, "name", context); expect(!context.isChanged).toBe(true); expect(result).toEqual(source); });