JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://wzrd.in/standalone/expect@latest"></script>
<script src="https://wzrd.in/standalone/deep-diff@latest"></script>
<body>
</body>
Babel + JSX
document.body.innerHTML = 'Running tests';
const simpleObjectTest = () => {
const obj1 = {test: 1};
const obj2 = {test: 2};
const differences = deepDiff.diff(obj1, obj2);
expect(differences).toExist();
expect(differences[0].kind).toEqual('E');
expect(differences[0].lhs).toEqual(1);
expect(differences[0].rhs).toEqual(2);
expect(differences[0].path[0]).toEqual('test');
};
const nestedTest = () => {
const obj1 = {
test: {
test1: 1
}
};
const obj2 = {
test: {
test1: 2
}
};
const differences = deepDiff.diff(obj1, obj2);
expect(differences).toExist();
expect(differences[0].path[1]).toEqual('test1');
};
const arrayTest = () => {
const obj1 = [1, 2, 3];
const obj2 = [1, 3];
const differences = deepDiff.diff(obj1, obj2);
expect(differences).toExist();
expect(differences[0].kind).toEqual('E');
expect(differences[1].kind).toEqual('A');
expect(differences[1].item.kind).toEqual('D');
};
const keyTest = () => {
const obj1 = {test: 1};
const obj2 = {test2: 1};
const differences = deepDiff.diff(obj1, obj2);
expect(differences[0].kind).toEqual('D');
expect(differences[1].kind).toEqual('N');
};
const sameTest = () => {
const obj1 = {test: 1};
const obj2 = {test: 1};
const differences = deepDiff.diff(obj1, obj2);
expect(differences).toNotExist();
};
const functionTest = () => {
const obj1 = {test: () => 1};
const obj2 = {test: () => 1};
const differences = deepDiff.diff(obj1, obj2);
expect(differences).toExist();
};
[simpleObjectTest, nestedTest, keyTest, arrayTest, sameTest, functionTest].forEach(test => test());
document.body.innerHTML = 'All tests passed';