93 lines
1.2 KiB
JavaScript
93 lines
1.2 KiB
JavaScript
import serialize from '../../src/p4/serialize';
|
|
|
|
global.Blob = class Blob {};
|
|
|
|
test('no changes returns null', () => {
|
|
expect(serialize({
|
|
a: 2
|
|
}, {
|
|
a: 2
|
|
})).toBe(null);
|
|
});
|
|
|
|
test('does not serialize missing keys', () => {
|
|
expect(serialize({
|
|
a: 1,
|
|
b: 2
|
|
}, {
|
|
a: 2
|
|
})).toStrictEqual({
|
|
a: 1
|
|
})
|
|
});
|
|
|
|
test('does not care about types', () => {
|
|
expect(serialize({
|
|
a: '1'
|
|
}, {
|
|
a: []
|
|
})).toStrictEqual({
|
|
a: '1'
|
|
})
|
|
});
|
|
|
|
test('arrays', () => {
|
|
expect(serialize({
|
|
a: [1]
|
|
}, {
|
|
a: [1]
|
|
})).toStrictEqual(null);
|
|
expect(serialize({
|
|
a: [2]
|
|
}, {
|
|
a: [1]
|
|
})).toStrictEqual({
|
|
a: [2]
|
|
});
|
|
});
|
|
|
|
test('does not serialize blobs', () => {
|
|
expect(serialize({
|
|
a: new Blob(['Hello world']),
|
|
b: 2
|
|
}, {
|
|
a: null,
|
|
b: 0
|
|
})).toStrictEqual({
|
|
b: 2
|
|
});
|
|
});
|
|
|
|
test('deep', () => {
|
|
expect(serialize({
|
|
cloud: {
|
|
test: {
|
|
a: 2
|
|
},
|
|
b: 1
|
|
},
|
|
c: '3'
|
|
}, {
|
|
cloud: {
|
|
test: {
|
|
a: 3,
|
|
z: 9
|
|
}
|
|
}
|
|
})).toStrictEqual({
|
|
cloud: {
|
|
test: {
|
|
a: 2
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
test('unexpected array', () => {
|
|
expect(serialize({
|
|
a: [1]
|
|
}, {
|
|
a: 1
|
|
})).toBe(null);
|
|
});
|