UNPKG

@ionic/app-scripts

Version:
322 lines (321 loc) 14.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var errors_1 = require("./errors"); var helpers = require("./helpers"); var originalEnv = null; describe('helpers', function () { beforeEach(function () { originalEnv = process.env; process.env = {}; }); afterEach(function () { process.env = originalEnv; }); describe('getIntPropertyValue', function () { it('should return an int', function () { // arrange var propertyName = 'test'; var propertyValue = '3000'; process.env[propertyName] = propertyValue; // act var result = helpers.getIntPropertyValue(propertyName); // assert expect(result).toEqual(3000); }); it('should round to an int', function () { // arrange var propertyName = 'test'; var propertyValue = '3000.03'; process.env[propertyName] = propertyValue; // act var result = helpers.getIntPropertyValue(propertyName); // assert expect(result).toEqual(3000); }); it('should round to a NaN', function () { // arrange var propertyName = 'test'; var propertyValue = 'tacos'; process.env[propertyName] = propertyValue; // act var result = helpers.getIntPropertyValue(propertyName); // assert expect(result).toEqual(NaN); }); }); describe('getBooleanPropertyValue', function () { beforeEach(function () { originalEnv = process.env; process.env = {}; }); afterEach(function () { process.env = originalEnv; }); it('should return true when value is "true"', function () { // arrange var propertyName = 'test'; var propertyValue = 'true'; process.env[propertyName] = propertyValue; // act var result = helpers.getBooleanPropertyValue(propertyName); // assert expect(result).toEqual(true); }); it('should return false when value is undefined/null', function () { // arrange var propertyName = 'test'; // act var result = helpers.getBooleanPropertyValue(propertyName); // assert expect(result).toEqual(false); }); it('should return false when value is not "true"', function () { // arrange var propertyName = 'test'; var propertyValue = 'taco'; process.env[propertyName] = propertyValue; // act var result = helpers.getBooleanPropertyValue(propertyName); // assert expect(result).toEqual(false); }); }); describe('processStatsImpl', function () { it('should convert object graph to known module map', function () { // arrange var moduleOne = '/Users/noone/myModuleOne.js'; var moduleTwo = '/Users/noone/myModuleTwo.js'; var moduleThree = '/Users/noone/myModuleThree.js'; var moduleFour = '/Users/noone/myModuleFour.js'; var objectGraph = { modules: [ { identifier: moduleOne, reasons: [ { moduleIdentifier: moduleTwo }, { moduleIdentifier: moduleThree } ] }, { identifier: moduleTwo, reasons: [ { moduleIdentifier: moduleThree } ] }, { identifier: moduleThree, reasons: [ { moduleIdentifier: moduleOne } ] }, { identifier: moduleFour, reasons: [] } ] }; // act var result = helpers.processStatsImpl(objectGraph); // assert var setOne = result.get(moduleOne); expect(setOne.has(moduleTwo)).toBeTruthy(); expect(setOne.has(moduleThree)).toBeTruthy(); var setTwo = result.get(moduleTwo); expect(setTwo.has(moduleThree)).toBeTruthy(); var setThree = result.get(moduleThree); expect(setThree.has(moduleOne)).toBeTruthy(); var setFour = result.get(moduleFour); expect(setFour.size).toEqual(0); }); }); describe('ensureSuffix', function () { it('should not include the suffix of a string that already has the suffix', function () { expect(helpers.ensureSuffix('dan dan the sunshine man', ' man')).toEqual('dan dan the sunshine man'); }); it('should ensure the suffix of a string without the suffix', function () { expect(helpers.ensureSuffix('dan dan the sunshine', ' man')).toEqual('dan dan the sunshine man'); }); }); describe('removeSuffix', function () { it('should remove the suffix of a string that has the suffix', function () { expect(helpers.removeSuffix('dan dan the sunshine man', ' man')).toEqual('dan dan the sunshine'); }); it('should do nothing if the string does not have the suffix', function () { expect(helpers.removeSuffix('dan dan the sunshine man', ' woman')).toEqual('dan dan the sunshine man'); }); }); describe('replaceAll', function () { it('should replace a variable', function () { expect(helpers.replaceAll('hello $VAR world', '$VAR', 'my')).toEqual('hello my world'); }); it('should replace a variable with newlines', function () { expect(helpers.replaceAll('hello\n $VARMORETEXT\n world', '$VAR', 'NO')).toEqual('hello\n NOMORETEXT\n world'); }); it('should replace a variable and handle undefined', function () { expect(helpers.replaceAll('hello $VAR world', '$VAR', undefined)).toEqual('hello world'); }); }); describe('buildErrorToJson', function () { it('should return a pojo', function () { var buildError = new errors_1.BuildError('message1'); buildError.name = 'name1'; buildError.stack = 'stack1'; buildError.isFatal = true; buildError.hasBeenLogged = false; var object = helpers.buildErrorToJson(buildError); expect(object.message).toEqual('message1'); expect(object.name).toEqual(buildError.name); expect(object.stack).toEqual(buildError.stack); expect(object.isFatal).toEqual(buildError.isFatal); expect(object.hasBeenLogged).toEqual(buildError.hasBeenLogged); }); }); describe('upperCaseFirst', function () { it('should capitalize a one character string', function () { var result = helpers.upperCaseFirst('t'); expect(result).toEqual('T'); }); it('should capitalize the first character of string', function () { var result = helpers.upperCaseFirst('taco'); expect(result).toEqual('Taco'); }); }); describe('removeCaseFromString', function () { var map = new Map(); map.set('test', 'test'); map.set('TEST', 'test'); map.set('testString', 'test string'); map.set('testString123', 'test string123'); map.set('testString_1_2_3', 'test string 1 2 3'); map.set('x_256', 'x 256'); map.set('anHTMLTag', 'an html tag'); map.set('ID123String', 'id123 string'); map.set('Id123String', 'id123 string'); map.set('foo bar123', 'foo bar123'); map.set('a1bStar', 'a1b star'); map.set('CONSTANT_CASE', 'constant case'); map.set('CONST123_FOO', 'const123 foo'); map.set('FOO_bar', 'foo bar'); map.set('dot.case', 'dot case'); map.set('path/case', 'path case'); map.set('snake_case', 'snake case'); map.set('snake_case123', 'snake case123'); map.set('snake_case_123', 'snake case 123'); map.set('"quotes"', 'quotes'); map.set('version 0.45.0', 'version 0 45 0'); map.set('version 0..78..9', 'version 0 78 9'); map.set('version 4_99/4', 'version 4 99 4'); map.set('amazon s3 data', 'amazon s3 data'); map.set('foo_13_bar', 'foo 13 bar'); map.forEach(function (value, key) { var result = helpers.removeCaseFromString(key); expect(result).toEqual(value); }); }); describe('sentenceCase', function () { it('should lower case a single word', function () { var resultOne = helpers.sentenceCase('test'); var resultTwo = helpers.sentenceCase('TEST'); expect(resultOne).toEqual('Test'); expect(resultTwo).toEqual('Test'); }); it('should sentence case regular sentence cased strings', function () { var resultOne = helpers.sentenceCase('test string'); var resultTwo = helpers.sentenceCase('Test String'); expect(resultOne).toEqual('Test string'); expect(resultTwo).toEqual('Test string'); }); it('should sentence case non-alphanumeric separators', function () { var resultOne = helpers.sentenceCase('dot.case'); var resultTwo = helpers.sentenceCase('path/case'); expect(resultOne).toEqual('Dot case'); expect(resultTwo).toEqual('Path case'); }); }); describe('camelCase', function () { it('should lower case a single word', function () { var resultOne = helpers.camelCase('test'); var resultTwo = helpers.camelCase('TEST'); expect(resultOne).toEqual('test'); expect(resultTwo).toEqual('test'); }); it('should camel case regular sentence cased strings', function () { expect(helpers.camelCase('test string')).toEqual('testString'); expect(helpers.camelCase('Test String')).toEqual('testString'); }); it('should camel case non-alphanumeric separators', function () { expect(helpers.camelCase('dot.case')).toEqual('dotCase'); expect(helpers.camelCase('path/case')).toEqual('pathCase'); }); it('should underscore periods inside numbers', function () { expect(helpers.camelCase('version 1.2.10')).toEqual('version_1_2_10'); expect(helpers.camelCase('version 1.21.0')).toEqual('version_1_21_0'); }); it('should camel case pascal cased strings', function () { expect(helpers.camelCase('TestString')).toEqual('testString'); }); it('should camel case non-latin strings', function () { expect(helpers.camelCase('simple éxample')).toEqual('simpleÉxample'); }); }); describe('paramCase', function () { it('should param case a single word', function () { expect(helpers.paramCase('test')).toEqual('test'); expect(helpers.paramCase('TEST')).toEqual('test'); }); it('should param case regular sentence cased strings', function () { expect(helpers.paramCase('test string')).toEqual('test-string'); expect(helpers.paramCase('Test String')).toEqual('test-string'); }); it('should param case non-alphanumeric separators', function () { expect(helpers.paramCase('dot.case')).toEqual('dot-case'); expect(helpers.paramCase('path/case')).toEqual('path-case'); }); it('should param case param cased strings', function () { expect(helpers.paramCase('TestString')).toEqual('test-string'); expect(helpers.paramCase('testString1_2_3')).toEqual('test-string1-2-3'); expect(helpers.paramCase('testString_1_2_3')).toEqual('test-string-1-2-3'); }); it('should param case non-latin strings', function () { expect(helpers.paramCase('My Entrée')).toEqual('my-entrée'); }); }); describe('pascalCase', function () { it('should pascal case a single word', function () { expect(helpers.pascalCase('test')).toEqual('Test'); expect(helpers.pascalCase('TEST')).toEqual('Test'); }); it('should pascal case regular sentence cased strings', function () { expect(helpers.pascalCase('test string')).toEqual('TestString'); expect(helpers.pascalCase('Test String')).toEqual('TestString'); }); it('should pascal case non-alphanumeric separators', function () { expect(helpers.pascalCase('dot.case')).toEqual('DotCase'); expect(helpers.pascalCase('path/case')).toEqual('PathCase'); }); it('should pascal case pascal cased strings', function () { expect(helpers.pascalCase('TestString')).toEqual('TestString'); }); }); describe('snakeCase', function () { it('should convert the phrase to use underscores', function () { expect(helpers.snakeCase('taco bell')).toEqual('taco_bell'); }); }); describe('constantCase', function () { it('should capitalize and separate words by underscore', function () { expect(helpers.constantCase('taco bell')).toEqual('TACO_BELL'); }); it('should convert camel case to correct case', function () { expect(helpers.constantCase('TacoBell')).toEqual('TACO_BELL'); }); }); });