117 lines
3.1 KiB
JavaScript
117 lines
3.1 KiB
JavaScript
var Backbone = require('backbone');
|
|
var CategoryDataviewModel = require('../../../../../src/dataviews/category-dataview-model');
|
|
var HistogramDataviewModel = require('../../../../../src/dataviews/histogram-dataview-model');
|
|
var FormulaDataviewModel = require('../../../../../src/dataviews/formula-dataview-model');
|
|
var MockFactory = require('../../../../helpers/mockFactory');
|
|
var DataviewsSerializer = require('../../../../../src/windshaft/map-serializer/anonymous-map-serializer/dataviews-serializer');
|
|
var createEngine = require('../../../fixtures/engine.fixture.js');
|
|
|
|
describe('dataviews-serializer', function () {
|
|
describe('.serialize', function () {
|
|
var engineMock;
|
|
var map;
|
|
var layer;
|
|
var analysis;
|
|
|
|
beforeEach(function () {
|
|
engineMock = createEngine();
|
|
map = new Backbone.Model();
|
|
layer = new Backbone.Model();
|
|
analysis = MockFactory.createAnalysisModel({ id: 'a0' });
|
|
});
|
|
|
|
it('serialises histogram dataviews', function () {
|
|
var histogramDataview = new HistogramDataviewModel({
|
|
id: 'dataview1',
|
|
column: 'column1',
|
|
column_type: 'date',
|
|
aggregation: 'week',
|
|
source: analysis
|
|
}, {
|
|
map: map,
|
|
engine: engineMock,
|
|
layer: layer
|
|
});
|
|
|
|
var dataviewsCollection = new Backbone.Collection([
|
|
histogramDataview
|
|
]);
|
|
|
|
expect(DataviewsSerializer.serialize(dataviewsCollection)).toEqual({
|
|
dataview1: {
|
|
type: 'histogram',
|
|
source: {
|
|
id: 'a0'
|
|
},
|
|
options: {
|
|
column: 'column1',
|
|
aggregation: 'week'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
it('serialises category dataviews', function () {
|
|
var categoryDataview = new CategoryDataviewModel({
|
|
id: 'dataview2',
|
|
column: 'column2',
|
|
aggregation: 'aggregation2',
|
|
aggregation_column: 'aggregation_column2',
|
|
source: analysis
|
|
}, {
|
|
map: map,
|
|
engine: engineMock,
|
|
layer: layer
|
|
});
|
|
|
|
var dataviewsCollection = new Backbone.Collection([
|
|
categoryDataview
|
|
]);
|
|
|
|
expect(DataviewsSerializer.serialize(dataviewsCollection)).toEqual({
|
|
dataview2: {
|
|
type: 'aggregation',
|
|
source: {
|
|
id: 'a0'
|
|
},
|
|
options: {
|
|
column: 'column2',
|
|
aggregation: 'aggregation2',
|
|
aggregationColumn: 'aggregation_column2'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
it('serialises formula dataviews', function () {
|
|
var formulaDataview = new FormulaDataviewModel({
|
|
id: 'dataview3',
|
|
column: 'column3',
|
|
operation: 'sum',
|
|
source: analysis
|
|
}, {
|
|
map: map,
|
|
engine: engineMock,
|
|
layer: layer
|
|
});
|
|
|
|
var dataviewsCollection = new Backbone.Collection([
|
|
formulaDataview
|
|
]);
|
|
|
|
expect(DataviewsSerializer.serialize(dataviewsCollection)).toEqual({
|
|
dataview3: {
|
|
type: 'formula',
|
|
source: {
|
|
id: 'a0'
|
|
},
|
|
options: {
|
|
column: 'column3',
|
|
operation: 'sum'
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
});
|