beforeEach(() => { mock_reset(); mock_get('/users', dataCollectionUsers); schema = createSchema(); schema.addLeaf(createSchemaCollection('users')); });
beforeEach(() => { mock_reset(); schema = createSchema(); schema.addLeaf(createSchemaCollection('users')); spy_defaultHandler = spy(processResponse, 'defaultHandler'); });
beforeEach(() => { mutableUsers = new MutableResource(schema.users); store = expectedDescriptor.store = schema.__node.definition.storeMap.getOrCreate('user'); spyMutableUsers_generateDescriptor = spy(mutableUsers, '_generateDescriptor'); spyStore_touchResource = spy(store, 'touchResource'); spyStore_updateResource = spy(store, 'updateResource'); spyStore_destroyResource = spy(store, 'destroyResource'); mock_reset(); mock_put('/users', responseData); });
beforeEach(() => { mock_reset(); adapter = new XHRAdapter(); schema = createSchema({ adapter }); schema.addLeaf(createSchemaCollection('users')); schema.addLeaf(createSchemaResource('rules')); storeUsers = schema.__node.definition.storeMap.getOrCreate('user'); spyUsers_touchResource = spy(storeUsers, 'touchResource'); spyUsers_updateResource = spy(storeUsers, 'updateResource'); storeRules = schema.__node.definition.storeMap.getOrCreate('rule'); spyRules_touchResource = spy(storeRules, 'touchResource'); spyRules_updateResource = spy(storeRules, 'updateResource'); });
it('should handle loading a failed request', () => { mock_reset(); mock_get('/users', { error: 'foobar' }, 500); const onLoad = spy(); const onChange = spy(); const store = schema.__node.definition.storeMap.getOrCreate('user'); spy(store, 'once'); const resource = new Resource(schema.users); resource.on('load', onLoad); resource.on('change', onChange); expect(store.once.callCount).to.equal(0); expect(mock_request_count()).to.equal(0); expect(onLoad.callCount).to.equal(0); expect(onChange.callCount).to.equal(0); return delay_for_resource_request(resource)() .then(() => { expect(mock_request_count()).to.equal(1); expect(onLoad.callCount).to.equal(0); expect(onChange.callCount).to.equal(1); expect(resource.data).to.equal(null); expect(resource.status).to.equal(IStatus.stale); expect(resource.timestamp).to.be.greaterThan(ITimestamp.loading); expect(store.once.callCount).to.equal(0); const descriptor = new ResourceDescriptor(null, IActionType.get, schema.users.__stack); store.updateResource(descriptor, dataCollectionUsersUpdate, IStatus.complete); expect(onLoad.callCount).to.equal(1); expect(onChange.callCount).to.equal(2); expect(resource.data).to.deep.equal(dataCollectionUsersUpdate); expect(resource.status).to.equal(IStatus.complete); expect(resource.timestamp).to.be.greaterThan(ITimestamp.loading); }); });