From baceffce56850034d904b6ed0d3685221a0661f9 Mon Sep 17 00:00:00 2001 From: Abhas Bhattacharya Date: Mon, 2 Apr 2018 10:45:00 +0530 Subject: [PATCH] Add ts-jest and jest tests for utils --- package.json | 1 + src/Utils/index.test.ts | 43 +++++++++++++++++++++++++++++++++++++++++ yarn.lock | 43 ++++++++++++++++++++++++++++++++++++++--- 3 files changed, 84 insertions(+), 3 deletions(-) create mode 100644 src/Utils/index.test.ts diff --git a/package.json b/package.json index 206cf82..c79359c 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@types/node": "^9.6.0", "@types/react": "^16.0.41", "@types/react-dom": "^16.0.4", + "ts-jest": "^22.4.2", "typescript": "^2.7.2" } } diff --git a/src/Utils/index.test.ts b/src/Utils/index.test.ts new file mode 100644 index 0000000..8d404c1 --- /dev/null +++ b/src/Utils/index.test.ts @@ -0,0 +1,43 @@ +import * as moment from 'moment-timezone'; +import { Utils, IndiaTZName } from './utils'; + +test('createTodayDateInIndiaTZ creates in India tz', () => { + const todayWithUtils = Utils.createTodayDateInIndiaTZ(); + expect(todayWithUtils.tz().toLowerCase()).toBe(IndiaTZName.toLowerCase()); +}); + +test('checkSameDayInSameTZ returns true for same day', () => { + const tomorrow = moment.tz().add(1, 'd'); + const tomorrow2 = moment.tz().add(2, 'd').subtract(1, 'd'); + + expect(Utils.checkSameDayInSameTZ(tomorrow, tomorrow)).toBe(true); + expect(Utils.checkSameDayInSameTZ(tomorrow, tomorrow2)).toBe(true); +}); + +test('numberToMaxFixed removes zeroes after decimals', () => { + const testNumber = 20.00; + + expect(testNumber.toFixed(3)).not.toBe('20'); + expect(Utils.numberToMaxFixed(testNumber, 3)).toBe('20'); +}); + +test('numberToMaxFixed works like number.ToFixed for non-zero after decimal numbers', () => { + const testNumber = 20.1234; + + expect(testNumber.toFixed(3)).toBe('20.123'); + expect(Utils.numberToMaxFixed(testNumber, 3)).toBe('20.123'); +}); + +test('stringToNormalCase returns normal case string for non-empty string', () => { + const testString = 'hello there'; + const expectedString = 'Hello there'; + + expect(Utils.stringToNormalCase(testString)).toBe(expectedString); +}); + +test('stringToNormalCase returns empty string for empty string', () => { + const testString = ''; + const expectedString = ''; + + expect(Utils.stringToNormalCase(testString)).toBe(expectedString); +}); \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 37e0574..9482bd4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -709,7 +709,7 @@ babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015 babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1, babel-plugin-transform-es2015-modules-commonjs@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" dependencies: @@ -909,7 +909,7 @@ babel-preset-flow@^6.23.0: dependencies: babel-plugin-transform-flow-strip-types "^6.22.0" -babel-preset-jest@^22.0.1, babel-preset-jest@^22.4.3: +babel-preset-jest@^22.0.1, babel-preset-jest@^22.4.0, babel-preset-jest@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.4.3.tgz#e92eef9813b7026ab4ca675799f37419b5a44156" dependencies: @@ -3834,7 +3834,7 @@ jest-cli@^22.1.4: which "^1.2.12" yargs "^10.0.3" -jest-config@^22.0.1, jest-config@^22.4.3: +jest-config@^22.0.1, jest-config@^22.4.2, jest-config@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-22.4.3.tgz#0e9d57db267839ea31309119b41dc2fa31b76403" dependencies: @@ -6840,6 +6840,20 @@ ts-jest@22.0.1: source-map-support "^0.5.0" yargs "^10.0.3" +ts-jest@^22.4.2: + version "22.4.2" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-22.4.2.tgz#2137bc0899b14dfb1d58257ee10b18ab8a2d92c5" + dependencies: + babel-core "^6.26.0" + babel-plugin-istanbul "^4.1.4" + babel-plugin-transform-es2015-modules-commonjs "^6.26.0" + babel-preset-jest "^22.4.0" + cpx "^1.5.0" + fs-extra "4.0.3" + jest-config "^22.4.2" + pkg-dir "^2.0.0" + yargs "^11.0.0" + ts-loader@^2.3.7: version "2.3.7" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-2.3.7.tgz#a9028ced473bee12f28a75f9c5b139979d33f2fc" @@ -7465,6 +7479,12 @@ yargs-parser@^8.1.0: dependencies: camelcase "^4.1.0" +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + dependencies: + camelcase "^4.1.0" + yargs@^10.0.3: version "10.1.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" @@ -7482,6 +7502,23 @@ yargs@^10.0.3: y18n "^3.2.1" yargs-parser "^8.1.0" +yargs@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^9.0.2" + yargs@^6.6.0: version "6.6.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"