UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

104 lines (103 loc) 3.3 kB
"use strict"; var _ = _interopRequireDefault(require(".")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } describe("makePristine", function () { var pristine; var resource; var mockDispatch; beforeEach(function () { mockDispatch = jest.fn(); pristine = (0, _["default"])("pristine", ["name", "age"], mockDispatch); resource = { name: "John", age: 30, pristine: {} }; }); describe("updatePristine", function () { it("stores original value when property changes", function () { pristine.updatePristine(resource, "name", "Jane"); expect(mockDispatch).toBeCalledWith({ pristine: { name: "John" } }, resource); }); it("ignores properties not in keys set", function () { pristine.updatePristine(resource, "email", "john@example.com"); expect(mockDispatch).not.toBeCalled(); }); it("ignores when resource has no pristine property", function () { delete resource.pristine; pristine.updatePristine(resource, "name", "Jane"); expect(mockDispatch).not.toBeCalled(); }); it("ignores when value hasn't changed", function () { pristine.updatePristine(resource, "name", "John"); expect(mockDispatch).not.toBeCalled(); }); it("removes pristine entry when value reverts to original", function () { resource.pristine = { name: "John" }; pristine.updatePristine(resource, "name", "John"); expect(mockDispatch).toBeCalledWith({ pristine: {} }, resource); }); it("preserves other pristine values when removing one", function () { resource.pristine = { name: "John", age: 30 }; pristine.updatePristine(resource, "name", "John"); expect(mockDispatch).toBeCalledWith({ pristine: { age: 30 } }, resource); }); it("doesn't store pristine if property already in pristine and value different", function () { resource.pristine = { name: "Original" }; pristine.updatePristine(resource, "name", "Jane"); expect(mockDispatch).not.toBeCalled(); }); it("returns previous pristine value when updating", function () { var prevPristine = { existing: "value" }; resource.pristine = prevPristine; var result = pristine.updatePristine(resource, "name", "Jane"); expect(result).toBe(prevPristine); }); }); describe("resetPristine", function () { it("resets resource to pristine state and clears pristine", function () { resource.pristine = { name: "Original", age: 25 }; pristine.resetPristine(resource); expect(mockDispatch).toBeCalledWith({ name: "Original", age: 25, pristine: {} }, resource); }); }); describe("with custom dispatch", function () { it("uses default dispatch when none provided", function () { var defaultPristine = (0, _["default"])("pristine", ["name"]); var testResource = { name: "John", pristine: {} }; defaultPristine.updatePristine(testResource, "name", "Jane"); expect(testResource.pristine).toEqual({ name: "John" }); }); }); });