@netdata/charts
Version:
Netdata frontend SDK and chart utilities
104 lines (103 loc) • 3.3 kB
JavaScript
;
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"
});
});
});
});