|
| 1 | +'use strict'; |
| 2 | + |
| 3 | +const assert = require('assert'); |
| 4 | +const sectionDiff = require('../').sectionDiff; |
| 5 | + |
| 6 | +const origIds = ['a','b','c','d','e','f']; |
| 7 | + |
| 8 | +// Basic tests |
| 9 | +module.exports = { |
| 10 | + 'Section diff': { |
| 11 | + 'No change': () => { |
| 12 | + assert.deepEqual(sectionDiff(origIds, [{id:'a',value:'a'},{id:'b',value:'b'},{id:'c',value:'c'},{id:'d',value:'d'},{id:'e',value:'e'},{id:'f',value:'f'}]), {}); |
| 13 | + }, |
| 14 | + 'Single deleted section': () => { |
| 15 | + assert.deepEqual(sectionDiff(origIds, [{id:'b',value:'b'},{id:'c',value:'c'},{id:'d',value:'d'},{id:'e',value:'e'},{id:'f',value:'f'}]), {a:''}); |
| 16 | + }, |
| 17 | + 'Single deleted section, middle': () => { |
| 18 | + assert.deepEqual(sectionDiff(origIds, [{id:'a',value:'a'},{id:'c',value:'c'},{id:'d',value:'d'},{id:'e',value:'e'},{id:'f',value:'f'}]), {'b':''}); |
| 19 | + }, |
| 20 | + 'Delete everything': () => { |
| 21 | + assert.deepEqual(sectionDiff(origIds, []), {a:'',b:'',c:'',d:'',e:'',f:''}); |
| 22 | + }, |
| 23 | + 'Replace first section': () => { |
| 24 | + assert.deepEqual(sectionDiff(origIds, [{value:'foo'},{id:'b',value:'b'},{id:'c',value:'c'},{id:'d',value:'d'},{id:'e',value:'e'},{id:'f',value:'f'}]), {mw0:'foo',a:''}); |
| 25 | + }, |
| 26 | + 'Edit + section replacement': () => { |
| 27 | + assert.deepEqual(sectionDiff(origIds, [{id:'a',value:'a'},{id:'b', modified: true, value: 'bar'},{id:'d', modified: true, value: 'deee'},{id:'e',value:'e'},{id:'f',value:'f'}]), {b:'bar',c:'',d:'deee'}); |
| 28 | + }, |
| 29 | + 'Delete last section': () => { |
| 30 | + assert.deepEqual(sectionDiff(origIds, [{id:'a',value:'a'},{id:'b',value:'b'},{id:'c',value:'c'},{id:'d',value:'d'},{id:'e',value:'e'}]), {f:''}); |
| 31 | + }, |
| 32 | + 'Prepend & delete last section': () => { |
| 33 | + assert.deepEqual(sectionDiff(origIds, |
| 34 | + [{value: 'foo'},{id:'a',value:'a'},{id:'b',value:'b'},{id:'c',value:'c'},{id:'d',value:'d'},{id:'e'}]), |
| 35 | + {'mw0':'foo',f: ''}); |
| 36 | + }, |
| 37 | + 'Reorder sections 1': () => { |
| 38 | + assert.deepEqual(sectionDiff(origIds, [{id:'a', value:'aa'}, {id: 'b', |
| 39 | + value:'b'}, {value: 'foo'}, {id:'e', value: 'e'}]), {'b':'bfoo',c: |
| 40 | + '', d:'', f:''}); |
| 41 | + } |
| 42 | + } |
| 43 | +}; |
0 commit comments