import { fill } from 'lodash'; import { EntitiesManager as EM } from '../../src/index'; import configureEntitiesManager from '../utils/configureEntitiesManager'; import configureStore from '../utils/configureStore'; import deleteCollection from '../utils/deleteCollection'; let em = null; let store = null; const initializeEmStore = () => { em = configureEntitiesManager({ item: { createdAt: EM.createdAt(), updatedAt: EM.updatedAt(), value: EM.required() } }); store = configureStore({}, { entities: em.getEntitiesReducer() }); }; describe('ordered queries)', () => { const itemsNum = 10; beforeAll(() => { initializeEmStore(); }); describe('adding items', () => { it('should resolve with id(s)', () => { const addingParentPromises = []; const compTarget = []; for (let i = 0; i < itemsNum; i++) { addingParentPromises.push(store.dispatch(em.entity('item').addItem({ id: i+'', value: Math.round(Math.random() * 20) }))); compTarget.push(i+''); } return Promise.all(addingParentPromises) .then((results) => { expect(results).toEqual(compTarget); }); }, 150000); }); describe('query items by values', () => { let queryMore = null; let items = []; beforeAll(() => { initializeEmStore(); queryMore = store.dispatch( em.entity('item').queryList( 'orderedItems', [['value', '>', 0]], 'value', 'asc' ) ); }); it( 'should query items in order', () => queryMore(10, 'FROM_FIRST') .then((result) => { const orderedItems = em.entity('item').getQueriedList('orderedItems')(store.getState()); for (let i = 1; i < itemsNum; i++) { expect(orderedItems[i].value - orderedItems[i-1].value).toBeGreaterThanOrEqual(0); } }), 150000 ); }); afterAll(() => Promise.all([ deleteCollection('item') ]).then((results) => { console.log('deleted results:', results); }), 1000000); });