Skip to content

Commit

Permalink
Add tests for Array.prototype.splice
Browse files Browse the repository at this point in the history
  • Loading branch information
Exelord committed Feb 23, 2022
1 parent 8410588 commit b32d351
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions tests/src/primitives/array.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,71 @@ describe("SignaledArray", () => {
expect(spy).toBeCalledTimes(2);
});

describe("Array.prototype.splice", () => {
it("items that did change do react to splice", () => {
const spy = vi.fn();

createRoot(() => {
const array = ["1", "2", "3"];
const signaledArray = createArray(array);

createRenderEffect(() => {
spy(signaledArray[2]);
});

expect(spy).toBeCalledTimes(1);

signaledArray.splice(1, 1);

expect(signaledArray).toEqual(["1", "3"]);
});

expect(spy).toBeCalledTimes(2);
});

it("collection reacts to splice", () => {
const spy = vi.fn();

createRoot(() => {
const array = ["1", "2", "3"];
const signaledArray = createArray(array);

createRenderEffect(() => {
spy(signaledArray.forEach(() => {}));
});

expect(spy).toBeCalledTimes(1);

signaledArray.splice(1, 1);

expect(signaledArray).toEqual(["1", "3"]);
});

expect(spy).toBeCalledTimes(2);
});

it("items that didn't change do not react to splice", () => {
const spy = vi.fn();

createRoot(() => {
const array = ["1", "2", "3"];
const signaledArray = createArray(array);

createRenderEffect(() => {
spy(signaledArray[0]);
});

expect(spy).toBeCalledTimes(1);

signaledArray.splice(1, 1);

expect(signaledArray).toEqual(["1", "3"]);
});

expect(spy).toBeCalledTimes(1);
});
});

describe("set", () => {
it("uses signal to track existing properties", () => {
const spy = vi.fn();
Expand Down

0 comments on commit b32d351

Please sign in to comment.