datamodel
Version:
Relational algebra compliant in-memory tabular data store
39 lines (33 loc) • 1.22 kB
JavaScript
/* global describe, it, beforeEach */
/* eslint-disable no-unused-expressions */
import { expect } from 'chai';
import PartialField from './index';
import { DimensionSubtype } from '../../enums';
import TemporalParser from '../parsers/temporal-parser';
describe('PartialField', () => {
const schema = {
name: 'Date',
type: 'dimension',
subtype: DimensionSubtype.TEMPORAL,
format: '%Y-%m-%d',
description: 'The is a test field'
};
const data = ['2017-03-01', '2017-03-02', '2017-03-03'];
let partField;
let temParser;
beforeEach(() => {
temParser = new TemporalParser(schema);
partField = new PartialField(schema.name, data, schema, temParser);
});
describe('#constructor', () => {
it('should have essential attributes', () => {
expect(partField.name).to.equal(schema.name);
expect(partField.schema).to.eql(schema);
expect(partField.parser).to.equal(temParser);
});
it('should sanitize the input data before use', () => {
const expected = data.map(d => temParser.parse(d));
expect(partField.data).to.eql(expected);
});
});
});