Skip to content

Commit

Permalink
test: hooks in es5
Browse files Browse the repository at this point in the history
  • Loading branch information
aleclarson committed Jan 30, 2019
1 parent d41be77 commit 271cd1b
Show file tree
Hide file tree
Showing 2 changed files with 174 additions and 21 deletions.
177 changes: 164 additions & 13 deletions __tests__/__snapshots__/hooks.js.snap
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`hooks - onAssign() when draft is an array assign 1`] = `
exports[`hooks (es5) - onAssign() when draft is an array assign 1`] = `
Array [
Array [
0,
Expand All @@ -9,7 +9,7 @@ Array [
]
`;

exports[`hooks - onAssign() when draft is an array push 1`] = `
exports[`hooks (es5) - onAssign() when draft is an array push 1`] = `
Array [
Array [
0,
Expand All @@ -18,7 +18,7 @@ Array [
]
`;

exports[`hooks - onAssign() when draft is an array splice (length += 0) 1`] = `
exports[`hooks (es5) - onAssign() when draft is an array splice (length += 0) 1`] = `
Array [
Array [
1,
Expand All @@ -27,7 +27,7 @@ Array [
]
`;

exports[`hooks - onAssign() when draft is an array splice (length += 1) 1`] = `
exports[`hooks (es5) - onAssign() when draft is an array splice (length += 1) 1`] = `
Array [
Array [
1,
Expand All @@ -44,7 +44,7 @@ Array [
]
`;

exports[`hooks - onAssign() when draft is an array splice (length -= 1) 1`] = `
exports[`hooks (es5) - onAssign() when draft is an array splice (length -= 1) 1`] = `
Array [
Array [
0,
Expand All @@ -57,7 +57,7 @@ Array [
]
`;

exports[`hooks - onAssign() when draft is an array unshift 1`] = `
exports[`hooks (es5) - onAssign() when draft is an array unshift 1`] = `
Array [
Array [
0,
Expand All @@ -70,7 +70,7 @@ Array [
]
`;

exports[`hooks - onAssign() when draft is an object assign 1`] = `
exports[`hooks (es5) - onAssign() when draft is an object assign 1`] = `
Array [
Array [
"a",
Expand All @@ -83,7 +83,7 @@ Array [
]
`;

exports[`hooks - onAssign() when draft is an object nested assignments 1`] = `
exports[`hooks (es5) - onAssign() when draft is an object nested assignments 1`] = `
Array [
Array [
"c",
Expand All @@ -108,25 +108,176 @@ Array [
]
`;

exports[`hooks - onDelete() when draft is an array - length = 0 1`] = `Array []`;
exports[`hooks (es5) - onDelete() when draft is an array - length = 0 1`] = `
Array [
Array [
0,
],
]
`;

exports[`hooks (es5) - onDelete() when draft is an array - pop 1`] = `
Array [
Array [
0,
],
]
`;

exports[`hooks (es5) - onDelete() when draft is an array - splice (length -= 1) 1`] = `
Array [
Array [
2,
],
]
`;

exports[`hooks (es5) - onDelete() when draft is an object - delete 1`] = `
Array [
Array [
"a",
],
Array [
"c",
],
]
`;

exports[`hooks (es5) - onDelete() when draft is an object - nested deletions 1`] = `
Array [
Array [
"c",
],
]
`;

exports[`hooks (proxy) - onAssign() when draft is an array assign 1`] = `
Array [
Array [
0,
0,
],
]
`;

exports[`hooks (proxy) - onAssign() when draft is an array push 1`] = `
Array [
Array [
0,
4,
],
]
`;

exports[`hooks (proxy) - onAssign() when draft is an array splice (length += 0) 1`] = `
Array [
Array [
1,
0,
],
]
`;

exports[`hooks (proxy) - onAssign() when draft is an array splice (length += 1) 1`] = `
Array [
Array [
1,
0,
],
Array [
2,
0,
],
Array [
3,
3,
],
]
`;

exports[`hooks (proxy) - onAssign() when draft is an array splice (length -= 1) 1`] = `
Array [
Array [
0,
6,
],
Array [
1,
3,
],
]
`;

exports[`hooks (proxy) - onAssign() when draft is an array unshift 1`] = `
Array [
Array [
0,
0,
],
Array [
1,
1,
],
]
`;

exports[`hooks (proxy) - onAssign() when draft is an object assign 1`] = `
Array [
Array [
"a",
1,
],
Array [
"c",
1,
],
]
`;

exports[`hooks (proxy) - onAssign() when draft is an object nested assignments 1`] = `
Array [
Array [
"c",
2,
],
Array [
"b",
Object {
"c": 2,
"e": 1,
},
],
Array [
"a",
Object {
"b": Object {
"c": 2,
"e": 1,
},
},
],
]
`;

exports[`hooks (proxy) - onDelete() when draft is an array - length = 0 1`] = `Array []`;

exports[`hooks - onDelete() when draft is an array - pop 1`] = `
exports[`hooks (proxy) - onDelete() when draft is an array - pop 1`] = `
Array [
Array [
"0",
],
]
`;

exports[`hooks - onDelete() when draft is an array - splice (length -= 1) 1`] = `
exports[`hooks (proxy) - onDelete() when draft is an array - splice (length -= 1) 1`] = `
Array [
Array [
"2",
],
]
`;

exports[`hooks - onDelete() when draft is an object - delete 1`] = `
exports[`hooks (proxy) - onDelete() when draft is an object - delete 1`] = `
Array [
Array [
"a",
Expand All @@ -137,7 +288,7 @@ Array [
]
`;

exports[`hooks - onDelete() when draft is an object - nested deletions 1`] = `
exports[`hooks (proxy) - onDelete() when draft is an object - nested deletions 1`] = `
Array [
Array [
"c",
Expand Down
18 changes: 10 additions & 8 deletions __tests__/hooks.js
@@ -1,20 +1,24 @@
"use strict"
import {Immer} from "../src/index"
import {Immer, setUseProxies} from "../src/index"
import matchers from "expect/build/matchers"

describe("hooks -", () => {
describe("hooks (proxy) -", () => createHookTests(true))
describe("hooks (es5) -", () => createHookTests(false))

function createHookTests(useProxies) {
let produce, onAssign, onDelete, onCopy

const reset = () =>
({produce, onAssign, onDelete, onCopy} = new Immer({
beforeEach(() => {
;({produce, onAssign, onDelete, onCopy} = new Immer({
autoFreeze: true,
useProxies,
onAssign: defuseProxies(jest.fn().mockName("onAssign")),
onDelete: defuseProxies(jest.fn().mockName("onDelete")),
onCopy: defuseProxies(jest.fn().mockName("onCopy"))
}))
})

describe("onAssign()", () => {
beforeEach(reset)
useSharedTests(() => onAssign)
describe("when draft is an object", () => {
test("assign", () => {
Expand Down Expand Up @@ -117,7 +121,6 @@ describe("hooks -", () => {
})

describe("onDelete()", () => {
beforeEach(reset)
useSharedTests(() => onDelete)
describe("when draft is an object -", () => {
test("delete", () => {
Expand Down Expand Up @@ -163,7 +166,6 @@ describe("hooks -", () => {
})

describe("onCopy()", () => {
beforeEach(reset)
useSharedTests(() => onCopy)
it("is called in the right order", () => {
const calls = []
Expand Down Expand Up @@ -192,7 +194,7 @@ describe("hooks -", () => {
expect(hook).toHaveBeenCalledTimes(hook == onDelete ? 1 : 3)
})
}
})
}

// Produce a snapshot of the hook arguments (minus any draft state).
function expectCalls(hook) {
Expand Down

0 comments on commit 271cd1b

Please sign in to comment.