60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
var DataviewsCollection = require('../../../src/dataviews/dataviews-collection');
|
|
var DataviewModel = require('../../../src/dataviews/dataview-model-base');
|
|
var whenAllDataviewsFetched = require('../../../src/vis/dataviews-tracker');
|
|
var MockFactory = require('../../helpers/mockFactory');
|
|
|
|
describe('src/vis/dataviews-tracker', function () {
|
|
var options = {
|
|
map: {},
|
|
engine: {}
|
|
};
|
|
|
|
beforeEach(function () {
|
|
this.dataviewsFetched = jasmine.createSpy('dataviewsFetched');
|
|
|
|
this.source = MockFactory.createAnalysisModel({ id: 'a1' });
|
|
|
|
this.onDataviewsfetched = jasmine.createSpy('onDataviewsfetched');
|
|
|
|
this.dataviewsCollection = new DataviewsCollection([]);
|
|
|
|
whenAllDataviewsFetched(this.dataviewsCollection, this.onDataviewsfetched);
|
|
});
|
|
|
|
it('should check fetchStatus when any dataviews changes', function () {
|
|
var dataview1 = new DataviewModel({
|
|
source: this.source
|
|
}, options);
|
|
this.dataviewsCollection.add(dataview1);
|
|
|
|
var dataview2 = new DataviewModel({
|
|
source: this.source
|
|
}, options);
|
|
this.dataviewsCollection.add(dataview2);
|
|
|
|
this.onDataviewsfetched.calls.reset();
|
|
|
|
dataview1.set('status', 'fetched');
|
|
expect(this.onDataviewsfetched).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it('should trigger dataviewsFetched event when all dataviews fetches', function () {
|
|
var dataview1 = new DataviewModel({
|
|
source: this.source
|
|
}, options);
|
|
this.dataviewsCollection.add(dataview1);
|
|
|
|
var dataview2 = new DataviewModel({
|
|
source: this.source
|
|
}, options);
|
|
this.dataviewsCollection.add(dataview2);
|
|
|
|
this.onDataviewsfetched.calls.reset();
|
|
|
|
dataview1.set('status', 'fetched');
|
|
dataview2.set('status', 'fetched');
|
|
|
|
expect(this.onDataviewsfetched).toHaveBeenCalled();
|
|
});
|
|
});
|