@zargu/couchdb-designer
Version:
Create and testing couchdb design document form directory structure.
70 lines (62 loc) • 4.46 kB
JavaScript
import createTestServer from '../../src/createTestServer';
const reduceDatabase = {name:'proba1',partitioned:true,data:[
{_id:'proba:doc0',date:1632601214703,value:{object:[0,1],value:{field:0}}},
{_id:'proba:doc1',date:1632457214703,value:{object:[1,1],value:{field:1}}},
{_id:'test:doc2',date:1632313214703,value:{object:[2,1],value:{field:2}}},
{_id:'test:doc3',date:1632169214703,value:{object:[3,1],value:{field:3}}},
{_id:'proba:doc4',date:1632025214703,value:{object:[4,1],value:{field:4}}},
{_id:'test:doc5',date:1631881214703,value:{object:[5,1],value:{field:5}}},
{_id:'proba:doc6',date:1631737214703,value:{object:[6,1],value:{field:6}}},
{_id:'proba:doc7',date:1631593214703,value:{object:[7,1],value:{field:7}}},
{_id:'proba:doc8',date:1631449214703,value:{object:[8,1],value:{field:8}}},
{_id:'proba:doc9',date:1631305214703,value:{object:[9,1],value:{field:9}}},
{_id:'proba:doc10',date:1631161214703,value:{object:[10,1],value:{field:10}}},
{_id:'proba:doc11',date:1631017214703,value:{object:[11,1],value:{field:11}}},
{_id:'proba:doc12',date:1630873214703,value:{object:[12,1],value:{field:12}}},
{_id:'test:doc13',date:1630729214703,value:{object:[13,1],value:{field:13}}},
{_id:'test:doc14',date:1630585214703,value:{object:[14,1],value:{field:14}}},
{_id:'test:doc15',date:1630441214703,value:{object:[15,1],value:{field:15}}},
{_id:'test:doc16',date:1630297214703,value:{object:[16,1],value:{field:16}}},
{_id:'test:doc17',date:1630153214703,value:{object:[17,1],value:{field:17}}},
{_id:'test:doc18',date:1630009214703,value:{object:[18,1],value:{field:18}}},
{_id:'test:doc19',date:1629865214703,value:{object:[19,1],value:{field:19}}},
{_id:'test:doc20',date:1629721214703,value:{object:[20,1],value:{field:20}}},
{_id:'test:doc21',date:1629577214703,value:{object:[21,1],value:{field:21}}},
{_id:'test:doc22',date:1629433214703,value:{object:[22,1],value:{field:22}}},
{_id:'test:doc23',date:1629289214703,value:{object:[23,1],value:{field:23}}},
{_id:'test:doc24',date:1629145214703,value:{object:[24,1],value:{field:24}}},
{_id:'proba:doc25',date:1629001214703,value:{object:[25,1],value:{field:25}}},
{_id:'proba:doc26',date:1628857214703,value:{object:[26,1],value:{field:26}}},
{_id:'proba:doc27',date:1628713214703,value:{object:[27,1],value:{field:27}}},
{_id:'proba:doc28',date:1628569214703,value:{object:[28,1],value:{field:28}}},
{_id:'proba:doc29',date:1628425214703,value:{object:[29,1],value:{field:29}}},
{_id:'proba:doc30',date:1628281214703,value:{object:[30,1],value:{field:30}}},
{_id:'proba:doc31',date:1628137214703,value:{object:[31,1],value:{field:31}}},
{_id:'proba:doc32',date:1627993214703,value:{object:[32,1],value:{field:32}}},
{_id:'proba:doc33',date:1627849214703,value:{object:[33,1],value:{field:33}}},
{_id:'proba:doc34',date:1627705214703,value:{object:[34,1],value:{field:34}}},
{_id:'proba:doc35',date:1627561214703,value:{object:[35,1],value:{field:35}}},
{_id:'proba:doc36',date:1627417214703,value:{object:[36,1],value:{field:36}}},
{_id:'proba:doc37',date:1627273214703,value:{object:[37,1],value:{field:37}}},
{_id:'proba:doc38',date:1627129214703,value:{object:[38,1],value:{field:38}}},
{_id:'test:doc39',date:1626985214703,value:{object:[39,1],value:{field:39}}}
]}
const reduceDatabase2 = {name: 'proba2',partitioned:true,data:[
{_id:'proba:doc40',date:1632601214703,value:{object:[0,1],value:{field:0}}},
{_id:'proba:doc41',date:1632457214703,value:{object:[1,1],value:{field:1}}},
{_id:'teve:doc42',date:1632313214703,value:{object:[2,1],value:{field:2}}},
{_id:'teve:doc43',date:1632169214703,value:{object:[3,1],value:{field:3}}},
{_id:'teve:doc44',date:1632025214703,value:{object:[4,1],value:{field:4}}},
]}
describe('map/reduce',() => {
test('reducer test 1',() => {
return createTestServer('./tests/design',reduceDatabase).then(context => {
expect(context('server').appdesign.view.byTest({},'test')).toEqual({rows:[{key:null,value:{object:[271,16],value:{field:271}}}]});
});
});
test('reducer test 2',() => {
return createTestServer('./tests/design',reduceDatabase2).then(context => {
expect(context('server').appdesign.view.byReducer({group_level:1},'proba')).toEqual({rows:[{key:[2021],value:2}]});
});
});
})