@applicaster/zapp-react-native-utils
Version:
Applicaster Zapp React Native utilities package
127 lines (96 loc) • 2.33 kB
text/typescript
import { isEqual } from "../..";
describe("isEqual - byValue", () => {
describe("primitive value", () => {
it("equals", () => {
const prev = {
prop_1: 1,
};
const next = {
prop_1: 1,
};
const byValue = ["prop_1"];
expect(isEqual({ byValue })(prev, next)).toBe(true);
});
it("equals", () => {
const prop_2 = [1, 2, 3];
const prev = {
prop_1: 1,
prop_2,
};
const next = {
prop_1: 1,
prop_2,
};
const byValue = ["prop_1"];
const byReference = ["prop_2"];
expect(isEqual({ byValue, byReference })(prev, next)).toBe(true);
});
it("not equals", () => {
const prev = {
prop_1: 1,
};
const next = {
prop_1: 2,
};
const byValue = ["prop_1"];
expect(isEqual({ byValue })(prev, next)).toBe(false);
});
it("not equals", () => {
const prev = {
prop_1: 1,
};
const next = {
prop_1: undefined,
};
const byValue = ["prop_1"];
expect(isEqual({ byValue })(prev, next)).toBe(false);
});
it("not equals", () => {
const prev = {
prop_1: 1,
prop_2: [1, 2, 3],
};
const next = {
prop_1: 1,
prop_2: [1, 2, 3],
};
const byValue = ["prop_1"];
const byReference = ["prop_2"];
expect(isEqual({ byValue, byReference })(prev, next)).toBe(false);
});
it("not equals", () => {
const prev = {
index: 0,
focused: false,
};
const next = {
index: 0,
focused: true,
};
const byValue = ["focused", "index"];
expect(isEqual({ byValue })(prev, next)).toBe(false);
});
});
describe("reference value", () => {
it("equals", () => {
const prev = {
prop_1: [1, 2, 3],
};
const next = {
prop_1: [1, 2, 3],
};
const byValue = ["prop_1"];
expect(isEqual({ byValue })(prev, next)).toBe(true);
});
it("not equals", () => {
const prev = {
prop_1: [1, 2, 3],
};
const next = {
prop_1: [1, 2, 4],
};
const byValue = ["prop_1"];
expect(isEqual({ byValue })(prev, next)).toBe(false);
});
});
});