From c177097234c49ce47786d527154c32f8f4732b29 Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Tue, 1 Feb 2022 16:07:39 +0100 Subject: [PATCH] Add test for immutable operations --- client/src/graphql/immutable-operations.js | 1 - .../tests/unit/immutable-operations.spec.js | 62 ++++++++++++++++++- 2 files changed, 60 insertions(+), 3 deletions(-) diff --git a/client/src/graphql/immutable-operations.js b/client/src/graphql/immutable-operations.js index b9f1664f..44c9715e 100644 --- a/client/src/graphql/immutable-operations.js +++ b/client/src/graphql/immutable-operations.js @@ -19,7 +19,6 @@ export const removeAtIndex = (arr, idx) => { ]; }; export const replaceAtIndex = (arr, idx, el) => { - console.log(idx); return [ ...arr.slice(0, idx), el, diff --git a/client/tests/unit/immutable-operations.spec.js b/client/tests/unit/immutable-operations.spec.js index 113e5374..bde11030 100644 --- a/client/tests/unit/immutable-operations.spec.js +++ b/client/tests/unit/immutable-operations.spec.js @@ -1,5 +1,63 @@ +import {removeAtIndex, replaceAtIndex, insertAtIndex, pushToArray } from '@/graphql/immutable-operations'; describe('Cache operations', () => { - it('fails', () => { - // expect(1).toEqual(2); + it('removes at index', () => { + const original = [1, 2, 3]; + const copy = removeAtIndex(original, 1); + expect(original.length).toBe(3); + expect(original).toEqual([1, 2, 3]); + expect(copy.length).toBe(2); + expect(copy).toEqual([1, 3]); + + original.push(4); + expect(original.length).toBe(4); + expect(original).toEqual([1, 2, 3, 4]); + expect(copy.length).toBe(2); + expect(copy).toEqual([1, 3]); }); + + it('replaces at index', () => { + const original = [1, 2, 3]; + const copy = replaceAtIndex(original, 1, 234); + expect(original.length).toBe(3); + expect(original).toEqual([1, 2, 3]); + expect(copy.length).toBe(3); + expect(copy).toEqual([1, 234, 3]); + + original.push(4); + expect(original.length).toBe(4); + expect(original).toEqual([1, 2, 3, 4]); + expect(copy.length).toBe(3); + expect(copy).toEqual([1, 234, 3]); + }); + + it('inserts at index', () => { + const original = [1, 2, 3]; + const copy = insertAtIndex(original, 1, 234); + expect(original.length).toBe(3); + expect(original).toEqual([1, 2, 3]); + expect(copy.length).toBe(4); + expect(copy).toEqual([1, 234, 2, 3]); + + original.push(4); + expect(original.length).toBe(4); + expect(original).toEqual([1, 2, 3, 4]); + expect(copy.length).toBe(4); + expect(copy).toEqual([1, 234, 2, 3]); + }); + + it('pushed to array', () => { + const original = [1, 2, 3]; + const copy = pushToArray(original, 5); + expect(original.length).toBe(3); + expect(original).toEqual([1, 2, 3]); + expect(copy.length).toBe(4); + expect(copy).toEqual([1, 2, 3, 5]); + + original.push(4); + expect(original.length).toBe(4); + expect(original).toEqual([1, 2, 3, 4]); + expect(copy.length).toBe(4); + expect(copy).toEqual([1, 2, 3, 5]); + }); + });