Initial commit

This commit is contained in:
zhongjin
2020-06-15 10:58:47 +08:00
commit 4f1dfe7564
8590 changed files with 1516878 additions and 0 deletions
@@ -0,0 +1,82 @@
var analysisDefinitionNodeIds = require('builder/value-objects/analysis-node-ids');
describe('value-objects/analysis-node-ids', function () {
describe('.next', function () {
it('should generate a new id for a given source id', function () {
expect(analysisDefinitionNodeIds.next('a0')).toEqual('a1');
expect(analysisDefinitionNodeIds.next('a123')).toEqual('a124');
expect(analysisDefinitionNodeIds.next('z9000')).toEqual('z9001');
expect(analysisDefinitionNodeIds.next('zab9')).toEqual('zab10');
});
it('should generate new id starting from 0 if no sequence number is given', function () {
expect(analysisDefinitionNodeIds.next('a')).toEqual('a0');
expect(analysisDefinitionNodeIds.next('x')).toEqual('x0');
});
it('should throw an error if given invalid source id', function () {
expect(function () { analysisDefinitionNodeIds.next('A1'); }).toThrow();
expect(function () { analysisDefinitionNodeIds.next('1X2'); }).toThrow();
expect(function () { analysisDefinitionNodeIds.next(); }).toThrow();
expect(function () { analysisDefinitionNodeIds.next(''); }).toThrow();
expect(function () { analysisDefinitionNodeIds.next(123); }).toThrow();
expect(function () { analysisDefinitionNodeIds.next('123'); }).toThrow();
expect(function () { analysisDefinitionNodeIds.next(true); }).toThrow();
expect(function () { analysisDefinitionNodeIds.next({}); }).toThrow();
});
});
describe('.prev', function () {
it('should not allow to go further than 0', function () {
expect(analysisDefinitionNodeIds.prev('a0')).toEqual('a0');
});
it('should generate a new id for a given source id', function () {
expect(analysisDefinitionNodeIds.prev('a123')).toEqual('a122');
expect(analysisDefinitionNodeIds.prev('z9000')).toEqual('z8999');
expect(analysisDefinitionNodeIds.prev('zab9')).toEqual('zab8');
});
it('should generate new id starting from 0 if no sequence number is given', function () {
expect(analysisDefinitionNodeIds.prev('a')).toEqual('a0');
expect(analysisDefinitionNodeIds.prev('x')).toEqual('x0');
});
it('should throw an error if given invalid source id', function () {
expect(function () { analysisDefinitionNodeIds.prev('A1'); }).toThrow();
expect(function () { analysisDefinitionNodeIds.prev('1X2'); }).toThrow();
expect(function () { analysisDefinitionNodeIds.prev(); }).toThrow();
expect(function () { analysisDefinitionNodeIds.prev(''); }).toThrow();
expect(function () { analysisDefinitionNodeIds.prev(123); }).toThrow();
expect(function () { analysisDefinitionNodeIds.prev('123'); }).toThrow();
expect(function () { analysisDefinitionNodeIds.prev(true); }).toThrow();
expect(function () { analysisDefinitionNodeIds.prev({}); }).toThrow();
});
});
describe('.letter', function () {
it('should return the letter from an id', function () {
expect(analysisDefinitionNodeIds.letter('a0')).toEqual('a');
expect(analysisDefinitionNodeIds.letter('a123')).toEqual('a');
expect(analysisDefinitionNodeIds.letter('z9000')).toEqual('z');
expect(analysisDefinitionNodeIds.letter('zab9')).toEqual('zab');
});
it('should return an empty string for invalid ids', function () {
expect(analysisDefinitionNodeIds.letter('')).toEqual('');
expect(analysisDefinitionNodeIds.letter(null)).toEqual('');
expect(analysisDefinitionNodeIds.letter(undefined)).toEqual('');
expect(analysisDefinitionNodeIds.letter(false)).toEqual('');
expect(analysisDefinitionNodeIds.letter({})).toEqual('');
expect(analysisDefinitionNodeIds.letter('"other_username".secondary_table_that_might_look_like_this')).toEqual('');
});
});
describe('.changeLetter', function () {
it('should return a new id with changed letter', function () {
expect(analysisDefinitionNodeIds.changeLetter('a0', 'b')).toEqual('b0');
expect(analysisDefinitionNodeIds.changeLetter('a1', 'c')).toEqual('c1');
expect(analysisDefinitionNodeIds.changeLetter('cd101', 'd')).toEqual('d101');
});
});
});
@@ -0,0 +1,57 @@
var DistanceConverter = require('builder/value-objects/distance-converter');
describe('value-objects/distance-converter', function () {
it('should have a set of static distance options', function () {
expect(DistanceConverter.OPTIONS).toBeDefined();
});
describe('.toMeters', function () {
it('should return the corresponding meters to the given val and distance', function () {
expect(DistanceConverter.toMeters(3, 'kilometers')).toEqual(3000);
expect(DistanceConverter.toMeters('3', 'kilometers')).toEqual(3000);
expect(parseInt(DistanceConverter.toMeters(3, 'miles'), 10)).toEqual(4828);
expect(parseInt(DistanceConverter.toMeters('3', 'miles'), 10)).toEqual(4828);
expect(DistanceConverter.toMeters(3, 'meters')).toEqual(3);
expect(DistanceConverter.toMeters('3', 'meters')).toEqual(3);
expect(DistanceConverter.toMeters(0, 'meters')).toEqual(0);
});
it('should throw error if val is invalid', function () {
expect(function () { DistanceConverter.toMeters(null, 'meters'); }).toThrowError(/required.*number/);
expect(function () { DistanceConverter.toMeters('', 'meters'); }).toThrowError(/required.*number/);
expect(function () { DistanceConverter.toMeters('WAT', 'meters'); }).toThrowError(/required.*number/);
});
it('should throw error if distance is invalid', function () {
expect(function () { DistanceConverter.toMeters(3, 'lightyears'); }).toThrowError(/meters, /);
});
});
describe('.toDistance', function () {
it('should return the corresponding meters to the given val and distance', function () {
expect(DistanceConverter.toDistance(3000, 'kilometers')).toEqual(3);
expect(DistanceConverter.toDistance('3000', 'kilometers')).toEqual(3);
expect(parseInt(DistanceConverter.toDistance(4828.02, 'miles'), 10)).toEqual(3);
expect(parseInt(DistanceConverter.toDistance('4828.02', 'miles'), 10)).toEqual(3);
expect(DistanceConverter.toDistance(3, 'meters')).toEqual(3);
expect(DistanceConverter.toDistance('3', 'meters')).toEqual(3);
expect(DistanceConverter.toDistance(0, 'meters')).toEqual(0);
});
it('should throw error if val is invalid', function () {
expect(function () { DistanceConverter.toDistance(null, 'meters'); }).toThrowError(/required/);
expect(function () { DistanceConverter.toDistance('', 'meters'); }).toThrowError(/required/);
expect(function () { DistanceConverter.toDistance('WAT', 'meters'); }).toThrowError(/required/);
});
it('should throw error if distance is invalid', function () {
expect(function () { DistanceConverter.toDistance(3, 'lightyears'); }).toThrowError(/meters, /);
});
});
});