UNPKG

@webgap/format-utils

Version:

Common formatter utilities to handle numbers, dates, times, etc.

139 lines (122 loc) 4.58 kB
/** * (C) Copyright 2014 WebGAP (http://www.webgap.eu/). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Created by: ManuelMartins * Created on: 23-05-2014 * */ var assert = require("assert"); var Formatter = require('../index'); var formatter = new Formatter(); describe('@webgap/format-utils', function () { it('should format a number by passing a value', function (done) { var number = formatter.number(12); var expected = 12.00; assert.deepEqual(number, expected); done(); }); it('should format a number by passing an invalid value', function (done) { var number = formatter.number('string'); var expected = 0.00; assert.deepEqual(number, expected); var numberDefault = formatter.number(); var expectedDefault = 0.00; assert.deepEqual(numberDefault, expectedDefault); done(); }); it('should format a byte size', function (done) { var number = formatter.bytes(256000); var expected = '250.0KB'; assert.deepEqual(number, expected); done(); }); it('should format a byte size by passing an invalid value', function (done) { var number = formatter.bytes('fg'); var expected = '0.0'; assert.deepEqual(number, expected); var numberDefault = formatter.bytes(); var expectedDefault = '0.0'; assert.deepEqual(numberDefault, expectedDefault); done(); }); it('should format a percentage', function (done) { var number = formatter.percentage(1); var expected = '100.00%'; assert.deepEqual(number, expected); done(); }); it('should format a percentage by passing an invalid value', function (done) { var number = formatter.percentage('string'); var expected = '0.00%'; assert.deepEqual(number, expected); var numberDefault= formatter.percentage(); var expectedDefault = '0.00%'; assert.deepEqual(numberDefault, expectedDefault); done(); }); it('should return the now date', function (done) { var date = formatter.date(); assert.ok(date); done(); }); it('should format a date', function (done) { var date = formatter.date('2015-03-20T07:56:00.123Z'); var expected = '2015-03-20 +00:00'; assert.equal(date, expected); done(); }); it('should format a date by passing an invalid value', function (done) { var date = formatter.date('2015-13-20T07:56:00.123Z'); var expected = 'Invalid date'; assert.deepEqual(date, expected); done(); }); it('should format a date time', function (done) { var date = formatter.dateTime('2015-03-20T20:00:00.123Z'); var expected = '2015-03-20T20:00:00 +00:00'; assert.equal(date, expected); done(); }); it('should format a date time by passing an invalid value', function (done) { var date = formatter.dateTime('2015-03-20T20:00:70 Z'); var expected = 'Invalid date'; assert.deepEqual(date, expected); done(); }); it('should format by truncating', function (done) { var long = 'This is a long string that should be truncated...This is a long string that should be truncated...lets make it a bit longer...and a bit longer...'; var truncatedDefault = formatter.truncate(long); assert.notEqual(truncatedDefault, null); var truncate = formatter.truncate(long, 20); assert.notEqual(truncate, null); var truncateNothing = formatter.truncate(); assert.notEqual(truncateNothing, null); done(); }); it('should format using NA', function (done) { var replace = formatter.NA(undefined); assert.equal(replace, 'NA'); var dontReplace = formatter.NA('Dont replace me!'); assert.equal(dontReplace, 'Dont replace me!'); done(); }); it('should format using ND', function (done) { var replace = formatter.ND(undefined); assert.equal(replace, 'ND'); var dontReplace = formatter.ND('Dont replace me!'); assert.equal(dontReplace, 'Dont replace me!'); done(); }); });