Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | 3x 32x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x | import type {ApplyPatch} from '../../types'; import type {Operation} from '../../../types'; import type {OperationFlip} from '../../..'; export const testFlipOp = (applyPatch: ApplyPatch) => { const applyOperations = (doc: unknown, ops: Operation[]) => applyPatch(doc, ops, {mutate: true}); describe('flip', () => { test('casts values and them flips them', () => { const doc = { val1: true, val2: false, val3: 1, val4: 0, }; const operations: OperationFlip[] = [ {op: 'flip', path: '/val1'}, {op: 'flip', path: '/val2'}, {op: 'flip', path: '/val3'}, {op: 'flip', path: '/val4'}, ]; const result = applyOperations(doc, operations).doc; expect(result).toEqual({ val1: false, val2: true, val3: false, val4: true, }); }); describe('root', () => { test('flips true to false', () => { const operation: OperationFlip = { op: 'flip', path: '', }; const result = applyOperations(true, [operation]).doc; expect(result).toEqual(false); }); test('flips false to true', () => { const operation: OperationFlip = { op: 'flip', path: '', }; const result = applyOperations(false, [operation]).doc; expect(result).toEqual(true); }); test('flips truthy number to false', () => { const operation: OperationFlip = { op: 'flip', path: '', }; const result = applyOperations(123, [operation]).doc; expect(result).toEqual(false); }); test('flips zero to true', () => { const operation: OperationFlip = { op: 'flip', path: '', }; const result = applyOperations(0, [operation]).doc; expect(result).toEqual(true); }); }); describe('object', () => { test('flips true to false', () => { const operation: OperationFlip = { op: 'flip', path: '/foo', }; const result = applyOperations({foo: true}, [operation]).doc; expect(result).toEqual({foo: false}); }); test('flips false to true', () => { const operation: OperationFlip = { op: 'flip', path: '/foo', }; const result = applyOperations({foo: false}, [operation]).doc; expect(result).toEqual({foo: true}); }); }); describe('array', () => { test('flips true to false and back', () => { const operations: OperationFlip[] = [ { op: 'flip', path: '/0', }, { op: 'flip', path: '/1', }, ]; const result = applyOperations([true, false], operations).doc; expect(result).toEqual([false, true]); }); }); }); }; |