mirror of
https://github.com/trezor/trezor-suite.git
synced 2026-03-03 05:55:03 +01:00
176 lines
3.6 KiB
TypeScript
176 lines
3.6 KiB
TypeScript
import * as comparisonUtils from '../src/comparison';
|
|
|
|
const isChanged = [
|
|
{
|
|
testName: 'isChanged',
|
|
prev: {
|
|
a: 1,
|
|
b: 2,
|
|
c: 3,
|
|
},
|
|
current: {
|
|
a: 1,
|
|
b: 2,
|
|
c: 5,
|
|
},
|
|
filter: undefined,
|
|
result: true,
|
|
},
|
|
{
|
|
testName: 'isChanged no change',
|
|
prev: {
|
|
a: 1,
|
|
b: 2,
|
|
c: 3,
|
|
},
|
|
current: {
|
|
a: 1,
|
|
b: 2,
|
|
c: 3,
|
|
},
|
|
filter: undefined,
|
|
result: false,
|
|
},
|
|
{
|
|
testName: 'isChanged deep change with filter',
|
|
prev: {
|
|
a: 1,
|
|
b: 2,
|
|
c: {
|
|
c1: 1,
|
|
c2: 2,
|
|
},
|
|
},
|
|
current: {
|
|
a: 1,
|
|
b: 2,
|
|
c: {
|
|
c1: 1,
|
|
c2: 4,
|
|
},
|
|
},
|
|
filter: { c: ['c2'] },
|
|
result: true,
|
|
},
|
|
{
|
|
testName: 'isChanged deep change without filter',
|
|
prev: {
|
|
a: 1,
|
|
b: 2,
|
|
c: {
|
|
c1: 1,
|
|
c2: 2,
|
|
},
|
|
},
|
|
current: {
|
|
a: 1,
|
|
b: 2,
|
|
c: {
|
|
c1: 1,
|
|
c2: 4,
|
|
},
|
|
},
|
|
filter: undefined,
|
|
result: true,
|
|
},
|
|
{
|
|
testName: 'isChanged deep change with filter on wrong field',
|
|
prev: {
|
|
a: 1,
|
|
b: 2,
|
|
c: {
|
|
c1: 1,
|
|
c2: 2,
|
|
},
|
|
},
|
|
current: {
|
|
a: 1,
|
|
b: 2,
|
|
c: {
|
|
c1: 1,
|
|
c2: 4,
|
|
},
|
|
},
|
|
filter: { c: ['c1'] },
|
|
result: false,
|
|
},
|
|
{
|
|
testName: 'isChanged array no change',
|
|
prev: [1],
|
|
current: [1],
|
|
filter: undefined,
|
|
result: false,
|
|
},
|
|
{
|
|
testName: 'isChanged array with changed length',
|
|
prev: [],
|
|
current: [1],
|
|
filter: undefined,
|
|
result: true,
|
|
},
|
|
{
|
|
testName: 'isChanged array with changed value',
|
|
prev: [0],
|
|
current: [1],
|
|
filter: undefined,
|
|
result: true,
|
|
},
|
|
{
|
|
testName: 'isChanged different types',
|
|
prev: 1,
|
|
current: [1],
|
|
filter: undefined,
|
|
result: true,
|
|
},
|
|
{
|
|
testName: 'isChanged object keys different lengths',
|
|
prev: { key1: 1 },
|
|
current: { key1: 1, key2: 2 },
|
|
filter: undefined,
|
|
result: true,
|
|
},
|
|
{
|
|
testName: 'isChanged object keys same lengths but different keys',
|
|
prev: { key1: 1 },
|
|
current: { key2: 2 },
|
|
filter: undefined,
|
|
result: true,
|
|
},
|
|
{
|
|
testName: 'isChanged different strings',
|
|
prev: 'a',
|
|
current: 'b',
|
|
filter: undefined,
|
|
result: true,
|
|
},
|
|
{
|
|
testName: 'isChanged same strings',
|
|
prev: 'a',
|
|
current: 'a',
|
|
filter: undefined,
|
|
result: false,
|
|
},
|
|
{
|
|
testName: 'isChanged different numbers',
|
|
prev: 1,
|
|
current: 2,
|
|
filter: undefined,
|
|
result: true,
|
|
},
|
|
{
|
|
testName: 'isChanged same numbers',
|
|
prev: 1,
|
|
current: 1,
|
|
filter: undefined,
|
|
result: false,
|
|
},
|
|
];
|
|
|
|
describe('reducer utils', () => {
|
|
isChanged.forEach(f => {
|
|
it(`isChanged${f.testName}`, () => {
|
|
expect(comparisonUtils.isChanged(f.prev, f.current, f.filter)).toEqual(f.result);
|
|
});
|
|
});
|
|
});
|