UNPKG

1.84 kBJavaScriptView Raw
1/* global describe, it */
2
3import { expect } from 'chai';
4import DataModel from './index';
5
6describe('Null/Empty/Invalid Values Representation', () => {
7 const defaultInvalidAwareTypes = DataModel.InvalidAwareTypes.invalidAwareVals();
8
9 it('should match the default configuration', () => {
10 const defNullValuesMap = {
11 invalid: DataModel.InvalidAwareTypes.NA,
12 nil: DataModel.InvalidAwareTypes.NIL,
13 null: DataModel.InvalidAwareTypes.NULL,
14 undefined: DataModel.InvalidAwareTypes.NA
15 };
16
17 expect(defaultInvalidAwareTypes).to.eql(defNullValuesMap);
18 });
19
20 it('should be equal to the newly set configuration', () => {
21 const data = [
22 { name: null, birthday: '1995-07-05', roll: 2 },
23 { name: undefined, birthday: '1996-08-04', roll: null },
24 ];
25 const schema = [
26 { name: 'name', type: 'dimension' },
27 { name: 'birthday', type: 'dimension', subtype: 'temporal', format: '%Y-%m-%d' },
28 { name: 'roll', type: 'measure', defAggFn: 'avg' }
29 ];
30 const config = { undefined: DataModel.InvalidAwareTypes.NULL, };
31
32 DataModel.configureInvalidAwareTypes(config);
33 const dm = new DataModel(data, schema);
34 const dmData = dm.getData().data;
35
36 expect(dmData[0][0] instanceof DataModel.InvalidAwareTypes).to.be.true;
37 expect(dmData[0][0]).to.eql(DataModel.InvalidAwareTypes.NULL);
38 expect(dmData[1][0] instanceof DataModel.InvalidAwareTypes).to.be.true;
39 expect(dmData[1][0]).to.eql(DataModel.InvalidAwareTypes.NULL);
40 expect(dmData[1][2] instanceof DataModel.InvalidAwareTypes).to.be.true;
41 expect(dmData[1][2]).to.eql(DataModel.InvalidAwareTypes.NULL);
42 expect(dmData[1][2].value()).to.eql('null');
43 });
44});