Files
carto.js/test/spec/windshaft/map-serializer/anonymous-map-serializer/dataviews-serializer.spec.js
T
2020-06-13 18:34:34 +08:00

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'
}
}
});
});
});
});