103 lines
3.5 KiB
JavaScript
103 lines
3.5 KiB
JavaScript
|
var fetchAllQueryObjects = require('builder/helpers/fetch-all-query-objects');
|
||
|
var getQuerySchemaModelFixture = require('fixtures/builder/query-schema-model.fixture.js');
|
||
|
var getQueryGeometryModelFixture = require('fixtures/builder/query-geometry-model.fixture.js');
|
||
|
var getQueryRowsCollectionFixture = require('fixtures/builder/query-rows-collection.fixture.js');
|
||
|
var ajaxFixtures = require('fixtures/builder/ajax-fixtures.js');
|
||
|
|
||
|
describe('helpers/fetch-all-query-objects', function () {
|
||
|
describe('all models should fetch', function () {
|
||
|
beforeEach(function () {
|
||
|
jasmine.Ajax.install();
|
||
|
|
||
|
jasmine.Ajax
|
||
|
.stubRequest(ajaxFixtures.querySchemaModel.url.http)
|
||
|
.andReturn(ajaxFixtures.querySchemaModel.response.ok);
|
||
|
|
||
|
jasmine.Ajax
|
||
|
.stubRequest(ajaxFixtures.queryGeometryModel.url.http)
|
||
|
.andReturn(ajaxFixtures.queryGeometryModel.response.ok);
|
||
|
|
||
|
jasmine.Ajax
|
||
|
.stubRequest(ajaxFixtures.queryRowsCollection.url.http)
|
||
|
.andReturn(ajaxFixtures.queryRowsCollection.response.ok);
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
jasmine.Ajax.uninstall();
|
||
|
});
|
||
|
|
||
|
it('every query model should fetch and resolve when they are in final status', function (done) {
|
||
|
var CHECK_IT_PASSES = true;
|
||
|
|
||
|
var querySchemaModel = getQuerySchemaModelFixture();
|
||
|
var queryGeometryModel = getQueryGeometryModelFixture();
|
||
|
var queryRowsCollection = getQueryRowsCollectionFixture({
|
||
|
querySchemaModel: querySchemaModel
|
||
|
});
|
||
|
|
||
|
fetchAllQueryObjects({
|
||
|
queryGeometryModel: queryGeometryModel,
|
||
|
querySchemaModel: querySchemaModel,
|
||
|
queryRowsCollection: queryRowsCollection
|
||
|
}).then(function (values) {
|
||
|
expect(CHECK_IT_PASSES).toBe(true);
|
||
|
done();
|
||
|
});
|
||
|
|
||
|
querySchemaModel.trigger('inFinalStatus');
|
||
|
queryGeometryModel.trigger('inFinalStatus');
|
||
|
|
||
|
setTimeout(function () {
|
||
|
queryRowsCollection.trigger('inFinalStatus');
|
||
|
}, 0);
|
||
|
});
|
||
|
|
||
|
it('must resolve even when models are fetching', function (done) {
|
||
|
var CHECK_IT_PASSES = true;
|
||
|
|
||
|
var querySchemaModel = getQuerySchemaModelFixture({ initialStatus: 'fetching' });
|
||
|
var queryGeometryModel = getQueryGeometryModelFixture({ initialStatus: 'fetching' });
|
||
|
var queryRowsCollection = getQueryRowsCollectionFixture({
|
||
|
querySchemaModel: querySchemaModel,
|
||
|
initialStatus: 'fetching'
|
||
|
});
|
||
|
|
||
|
fetchAllQueryObjects({
|
||
|
queryGeometryModel: queryGeometryModel,
|
||
|
querySchemaModel: querySchemaModel,
|
||
|
queryRowsCollection: queryRowsCollection
|
||
|
}).then(function (values) {
|
||
|
expect(CHECK_IT_PASSES).toBe(true);
|
||
|
done();
|
||
|
});
|
||
|
|
||
|
queryGeometryModel.fetch();
|
||
|
querySchemaModel.fetch();
|
||
|
|
||
|
setTimeout(function () {
|
||
|
queryRowsCollection.trigger('inFinalStatus');
|
||
|
}, 0);
|
||
|
});
|
||
|
|
||
|
it('must resolve if the models are fetched', function (done) {
|
||
|
var CHECK_IT_PASSES = true;
|
||
|
|
||
|
var querySchemaModel = getQuerySchemaModelFixture({ initialStatus: 'fetched' });
|
||
|
var queryGeometryModel = getQueryGeometryModelFixture({ initialStatus: 'fetched' });
|
||
|
var queryRowsCollection = getQueryRowsCollectionFixture({
|
||
|
querySchemaModel: querySchemaModel,
|
||
|
initialStatus: 'fetched'
|
||
|
});
|
||
|
|
||
|
fetchAllQueryObjects({
|
||
|
queryGeometryModel: queryGeometryModel,
|
||
|
querySchemaModel: querySchemaModel,
|
||
|
queryRowsCollection: queryRowsCollection
|
||
|
}).then(function (values) {
|
||
|
expect(CHECK_IT_PASSES).toBe(true);
|
||
|
done();
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|