@webgap/format-utils
Version:
Common formatter utilities to handle numbers, dates, times, etc.
139 lines (122 loc) • 4.58 kB
JavaScript
/**
* (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();
});
});