UNPKG

mls-import

Version:

Library for reading MLS flat files and parsing into javascript objects

133 lines (107 loc) 4.14 kB
"use strict"; var fs = require('fs'), path = require('path'), should = require('chai').should(), mlsImport = require('../index'), importResidential = mlsImport.importResidential, common = require('../lib/common'); // mlsImport Tests describe('#importResidential', function() { // Load sample data var buffer = fs.readFileSync(path.join(__dirname, '/sample-data/RES_IDX_DATA_COMPACT_10222014.txt')); var contents = buffer.toString('utf-8'); it('returns an array of listing;', function() { importResidential(contents).should.not.empty(); }); }); // /lib/common tests describe('#convertToDataType', function () { // Stage data var characterCol = {dataType: 'Character', interpretation: ''}; var characterLookupMultiCol = {dataType: 'Character', interpretation: 'LookupMulti'}; var tinyCol = {dataType: 'Tiny'}; var smallCol = {dataType: 'Small'}; var intCol = {dataType: 'Int'}; var dateCol = {dataType: 'Date'}; var dateTimeCol = {dataType: 'DateTime'}; var booleanCol = {dataType: 'Boolean'}; var decimalCol = {dataType: 'Decimal', precision: 2}; common.convertToDataType('stringTest', characterCol); it('returns a string for a string column;', function() { common.convertToDataType('stringTest', characterCol) .should.equal('stringTest'); }); it('returns an array of strings for a string column that is a LookupMulti;', function() { var value = "tommy, is, super, awesome"; common.convertToDataType(value, characterLookupMultiCol) .should.be.instanceof(Array); common.convertToDataType(value, characterLookupMultiCol) .should.eql(['tommy', 'is', 'super', 'awesome']); }); it('returns an int for a tiny column;', function() { common.convertToDataType('10', tinyCol) .should.equal(10); }); it('returns an int for a small column;', function() { common.convertToDataType('11', smallCol) .should.equal(11); }); it('returns an int for a int column;', function() { common.convertToDataType('12', intCol) .should.equal(12); }); it('returns an date for a date column;', function() { var stringDate = "2014-05-17"; var expectedDate = new Date(stringDate); common.convertToDataType(stringDate, dateCol) .should.eql(expectedDate); }); it('returns an date for a dateTime column;', function() { var stringDate = "2012-06-26T15:07:40"; var expectedDate = new Date(stringDate); common.convertToDataType(stringDate, dateTimeCol) .should.eql(expectedDate); }); it('returns a boolean for a boolean column;', function() { common.convertToDataType('1', booleanCol) .should.be.equal(true); common.convertToDataType('0', booleanCol) .should.be.equal(false); }); it('returns a decimal for a decimal column;', function() { common.convertToDataType('150.43', decimalCol) .should.be.equal(150.43); }); }); describe('#createFormatHashTable', function() { // prep data var format = { "columns": [ { "systemName": "AcreageSource", "longName": "Acreage Source", "maximumLength": "5", "dataType": "Character", "precision": "0", "interpretation": "Lookup", "units": "", "minimum": "0", "maximum": "0" }, { "systemName": "Acres", "longName": "Acres", "maximumLength": "9", "dataType": "Decimal", "precision": "3", "interpretation": "Number", "units": "Acres", "minimum": "0", "maximum": "99999.999" } ] } it('returns hash table for the format object', function() { common.createFormatHashTable(format).should.include.keys("acreageSource"); }) });