From 8a1bd8d8bd143599562274ee62b561c7a750a456 Mon Sep 17 00:00:00 2001 From: Tsvetomir Tsonev Date: Fri, 3 Jan 2025 10:39:50 +0200 Subject: [PATCH] chore: lint --- locale-tests/utils.js | 2 +- src/cldr/currency.js | 2 +- test/cldr-data-compat.test.js | 316 ++++++++++++++--------------- test/cldr.test.js | 316 ++++++++++++++--------------- test/dates.test.js | 283 +++++++++++++------------- test/format.test.js | 14 +- test/numbers.test.js | 371 +++++++++++++++++----------------- 7 files changed, 641 insertions(+), 663 deletions(-) diff --git a/locale-tests/utils.js b/locale-tests/utils.js index 870a191f..9939f24c 100644 --- a/locale-tests/utils.js +++ b/locale-tests/utils.js @@ -17,6 +17,6 @@ export function clean() { export const LOCALES = fs.readdirSync(path.join('./node_modules', 'cldr-localenames-full', 'main')) - .filter(locale => locale !== 'root'); + .filter(locale => locale !== 'root'); export const NO_CURRENCY_LOCALE = 'es-419'; diff --git a/src/cldr/currency.js b/src/cldr/currency.js index c1fcb896..ba51fc40 100644 --- a/src/cldr/currency.js +++ b/src/cldr/currency.js @@ -3,7 +3,7 @@ import { errors } from '../errors'; import localeTerritory from './territory'; import parseRangeDate from './parse-range-date'; -/* eslint-disable consistent-return */ + const { NoCurrency, diff --git a/test/cldr-data-compat.test.js b/test/cldr-data-compat.test.js index 4133d810..c9754fcc 100644 --- a/test/cldr-data-compat.test.js +++ b/test/cldr-data-compat.test.js @@ -12,7 +12,7 @@ import { numberSymbols, setData, weekendRange - } from '../src/cldr'; +} from '../src/cldr'; import { errors } from '../src/errors'; const likelySubtags = require("cldr-data/supplemental/likelySubtags.json"); @@ -28,11 +28,11 @@ load(likelySubtags, weekData, currencyData, numbers, currencies, calendar, dateF describe('loads legacy cldr-data', () => { it('should set territory', () => { - expect(cldr.bg.territory).toEqual("BG"); + expect(cldr.bg.territory).toBe("BG"); }); it('should set name', () => { - expect(cldr.bg.name).toEqual("bg"); + expect(cldr.bg.name).toBe("bg"); }); it('should set supplemental data', () => { @@ -41,7 +41,7 @@ describe('loads legacy cldr-data', () => { expect(cldr.supplemental.weekData.firstDay).toBeDefined(); expect(cldr.supplemental.weekData.weekendStart).toBeDefined(); expect(cldr.supplemental.weekData.weekendEnd).toBeDefined(); - expect(cldr.supplemental.weekData.minDays).not.toBeDefined(); + expect(cldr.supplemental.weekData.minDays).toBeUndefined(); }); }); @@ -49,35 +49,35 @@ describe('load numbers', () => { it('should set symbols', () => { const symbols = cldr.bg.numbers.symbols; - expect(symbols.decimal).toEqual(","); - expect(symbols.percentSign).toEqual("%"); + expect(symbols.decimal).toBe(","); + expect(symbols.percentSign).toBe("%"); }); it('should set decimal pattern', () => { const decimal = cldr.bg.numbers.decimal; - expect(decimal.patterns[0]).toEqual("n"); - expect(decimal.groupSize.length).toEqual(1); - expect(decimal.groupSize[0]).toEqual(3); + expect(decimal.patterns[0]).toBe("n"); + expect(decimal.groupSize).toHaveLength(1); + expect(decimal.groupSize[0]).toBe(3); }); it('should set currency pattern', () => { const currency = cldr.bg.numbers.currency; - expect(currency.patterns[0]).toEqual("n $"); - expect(currency.groupSize.length).toEqual(1); - expect(currency.groupSize[0]).toEqual(3); + expect(currency.patterns[0]).toBe("n $"); + expect(currency.groupSize).toHaveLength(1); + expect(currency.groupSize[0]).toBe(3); }); it('should set currency unit patterns', () => { const currency = cldr.bg.numbers.currency; - expect(currency["unitPattern-count-one"]).toEqual("n $"); - expect(currency["unitPattern-count-other"]).toEqual("n $"); + expect(currency["unitPattern-count-one"]).toBe("n $"); + expect(currency["unitPattern-count-other"]).toBe("n $"); }); it('should set percent pattern', () => { const percent = cldr.bg.numbers.percent; - expect(percent.patterns[0]).toEqual("n%"); - expect(percent.groupSize.length).toEqual(1); - expect(percent.groupSize[0]).toEqual(3); + expect(percent.patterns[0]).toBe("n%"); + expect(percent.groupSize).toHaveLength(1); + expect(percent.groupSize[0]).toBe(3); }); it('preserve pattern spaces', () => { @@ -101,11 +101,11 @@ describe('load numbers', () => { }); const info = cldr.patternSpaces.numbers; - expect(info.decimal.patterns[0]).toEqual("foo n bar"); - expect(info.decimal.patterns[1]).toEqual("bar n foo "); - expect(info.currency.patterns[0]).toEqual("$ n bar"); - expect(info.accounting.patterns[0]).toEqual("foo n $"); - expect(info.percent.patterns[0]).toEqual("% n bar"); + expect(info.decimal.patterns[0]).toBe("foo n bar"); + expect(info.decimal.patterns[1]).toBe("bar n foo "); + expect(info.currency.patterns[0]).toBe("$ n bar"); + expect(info.accounting.patterns[0]).toBe("foo n $"); + expect(info.percent.patterns[0]).toBe("% n bar"); }); describe('load currencies', () => { @@ -133,26 +133,26 @@ describe('load numbers', () => { describe('load calendar', () => { it('should set gmt formats', () => { const calendar = cldr.bg.calendar; - expect(calendar.gmtFormat).toEqual("Гринуич{0}"); - expect(calendar.gmtZeroFormat).toEqual("Гринуич"); + expect(calendar.gmtFormat).toBe("Гринуич{0}"); + expect(calendar.gmtZeroFormat).toBe("Гринуич"); }); it('should set predefined patterns', () => { const patterns = cldr.bg.calendar.patterns; - expect(patterns.d).toEqual("d.MM.y 'г'."); - expect(patterns.D).toEqual("EEEE, d MMMM y 'г'."); - expect(patterns.F).toEqual("EEEE, d MMMM y 'г'. H:mm:ss"); - expect(patterns.g).toEqual("d.MM.y 'г'. H:mm"); - expect(patterns.G).toEqual("d.MM.y 'г'. H:mm:ss"); - expect(patterns.t).toEqual("H:mm"); - expect(patterns.T).toEqual("H:mm:ss"); + expect(patterns.d).toBe("d.MM.y 'г'."); + expect(patterns.D).toBe("EEEE, d MMMM y 'г'."); + expect(patterns.F).toBe("EEEE, d MMMM y 'г'. H:mm:ss"); + expect(patterns.g).toBe("d.MM.y 'г'. H:mm"); + expect(patterns.G).toBe("d.MM.y 'г'. H:mm:ss"); + expect(patterns.t).toBe("H:mm"); + expect(patterns.T).toBe("H:mm:ss"); }); it('should set standard patterns', () => { const patterns = cldr.bg.calendar.patterns; - expect(patterns.s).toEqual("yyyy'-'MM'-'dd'T'HH':'mm':'ss"); - expect(patterns.u).toEqual("yyyy'-'MM'-'dd HH':'mm':'ss'Z'"); + expect(patterns.s).toBe("yyyy'-'MM'-'dd'T'HH':'mm':'ss"); + expect(patterns.u).toBe("yyyy'-'MM'-'dd HH':'mm':'ss'Z'"); }); it('should set dateTimeFormats', () => { @@ -240,9 +240,9 @@ describe('load calendar', () => { const dateFields = cldr.bg.calendar.dateFields.era; expect(dateFields.wide).toBeDefined(); - expect(dateFields.wide).toEqual('ера'); - expect(dateFields.short).toEqual('ера'); - expect(dateFields.narrow).toEqual('ера'); + expect(dateFields.wide).toBe('ера'); + expect(dateFields.short).toBe('ера'); + expect(dateFields.narrow).toBe('ера'); }); it('should set year display name', () => { @@ -337,22 +337,22 @@ describe('load calendar', () => { describe('localeInfo', () => { it('should return info by language', () => { const info = localeInfo('bg'); - expect(info.name).toEqual('bg'); + expect(info.name).toBe('bg'); }); it('should return info by language and script', () => { const info = localeInfo('bg-Cyrl'); - expect(info.name).toEqual('bg'); + expect(info.name).toBe('bg'); }); it('should return info by language and territory', () => { const info = localeInfo('bg-BG'); - expect(info.name).toEqual('bg'); + expect(info.name).toBe('bg'); }); it('should return info by language, script and territory', () => { const info = localeInfo('bg-Cyrl-BG'); - expect(info.name).toEqual('bg'); + expect(info.name).toBe('bg'); }); it('should throw an error if matching locale is no available', () => { @@ -415,12 +415,12 @@ describe('dateFormatNames', () => { it('should return stand-alone names', () => { const names = dateFormatNames('en', { type: 'dayPeriods', nameType: "narrow", standAlone: true }); - expect(names.pm).toEqual('PM'); + expect(names.pm).toBe('PM'); }); it('should return lower names', () => { const names = dateFormatNames('en', { type: 'dayPeriods', nameType: "narrow", standAlone: true, lower: true }); - expect(names.pm).toEqual('pm'); + expect(names.pm).toBe('pm'); }); }); @@ -440,121 +440,115 @@ describe('dateFieldName', () => { }); it('should return placeholder for the era type', () => { - expect(dateFieldName({ type: 'era', nameType: 'wide' })).toEqual("era"); - expect(dateFieldName({ type: 'era', nameType: 'narrow' })).toEqual("era"); - expect(dateFieldName({ type: 'era', nameType: 'short' })).toEqual("era"); + expect(dateFieldName({ type: 'era', nameType: 'wide' })).toBe("era"); + expect(dateFieldName({ type: 'era', nameType: 'narrow' })).toBe("era"); + expect(dateFieldName({ type: 'era', nameType: 'short' })).toBe("era"); }); it('should return placeholder for the year type', () => { - expect(dateFieldName({ type: 'year', nameType: 'wide' })).toEqual("year"); - expect(dateFieldName({ type: 'year', nameType: 'narrow' })).toEqual("yr."); - expect(dateFieldName({ type: 'year', nameType: 'short' })).toEqual("yr."); + expect(dateFieldName({ type: 'year', nameType: 'wide' })).toBe("year"); + expect(dateFieldName({ type: 'year', nameType: 'narrow' })).toBe("yr."); + expect(dateFieldName({ type: 'year', nameType: 'short' })).toBe("yr."); }); it('should return placeholder for the quarter type', () => { - expect(dateFieldName({ type: 'quarter', nameType: 'wide' })).toEqual("quarter"); - expect(dateFieldName({ type: 'quarter', nameType: 'narrow' })).toEqual("qtr."); - expect(dateFieldName({ type: 'quarter', nameType: 'short' })).toEqual("qtr."); + expect(dateFieldName({ type: 'quarter', nameType: 'wide' })).toBe("quarter"); + expect(dateFieldName({ type: 'quarter', nameType: 'narrow' })).toBe("qtr."); + expect(dateFieldName({ type: 'quarter', nameType: 'short' })).toBe("qtr."); }); it('should return placeholder for the month type', () => { - expect(dateFieldName({ type: 'month', nameType: 'wide' })).toEqual("month"); - expect(dateFieldName({ type: 'month', nameType: 'narrow' })).toEqual("mo."); - expect(dateFieldName({ type: 'month', nameType: 'short' })).toEqual("mo."); - }); - - it('should return placeholder for the month type', () => { - expect(dateFieldName({ type: 'month', nameType: 'wide' })).toEqual("month"); - expect(dateFieldName({ type: 'month', nameType: 'narrow' })).toEqual("mo."); - expect(dateFieldName({ type: 'month', nameType: 'short' })).toEqual("mo."); + expect(dateFieldName({ type: 'month', nameType: 'wide' })).toBe("month"); + expect(dateFieldName({ type: 'month', nameType: 'narrow' })).toBe("mo."); + expect(dateFieldName({ type: 'month', nameType: 'short' })).toBe("mo."); }); it('should return placeholder for the week type', () => { - expect(dateFieldName({ type: 'week', nameType: 'wide' })).toEqual("week"); - expect(dateFieldName({ type: 'week', nameType: 'narrow' })).toEqual("wk."); - expect(dateFieldName({ type: 'week', nameType: 'short' })).toEqual("wk."); + expect(dateFieldName({ type: 'week', nameType: 'wide' })).toBe("week"); + expect(dateFieldName({ type: 'week', nameType: 'narrow' })).toBe("wk."); + expect(dateFieldName({ type: 'week', nameType: 'short' })).toBe("wk."); }); it('should return placeholder for the day type', () => { - expect(dateFieldName({ type: 'day', nameType: 'wide' })).toEqual("day"); - expect(dateFieldName({ type: 'day', nameType: 'narrow' })).toEqual("day"); - expect(dateFieldName({ type: 'day', nameType: 'short' })).toEqual("day"); + expect(dateFieldName({ type: 'day', nameType: 'wide' })).toBe("day"); + expect(dateFieldName({ type: 'day', nameType: 'narrow' })).toBe("day"); + expect(dateFieldName({ type: 'day', nameType: 'short' })).toBe("day"); }); it('should return localized placeholder for the day type', () => { - expect(dateFieldName({ type: 'day', nameType: 'wide' }, 'bg')).toEqual("ден"); - expect(dateFieldName({ type: 'day', nameType: 'narrow' }, 'bg')).toEqual("д"); - expect(dateFieldName({ type: 'day', nameType: 'short' }, 'bg')).toEqual("д"); + expect(dateFieldName({ type: 'day', nameType: 'wide' }, 'bg')).toBe("ден"); + expect(dateFieldName({ type: 'day', nameType: 'narrow' }, 'bg')).toBe("д"); + expect(dateFieldName({ type: 'day', nameType: 'short' }, 'bg')).toBe("д"); }); it('should return placeholder for the weekday type', () => { - expect(dateFieldName({ type: 'weekday', nameType: 'wide' })).toEqual("day of the week"); - expect(dateFieldName({ type: 'weekday', nameType: 'narrow' })).toEqual("day of wk."); - expect(dateFieldName({ type: 'weekday', nameType: 'short' })).toEqual("day of wk."); + expect(dateFieldName({ type: 'weekday', nameType: 'wide' })).toBe("day of the week"); + expect(dateFieldName({ type: 'weekday', nameType: 'narrow' })).toBe("day of wk."); + expect(dateFieldName({ type: 'weekday', nameType: 'short' })).toBe("day of wk."); }); it('should return localized placeholder for the weekday type', () => { - expect(dateFieldName({ type: 'weekday', nameType: 'wide' }, 'bg')).toEqual("ден от седмицата"); - expect(dateFieldName({ type: 'weekday', nameType: 'narrow' }, 'bg')).toEqual("ден от седм."); - expect(dateFieldName({ type: 'weekday', nameType: 'short' }, 'bg')).toEqual("ден от седм."); + expect(dateFieldName({ type: 'weekday', nameType: 'wide' }, 'bg')).toBe("ден от седмицата"); + expect(dateFieldName({ type: 'weekday', nameType: 'narrow' }, 'bg')).toBe("ден от седм."); + expect(dateFieldName({ type: 'weekday', nameType: 'short' }, 'bg')).toBe("ден от седм."); }); it('should return placeholder for the dayperiod type', () => { - expect(dateFieldName({ type: 'dayperiod', nameType: 'wide' })).toEqual("AM/PM"); - expect(dateFieldName({ type: 'dayperiod', nameType: 'narrow' })).toEqual("AM/PM"); - expect(dateFieldName({ type: 'dayperiod', nameType: 'short' })).toEqual("AM/PM"); + expect(dateFieldName({ type: 'dayperiod', nameType: 'wide' })).toBe("AM/PM"); + expect(dateFieldName({ type: 'dayperiod', nameType: 'narrow' })).toBe("AM/PM"); + expect(dateFieldName({ type: 'dayperiod', nameType: 'short' })).toBe("AM/PM"); }); it('should return localized placeholder for the dayperiod type', () => { - expect(dateFieldName({ type: 'dayperiod', nameType: 'wide' }, 'bg')).toEqual("пр.об./сл.об."); - expect(dateFieldName({ type: 'dayperiod', nameType: 'narrow' }, 'bg')).toEqual("пр.об./сл.об."); - expect(dateFieldName({ type: 'dayperiod', nameType: 'short' }, 'bg')).toEqual("пр.об./сл.об."); + expect(dateFieldName({ type: 'dayperiod', nameType: 'wide' }, 'bg')).toBe("пр.об./сл.об."); + expect(dateFieldName({ type: 'dayperiod', nameType: 'narrow' }, 'bg')).toBe("пр.об./сл.об."); + expect(dateFieldName({ type: 'dayperiod', nameType: 'short' }, 'bg')).toBe("пр.об./сл.об."); }); it('should return placeholder for hour type', () => { - expect(dateFieldName({ type: 'hour', nameType: 'wide' })).toEqual("hour"); - expect(dateFieldName({ type: 'hour', nameType: 'narrow' })).toEqual("hr."); - expect(dateFieldName({ type: 'hour', nameType: 'short' })).toEqual("hr."); + expect(dateFieldName({ type: 'hour', nameType: 'wide' })).toBe("hour"); + expect(dateFieldName({ type: 'hour', nameType: 'narrow' })).toBe("hr."); + expect(dateFieldName({ type: 'hour', nameType: 'short' })).toBe("hr."); }); it('should return localized placeholder for hour type', () => { - expect(dateFieldName({ type: 'hour', nameType: 'wide' }, 'bg')).toEqual("час"); - expect(dateFieldName({ type: 'hour', nameType: 'narrow' }, 'bg')).toEqual("ч"); - expect(dateFieldName({ type: 'hour', nameType: 'short' }, 'bg')).toEqual("ч"); + expect(dateFieldName({ type: 'hour', nameType: 'wide' }, 'bg')).toBe("час"); + expect(dateFieldName({ type: 'hour', nameType: 'narrow' }, 'bg')).toBe("ч"); + expect(dateFieldName({ type: 'hour', nameType: 'short' }, 'bg')).toBe("ч"); }); it('should return placeholder for minute type', () => { - expect(dateFieldName({ type: 'minute', nameType: 'wide' })).toEqual("minute"); - expect(dateFieldName({ type: 'minute', nameType: 'narrow' })).toEqual("min."); - expect(dateFieldName({ type: 'minute', nameType: 'short' })).toEqual("min."); + expect(dateFieldName({ type: 'minute', nameType: 'wide' })).toBe("minute"); + expect(dateFieldName({ type: 'minute', nameType: 'narrow' })).toBe("min."); + expect(dateFieldName({ type: 'minute', nameType: 'short' })).toBe("min."); }); it('should return placeholder for second type', () => { - expect(dateFieldName({ type: 'second', nameType: 'wide' })).toEqual("second"); - expect(dateFieldName({ type: 'second', nameType: 'narrow' })).toEqual("sec."); - expect(dateFieldName({ type: 'second', nameType: 'short' })).toEqual("sec."); + expect(dateFieldName({ type: 'second', nameType: 'wide' })).toBe("second"); + expect(dateFieldName({ type: 'second', nameType: 'narrow' })).toBe("sec."); + expect(dateFieldName({ type: 'second', nameType: 'short' })).toBe("sec."); }); it('should return placeholder for millisecond type', () => { - expect(dateFieldName({ type: 'millisecond', nameType: 'wide' })).toEqual("millisecond"); - expect(dateFieldName({ type: 'millisecond', nameType: 'narrow' })).toEqual("ms"); - expect(dateFieldName({ type: 'millisecond', nameType: 'short' })).toEqual("ms"); + expect(dateFieldName({ type: 'millisecond', nameType: 'wide' })).toBe("millisecond"); + expect(dateFieldName({ type: 'millisecond', nameType: 'narrow' })).toBe("ms"); + expect(dateFieldName({ type: 'millisecond', nameType: 'short' })).toBe("ms"); }); it('should return placeholder for zone type', () => { - expect(dateFieldName({ type: 'zone', nameType: 'wide' })).toEqual("time zone"); - expect(dateFieldName({ type: 'zone', nameType: 'narrow' })).toEqual("zone"); - expect(dateFieldName({ type: 'zone', nameType: 'short' })).toEqual("zone"); + expect(dateFieldName({ type: 'zone', nameType: 'wide' })).toBe("time zone"); + expect(dateFieldName({ type: 'zone', nameType: 'narrow' })).toBe("zone"); + expect(dateFieldName({ type: 'zone', nameType: 'short' })).toBe("zone"); }); it('should not support non-existent units of time as fieldName type', () => { - expect(dateFieldName({ type: 'turbosecond', nameType: 'wide' })).toEqual(undefined); - expect(dateFieldName({ type: 'turbosecond', nameType: 'narrow' })).toEqual(undefined); - expect(dateFieldName({ type: 'turbosecond', nameType: 'short' })).toEqual(undefined); + expect(dateFieldName({ type: 'turbosecond', nameType: 'wide' })).toBeUndefined(); + expect(dateFieldName({ type: 'turbosecond', nameType: 'narrow' })).toBeUndefined(); + expect(dateFieldName({ type: 'turbosecond', nameType: 'short' })).toBeUndefined(); }); it('should return wide placeholder by default', () => { - expect(dateFieldName({ type: 'year' })).toEqual('year'); + expect(dateFieldName({ type: 'year' })).toBe('year'); }); }); @@ -602,8 +596,8 @@ describe('localeCurrency', () => { }); it('should return default currency code for locale', () => { - expect(localeCurrency('en')).toEqual('USD'); - expect(localeCurrency('bg')).toEqual('BGN'); + expect(localeCurrency('en')).toBe('USD'); + expect(localeCurrency('bg')).toBe('BGN'); }); it('throws error if second parameter is true and there is no valid currency for the locale', () => { @@ -616,75 +610,75 @@ describe('localeCurrency', () => { it('returns still valid currency', () => { cldr.supplemental.currencyData.region.currencyTest = [ - { - "Foo": { - "_from": "1915-01-01" - } - }, { - "Bar": { - "_from": "1872-08-26", - "_to": "2002-05-15" + { + "Foo": { + "_from": "1915-01-01" + } + }, { + "Bar": { + "_from": "1872-08-26", + "_to": "2002-05-15" + } } - } ]; - expect(localeCurrency('currencyTest')).toEqual('Foo'); + expect(localeCurrency('currencyTest')).toBe('Foo'); }); it('returns latest still valid currency', () => { cldr.supplemental.currencyData.region.currencyTest = [ - { - "Foo": { - "_from": "1915-01-01" - } - }, { - "Bar": { - "_from": "1872-08-26" + { + "Foo": { + "_from": "1915-01-01" + } + }, { + "Bar": { + "_from": "1872-08-26" + } } - } ]; - expect(localeCurrency('currencyTest')).toEqual('Foo'); + expect(localeCurrency('currencyTest')).toBe('Foo'); }); it('returns latest valid until currency', () => { cldr.supplemental.currencyData.region.currencyTest = [ - { - "Foo": { - "_from": "1994-01-24", - "_to": "2002-05-15" - } - }, { - "Bar": { - "_from": "2003-02-04", - "_to": "2006-06-03" - } - }, { - "Baz": { - "_from": "2002-05-15", - "_to": "2006-06-03" + { + "Foo": { + "_from": "1994-01-24", + "_to": "2002-05-15" + } + }, { + "Bar": { + "_from": "2003-02-04", + "_to": "2006-06-03" + } + }, { + "Baz": { + "_from": "2002-05-15", + "_to": "2006-06-03" + } } - } ]; - expect(localeCurrency('currencyTest')).toEqual('Bar'); + expect(localeCurrency('currencyTest')).toBe('Bar'); }); it('ignores currencies with _tender equal to false', () => { cldr.supplemental.currencyData.region.currencyTest = [ - { - "Foo": { - "_from": "1915-01-01", - "_tender": "false" - } - }, { - "Bar": { - "_from": "1872-08-26" + { + "Foo": { + "_from": "1915-01-01", + "_tender": "false" + } + }, { + "Bar": { + "_from": "1872-08-26" + } } - } ]; - expect(localeCurrency('currencyTest')).toEqual('Bar'); + expect(localeCurrency('currencyTest')).toBe('Bar'); }); }); @@ -693,21 +687,21 @@ describe('currencyDisplay', () => { it('should return symbol by default', () => { expect(currencyDisplay('bg', { currency: 'BGN' - })).toEqual('лв.'); + })).toBe('лв.'); }); it('should return code', () => { expect(currencyDisplay("bg", { currency: 'BGN', currencyDisplay: "code" - })).toEqual('BGN'); + })).toBe('BGN'); }); it('should return displayName', () => { expect(currencyDisplay('bg', { currency: 'USD', currencyDisplay: 'displayName' - })).toEqual('щатски долара'); + })).toBe('щатски долара'); }); it('should return displayName based on value if passed', () => { @@ -715,20 +709,20 @@ describe('currencyDisplay', () => { currency: 'USD', currencyDisplay: 'displayName', value: 1 - })).toEqual('щатски долар'); + })).toBe('щатски долар'); - expect(currencyDisplay('bg', { + expect(currencyDisplay('bg', { currency: 'USD', currencyDisplay: 'displayName', value: 2 - })).toEqual('щатски долара'); + })).toBe('щатски долара'); }); it('should return narrow-symbol if available', () => { expect(currencyDisplay('bg', { currency: 'USD', currencyDisplay: 'symbol' - })).toEqual('$'); + })).toBe('$'); }); }); @@ -741,14 +735,14 @@ describe('currencyDisplays', () => { describe('currencyFractionOptions', () => { it('should return fraction options based on currencyData', () => { const options = currencyFractionOptions('TND'); - expect(options.minimumFractionDigits).toEqual(3); - expect(options.maximumFractionDigits).toEqual(3); + expect(options.minimumFractionDigits).toBe(3); + expect(options.maximumFractionDigits).toBe(3); }); it('should return default fraction options if no info is available', () => { const options = currencyFractionOptions('USD'); - expect(options.minimumFractionDigits).toEqual(2); - expect(options.maximumFractionDigits).toEqual(2); + expect(options.minimumFractionDigits).toBe(2); + expect(options.maximumFractionDigits).toBe(2); }); }); diff --git a/test/cldr.test.js b/test/cldr.test.js index 8961df5d..0a0a2178 100644 --- a/test/cldr.test.js +++ b/test/cldr.test.js @@ -12,7 +12,7 @@ import { numberSymbols, setData, weekendRange - } from '../src/cldr'; +} from '../src/cldr'; import { errors } from '../src/errors'; const likelySubtags = require("cldr-core/supplemental/likelySubtags.json"); @@ -28,11 +28,11 @@ load(likelySubtags, weekData, currencyData, numbers, currencies, calendar, dateF describe('load', () => { it('should set territory', () => { - expect(cldr.bg.territory).toEqual("BG"); + expect(cldr.bg.territory).toBe("BG"); }); it('should set name', () => { - expect(cldr.bg.name).toEqual("bg"); + expect(cldr.bg.name).toBe("bg"); }); it('should set supplemental data', () => { @@ -41,7 +41,7 @@ describe('load', () => { expect(cldr.supplemental.weekData.firstDay).toBeDefined(); expect(cldr.supplemental.weekData.weekendStart).toBeDefined(); expect(cldr.supplemental.weekData.weekendEnd).toBeDefined(); - expect(cldr.supplemental.weekData.minDays).not.toBeDefined(); + expect(cldr.supplemental.weekData.minDays).toBeUndefined(); }); }); @@ -96,35 +96,35 @@ describe('load numbers', () => { it('should set symbols', () => { const symbols = cldr.bg.numbers.symbols; - expect(symbols.decimal).toEqual(","); - expect(symbols.percentSign).toEqual("%"); + expect(symbols.decimal).toBe(","); + expect(symbols.percentSign).toBe("%"); }); it('should set decimal pattern', () => { const decimal = cldr.bg.numbers.decimal; - expect(decimal.patterns[0]).toEqual("n"); - expect(decimal.groupSize.length).toEqual(1); - expect(decimal.groupSize[0]).toEqual(3); + expect(decimal.patterns[0]).toBe("n"); + expect(decimal.groupSize).toHaveLength(1); + expect(decimal.groupSize[0]).toBe(3); }); it('should set currency pattern', () => { const currency = cldr.bg.numbers.currency; - expect(currency.patterns[0]).toEqual("n $"); - expect(currency.groupSize.length).toEqual(1); - expect(currency.groupSize[0]).toEqual(3); + expect(currency.patterns[0]).toBe("n $"); + expect(currency.groupSize).toHaveLength(1); + expect(currency.groupSize[0]).toBe(3); }); it('should set currency unit patterns', () => { const currency = cldr.bg.numbers.currency; - expect(currency["unitPattern-count-one"]).toEqual("n $"); - expect(currency["unitPattern-count-other"]).toEqual("n $"); + expect(currency["unitPattern-count-one"]).toBe("n $"); + expect(currency["unitPattern-count-other"]).toBe("n $"); }); it('should set percent pattern', () => { const percent = cldr.bg.numbers.percent; - expect(percent.patterns[0]).toEqual("n%"); - expect(percent.groupSize.length).toEqual(1); - expect(percent.groupSize[0]).toEqual(3); + expect(percent.patterns[0]).toBe("n%"); + expect(percent.groupSize).toHaveLength(1); + expect(percent.groupSize[0]).toBe(3); }); it('preserve pattern spaces', () => { @@ -148,11 +148,11 @@ describe('load numbers', () => { }); const info = cldr.patternSpaces.numbers; - expect(info.decimal.patterns[0]).toEqual("foo n bar"); - expect(info.decimal.patterns[1]).toEqual("bar n foo "); - expect(info.currency.patterns[0]).toEqual("$ n bar"); - expect(info.accounting.patterns[0]).toEqual("foo n $"); - expect(info.percent.patterns[0]).toEqual("% n bar"); + expect(info.decimal.patterns[0]).toBe("foo n bar"); + expect(info.decimal.patterns[1]).toBe("bar n foo "); + expect(info.currency.patterns[0]).toBe("$ n bar"); + expect(info.accounting.patterns[0]).toBe("foo n $"); + expect(info.percent.patterns[0]).toBe("% n bar"); }); describe('load currencies', () => { @@ -180,26 +180,26 @@ describe('load numbers', () => { describe('load calendar', () => { it('should set gmt formats', () => { const calendar = cldr.bg.calendar; - expect(calendar.gmtFormat).toEqual("Гринуич{0}"); - expect(calendar.gmtZeroFormat).toEqual("Гринуич"); + expect(calendar.gmtFormat).toBe("Гринуич{0}"); + expect(calendar.gmtZeroFormat).toBe("Гринуич"); }); it('should set predefined patterns', () => { const patterns = cldr.bg.calendar.patterns; - expect(patterns.d).toEqual("d.MM.y 'г'."); - expect(patterns.D).toEqual("EEEE, d MMMM y 'г'."); - expect(patterns.F).toEqual("EEEE, d MMMM y 'г'. H:mm:ss 'ч'."); - expect(patterns.g).toEqual("d.MM.y 'г'. H:mm 'ч'."); - expect(patterns.G).toEqual("d.MM.y 'г'. H:mm:ss 'ч'."); - expect(patterns.t).toEqual("H:mm 'ч'."); - expect(patterns.T).toEqual("H:mm:ss 'ч'."); + expect(patterns.d).toBe("d.MM.y 'г'."); + expect(patterns.D).toBe("EEEE, d MMMM y 'г'."); + expect(patterns.F).toBe("EEEE, d MMMM y 'г'. H:mm:ss 'ч'."); + expect(patterns.g).toBe("d.MM.y 'г'. H:mm 'ч'."); + expect(patterns.G).toBe("d.MM.y 'г'. H:mm:ss 'ч'."); + expect(patterns.t).toBe("H:mm 'ч'."); + expect(patterns.T).toBe("H:mm:ss 'ч'."); }); it('should set standard patterns', () => { const patterns = cldr.bg.calendar.patterns; - expect(patterns.s).toEqual("yyyy'-'MM'-'dd'T'HH':'mm':'ss"); - expect(patterns.u).toEqual("yyyy'-'MM'-'dd HH':'mm':'ss'Z'"); + expect(patterns.s).toBe("yyyy'-'MM'-'dd'T'HH':'mm':'ss"); + expect(patterns.u).toBe("yyyy'-'MM'-'dd HH':'mm':'ss'Z'"); }); it('should set dateTimeFormats', () => { @@ -287,9 +287,9 @@ describe('load calendar', () => { const dateFields = cldr.bg.calendar.dateFields.era; expect(dateFields.wide).toBeDefined(); - expect(dateFields.wide).toEqual('ера'); - expect(dateFields.short).toEqual('ера'); - expect(dateFields.narrow).toEqual('ера'); + expect(dateFields.wide).toBe('ера'); + expect(dateFields.short).toBe('ера'); + expect(dateFields.narrow).toBe('ера'); }); it('should set year display name', () => { @@ -384,22 +384,22 @@ describe('load calendar', () => { describe('localeInfo', () => { it('should return info by language', () => { const info = localeInfo('bg'); - expect(info.name).toEqual('bg'); + expect(info.name).toBe('bg'); }); it('should return info by language and script', () => { const info = localeInfo('bg-Cyrl'); - expect(info.name).toEqual('bg'); + expect(info.name).toBe('bg'); }); it('should return info by language and territory', () => { const info = localeInfo('bg-BG'); - expect(info.name).toEqual('bg'); + expect(info.name).toBe('bg'); }); it('should return info by language, script and territory', () => { const info = localeInfo('bg-Cyrl-BG'); - expect(info.name).toEqual('bg'); + expect(info.name).toBe('bg'); }); it('should throw an error if matching locale is no available', () => { @@ -462,12 +462,12 @@ describe('dateFormatNames', () => { it('should return stand-alone names', () => { const names = dateFormatNames('en', { type: 'dayPeriods', nameType: "narrow", standAlone: true }); - expect(names.pm).toEqual('PM'); + expect(names.pm).toBe('PM'); }); it('should return lower names', () => { const names = dateFormatNames('en', { type: 'dayPeriods', nameType: "narrow", standAlone: true, lower: true }); - expect(names.pm).toEqual('pm'); + expect(names.pm).toBe('pm'); }); }); @@ -487,121 +487,115 @@ describe('dateFieldName', () => { }); it('should return placeholder for the era type', () => { - expect(dateFieldName({ type: 'era', nameType: 'wide' })).toEqual("era"); - expect(dateFieldName({ type: 'era', nameType: 'narrow' })).toEqual("era"); - expect(dateFieldName({ type: 'era', nameType: 'short' })).toEqual("era"); + expect(dateFieldName({ type: 'era', nameType: 'wide' })).toBe("era"); + expect(dateFieldName({ type: 'era', nameType: 'narrow' })).toBe("era"); + expect(dateFieldName({ type: 'era', nameType: 'short' })).toBe("era"); }); it('should return placeholder for the year type', () => { - expect(dateFieldName({ type: 'year', nameType: 'wide' })).toEqual("year"); - expect(dateFieldName({ type: 'year', nameType: 'narrow' })).toEqual("yr."); - expect(dateFieldName({ type: 'year', nameType: 'short' })).toEqual("yr."); + expect(dateFieldName({ type: 'year', nameType: 'wide' })).toBe("year"); + expect(dateFieldName({ type: 'year', nameType: 'narrow' })).toBe("yr."); + expect(dateFieldName({ type: 'year', nameType: 'short' })).toBe("yr."); }); it('should return placeholder for the quarter type', () => { - expect(dateFieldName({ type: 'quarter', nameType: 'wide' })).toEqual("quarter"); - expect(dateFieldName({ type: 'quarter', nameType: 'narrow' })).toEqual("qtr."); - expect(dateFieldName({ type: 'quarter', nameType: 'short' })).toEqual("qtr."); + expect(dateFieldName({ type: 'quarter', nameType: 'wide' })).toBe("quarter"); + expect(dateFieldName({ type: 'quarter', nameType: 'narrow' })).toBe("qtr."); + expect(dateFieldName({ type: 'quarter', nameType: 'short' })).toBe("qtr."); }); it('should return placeholder for the month type', () => { - expect(dateFieldName({ type: 'month', nameType: 'wide' })).toEqual("month"); - expect(dateFieldName({ type: 'month', nameType: 'narrow' })).toEqual("mo."); - expect(dateFieldName({ type: 'month', nameType: 'short' })).toEqual("mo."); - }); - - it('should return placeholder for the month type', () => { - expect(dateFieldName({ type: 'month', nameType: 'wide' })).toEqual("month"); - expect(dateFieldName({ type: 'month', nameType: 'narrow' })).toEqual("mo."); - expect(dateFieldName({ type: 'month', nameType: 'short' })).toEqual("mo."); + expect(dateFieldName({ type: 'month', nameType: 'wide' })).toBe("month"); + expect(dateFieldName({ type: 'month', nameType: 'narrow' })).toBe("mo."); + expect(dateFieldName({ type: 'month', nameType: 'short' })).toBe("mo."); }); it('should return placeholder for the week type', () => { - expect(dateFieldName({ type: 'week', nameType: 'wide' })).toEqual("week"); - expect(dateFieldName({ type: 'week', nameType: 'narrow' })).toEqual("wk."); - expect(dateFieldName({ type: 'week', nameType: 'short' })).toEqual("wk."); + expect(dateFieldName({ type: 'week', nameType: 'wide' })).toBe("week"); + expect(dateFieldName({ type: 'week', nameType: 'narrow' })).toBe("wk."); + expect(dateFieldName({ type: 'week', nameType: 'short' })).toBe("wk."); }); it('should return placeholder for the day type', () => { - expect(dateFieldName({ type: 'day', nameType: 'wide' })).toEqual("day"); - expect(dateFieldName({ type: 'day', nameType: 'narrow' })).toEqual("day"); - expect(dateFieldName({ type: 'day', nameType: 'short' })).toEqual("day"); + expect(dateFieldName({ type: 'day', nameType: 'wide' })).toBe("day"); + expect(dateFieldName({ type: 'day', nameType: 'narrow' })).toBe("day"); + expect(dateFieldName({ type: 'day', nameType: 'short' })).toBe("day"); }); it('should return localized placeholder for the day type', () => { - expect(dateFieldName({ type: 'day', nameType: 'wide' }, 'bg')).toEqual("ден"); - expect(dateFieldName({ type: 'day', nameType: 'narrow' }, 'bg')).toEqual("д"); - expect(dateFieldName({ type: 'day', nameType: 'short' }, 'bg')).toEqual("д"); + expect(dateFieldName({ type: 'day', nameType: 'wide' }, 'bg')).toBe("ден"); + expect(dateFieldName({ type: 'day', nameType: 'narrow' }, 'bg')).toBe("д"); + expect(dateFieldName({ type: 'day', nameType: 'short' }, 'bg')).toBe("д"); }); it('should return placeholder for the weekday type', () => { - expect(dateFieldName({ type: 'weekday', nameType: 'wide' })).toEqual("day of the week"); - expect(dateFieldName({ type: 'weekday', nameType: 'narrow' })).toEqual("day of wk."); - expect(dateFieldName({ type: 'weekday', nameType: 'short' })).toEqual("day of wk."); + expect(dateFieldName({ type: 'weekday', nameType: 'wide' })).toBe("day of the week"); + expect(dateFieldName({ type: 'weekday', nameType: 'narrow' })).toBe("day of wk."); + expect(dateFieldName({ type: 'weekday', nameType: 'short' })).toBe("day of wk."); }); it('should return localized placeholder for the weekday type', () => { - expect(dateFieldName({ type: 'weekday', nameType: 'wide' }, 'bg')).toEqual("ден от седмицата"); - expect(dateFieldName({ type: 'weekday', nameType: 'narrow' }, 'bg')).toEqual("ден от седм."); - expect(dateFieldName({ type: 'weekday', nameType: 'short' }, 'bg')).toEqual("ден от седм."); + expect(dateFieldName({ type: 'weekday', nameType: 'wide' }, 'bg')).toBe("ден от седмицата"); + expect(dateFieldName({ type: 'weekday', nameType: 'narrow' }, 'bg')).toBe("ден от седм."); + expect(dateFieldName({ type: 'weekday', nameType: 'short' }, 'bg')).toBe("ден от седм."); }); it('should return placeholder for the dayperiod type', () => { - expect(dateFieldName({ type: 'dayperiod', nameType: 'wide' })).toEqual("AM/PM"); - expect(dateFieldName({ type: 'dayperiod', nameType: 'narrow' })).toEqual("AM/PM"); - expect(dateFieldName({ type: 'dayperiod', nameType: 'short' })).toEqual("AM/PM"); + expect(dateFieldName({ type: 'dayperiod', nameType: 'wide' })).toBe("AM/PM"); + expect(dateFieldName({ type: 'dayperiod', nameType: 'narrow' })).toBe("AM/PM"); + expect(dateFieldName({ type: 'dayperiod', nameType: 'short' })).toBe("AM/PM"); }); it('should return localized placeholder for the dayperiod type', () => { - expect(dateFieldName({ type: 'dayperiod', nameType: 'wide' }, 'bg')).toEqual("пр.об./сл.об."); - expect(dateFieldName({ type: 'dayperiod', nameType: 'narrow' }, 'bg')).toEqual("пр.об./сл.об."); - expect(dateFieldName({ type: 'dayperiod', nameType: 'short' }, 'bg')).toEqual("пр.об./сл.об."); + expect(dateFieldName({ type: 'dayperiod', nameType: 'wide' }, 'bg')).toBe("пр.об./сл.об."); + expect(dateFieldName({ type: 'dayperiod', nameType: 'narrow' }, 'bg')).toBe("пр.об./сл.об."); + expect(dateFieldName({ type: 'dayperiod', nameType: 'short' }, 'bg')).toBe("пр.об./сл.об."); }); it('should return placeholder for hour type', () => { - expect(dateFieldName({ type: 'hour', nameType: 'wide' })).toEqual("hour"); - expect(dateFieldName({ type: 'hour', nameType: 'narrow' })).toEqual("hr."); - expect(dateFieldName({ type: 'hour', nameType: 'short' })).toEqual("hr."); + expect(dateFieldName({ type: 'hour', nameType: 'wide' })).toBe("hour"); + expect(dateFieldName({ type: 'hour', nameType: 'narrow' })).toBe("hr."); + expect(dateFieldName({ type: 'hour', nameType: 'short' })).toBe("hr."); }); it('should return localized placeholder for hour type', () => { - expect(dateFieldName({ type: 'hour', nameType: 'wide' }, 'bg')).toEqual("час"); - expect(dateFieldName({ type: 'hour', nameType: 'narrow' }, 'bg')).toEqual("ч"); - expect(dateFieldName({ type: 'hour', nameType: 'short' }, 'bg')).toEqual("ч"); + expect(dateFieldName({ type: 'hour', nameType: 'wide' }, 'bg')).toBe("час"); + expect(dateFieldName({ type: 'hour', nameType: 'narrow' }, 'bg')).toBe("ч"); + expect(dateFieldName({ type: 'hour', nameType: 'short' }, 'bg')).toBe("ч"); }); it('should return placeholder for minute type', () => { - expect(dateFieldName({ type: 'minute', nameType: 'wide' })).toEqual("minute"); - expect(dateFieldName({ type: 'minute', nameType: 'narrow' })).toEqual("min."); - expect(dateFieldName({ type: 'minute', nameType: 'short' })).toEqual("min."); + expect(dateFieldName({ type: 'minute', nameType: 'wide' })).toBe("minute"); + expect(dateFieldName({ type: 'minute', nameType: 'narrow' })).toBe("min."); + expect(dateFieldName({ type: 'minute', nameType: 'short' })).toBe("min."); }); it('should return placeholder for second type', () => { - expect(dateFieldName({ type: 'second', nameType: 'wide' })).toEqual("second"); - expect(dateFieldName({ type: 'second', nameType: 'narrow' })).toEqual("sec."); - expect(dateFieldName({ type: 'second', nameType: 'short' })).toEqual("sec."); + expect(dateFieldName({ type: 'second', nameType: 'wide' })).toBe("second"); + expect(dateFieldName({ type: 'second', nameType: 'narrow' })).toBe("sec."); + expect(dateFieldName({ type: 'second', nameType: 'short' })).toBe("sec."); }); it('should return placeholder for millisecond type', () => { - expect(dateFieldName({ type: 'millisecond', nameType: 'wide' })).toEqual("millisecond"); - expect(dateFieldName({ type: 'millisecond', nameType: 'narrow' })).toEqual("ms"); - expect(dateFieldName({ type: 'millisecond', nameType: 'short' })).toEqual("ms"); + expect(dateFieldName({ type: 'millisecond', nameType: 'wide' })).toBe("millisecond"); + expect(dateFieldName({ type: 'millisecond', nameType: 'narrow' })).toBe("ms"); + expect(dateFieldName({ type: 'millisecond', nameType: 'short' })).toBe("ms"); }); it('should return placeholder for zone type', () => { - expect(dateFieldName({ type: 'zone', nameType: 'wide' })).toEqual("time zone"); - expect(dateFieldName({ type: 'zone', nameType: 'narrow' })).toEqual("zone"); - expect(dateFieldName({ type: 'zone', nameType: 'short' })).toEqual("zone"); + expect(dateFieldName({ type: 'zone', nameType: 'wide' })).toBe("time zone"); + expect(dateFieldName({ type: 'zone', nameType: 'narrow' })).toBe("zone"); + expect(dateFieldName({ type: 'zone', nameType: 'short' })).toBe("zone"); }); it('should not support non-existent units of time as fieldName type', () => { - expect(dateFieldName({ type: 'turbosecond', nameType: 'wide' })).toEqual(undefined); - expect(dateFieldName({ type: 'turbosecond', nameType: 'narrow' })).toEqual(undefined); - expect(dateFieldName({ type: 'turbosecond', nameType: 'short' })).toEqual(undefined); + expect(dateFieldName({ type: 'turbosecond', nameType: 'wide' })).toBeUndefined(); + expect(dateFieldName({ type: 'turbosecond', nameType: 'narrow' })).toBeUndefined(); + expect(dateFieldName({ type: 'turbosecond', nameType: 'short' })).toBeUndefined(); }); it('should return wide placeholder by default', () => { - expect(dateFieldName({ type: 'year' })).toEqual('year'); + expect(dateFieldName({ type: 'year' })).toBe('year'); }); }); @@ -649,8 +643,8 @@ describe('localeCurrency', () => { }); it('should return default currency code for locale', () => { - expect(localeCurrency('en')).toEqual('USD'); - expect(localeCurrency('bg')).toEqual('BGN'); + expect(localeCurrency('en')).toBe('USD'); + expect(localeCurrency('bg')).toBe('BGN'); }); it('throws error if second parameter is true and there is no valid currency for the locale', () => { @@ -663,75 +657,75 @@ describe('localeCurrency', () => { it('returns still valid currency', () => { cldr.supplemental.currencyData.region.currencyTest = [ - { - "Foo": { - "_from": "1915-01-01" - } - }, { - "Bar": { - "_from": "1872-08-26", - "_to": "2002-05-15" + { + "Foo": { + "_from": "1915-01-01" + } + }, { + "Bar": { + "_from": "1872-08-26", + "_to": "2002-05-15" + } } - } ]; - expect(localeCurrency('currencyTest')).toEqual('Foo'); + expect(localeCurrency('currencyTest')).toBe('Foo'); }); it('returns latest still valid currency', () => { cldr.supplemental.currencyData.region.currencyTest = [ - { - "Foo": { - "_from": "1915-01-01" - } - }, { - "Bar": { - "_from": "1872-08-26" + { + "Foo": { + "_from": "1915-01-01" + } + }, { + "Bar": { + "_from": "1872-08-26" + } } - } ]; - expect(localeCurrency('currencyTest')).toEqual('Foo'); + expect(localeCurrency('currencyTest')).toBe('Foo'); }); it('returns latest valid until currency', () => { cldr.supplemental.currencyData.region.currencyTest = [ - { - "Foo": { - "_from": "1994-01-24", - "_to": "2002-05-15" - } - }, { - "Bar": { - "_from": "2003-02-04", - "_to": "2006-06-03" - } - }, { - "Baz": { - "_from": "2002-05-15", - "_to": "2006-06-03" + { + "Foo": { + "_from": "1994-01-24", + "_to": "2002-05-15" + } + }, { + "Bar": { + "_from": "2003-02-04", + "_to": "2006-06-03" + } + }, { + "Baz": { + "_from": "2002-05-15", + "_to": "2006-06-03" + } } - } ]; - expect(localeCurrency('currencyTest')).toEqual('Bar'); + expect(localeCurrency('currencyTest')).toBe('Bar'); }); it('ignores currencies with _tender equal to false', () => { cldr.supplemental.currencyData.region.currencyTest = [ - { - "Foo": { - "_from": "1915-01-01", - "_tender": "false" - } - }, { - "Bar": { - "_from": "1872-08-26" + { + "Foo": { + "_from": "1915-01-01", + "_tender": "false" + } + }, { + "Bar": { + "_from": "1872-08-26" + } } - } ]; - expect(localeCurrency('currencyTest')).toEqual('Bar'); + expect(localeCurrency('currencyTest')).toBe('Bar'); }); }); @@ -740,21 +734,21 @@ describe('currencyDisplay', () => { it('should return symbol by default', () => { expect(currencyDisplay('bg', { currency: 'BGN' - })).toEqual('лв.'); + })).toBe('лв.'); }); it('should return code', () => { expect(currencyDisplay("bg", { currency: 'BGN', currencyDisplay: "code" - })).toEqual('BGN'); + })).toBe('BGN'); }); it('should return displayName', () => { expect(currencyDisplay('bg', { currency: 'USD', currencyDisplay: 'displayName' - })).toEqual('щатски долара'); + })).toBe('щатски долара'); }); it('should return displayName based on value if passed', () => { @@ -762,20 +756,20 @@ describe('currencyDisplay', () => { currency: 'USD', currencyDisplay: 'displayName', value: 1 - })).toEqual('щатски долар'); + })).toBe('щатски долар'); - expect(currencyDisplay('bg', { + expect(currencyDisplay('bg', { currency: 'USD', currencyDisplay: 'displayName', value: 2 - })).toEqual('щатски долара'); + })).toBe('щатски долара'); }); it('should return narrow-symbol if available', () => { expect(currencyDisplay('bg', { currency: 'USD', currencyDisplay: 'symbol' - })).toEqual('$'); + })).toBe('$'); }); }); @@ -788,14 +782,14 @@ describe('currencyDisplays', () => { describe('currencyFractionOptions', () => { it('should return fraction options based on currencyData', () => { const options = currencyFractionOptions('TND'); - expect(options.minimumFractionDigits).toEqual(3); - expect(options.maximumFractionDigits).toEqual(3); + expect(options.minimumFractionDigits).toBe(3); + expect(options.maximumFractionDigits).toBe(3); }); it('should return default fraction options if no info is available', () => { const options = currencyFractionOptions('USD'); - expect(options.minimumFractionDigits).toEqual(2); - expect(options.maximumFractionDigits).toEqual(2); + expect(options.minimumFractionDigits).toBe(2); + expect(options.maximumFractionDigits).toBe(2); }); }); diff --git a/test/dates.test.js b/test/dates.test.js index 39adc4ff..2895deb8 100644 --- a/test/dates.test.js +++ b/test/dates.test.js @@ -19,143 +19,143 @@ function date(year, month = 1, day = 1, hour = 0, minute = 0, second = 0, millis describe('date formatting', () => { it('returns value if it is not a date', () => { - expect(formatDate("foo")).toEqual("foo"); + expect(formatDate("foo")).toBe("foo"); }); it('returns empty string if value is null or undefined', () => { - expect(formatDate(undefined)).toEqual(""); - expect(formatDate(null)).toEqual(""); + expect(formatDate(undefined)).toBe(""); + expect(formatDate(null)).toBe(""); }); it('applies short date format if no format is set', () => { - expect(formatDate(date(2000, 1, 30))).toEqual("1/30/2000"); + expect(formatDate(date(2000, 1, 30))).toBe("1/30/2000"); }); it('supports short date format', () => { - expect(formatDate(date(2000, 1, 30), "d")).toEqual("1/30/2000"); + expect(formatDate(date(2000, 1, 30), "d")).toBe("1/30/2000"); }); it('supports long date format', () => { - expect(formatDate(date(2000, 1, 30), "D")).toEqual('Sunday, January 30, 2000'); + expect(formatDate(date(2000, 1, 30), "D")).toBe('Sunday, January 30, 2000'); }); it('supports long time format', () => { - expect(formatDate(date(2000, 1, 30), "T")).toEqual("12:00:00 AM"); + expect(formatDate(date(2000, 1, 30), "T")).toBe("12:00:00 AM"); }); it('supports short time pattern', () => { - expect(formatDate(date(2000, 1, 30), "t")).toEqual('12:00 AM'); + expect(formatDate(date(2000, 1, 30), "t")).toBe('12:00 AM'); }); it('supports full date long time format', () => { - expect(formatDate(date(2000, 1, 30, 13, 9, 9), "F")).toEqual('Sunday, January 30, 2000 1:09:09 PM'); + expect(formatDate(date(2000, 1, 30, 13, 9, 9), "F")).toBe('Sunday, January 30, 2000 1:09:09 PM'); }); it('supports general format', () => { - expect(formatDate(date(2000, 1, 30, 13, 9, 9), "g")).toEqual('1/30/2000 1:09 PM'); + expect(formatDate(date(2000, 1, 30, 13, 9, 9), "g")).toBe('1/30/2000 1:09 PM'); }); it('supports long general format', () => { - expect(formatDate(date(2000, 1, 30, 13, 9, 9), "G")).toEqual('1/30/2000 1:09:09 PM'); + expect(formatDate(date(2000, 1, 30, 13, 9, 9), "G")).toBe('1/30/2000 1:09:09 PM'); }); it('supports iso formats', () => { - expect(formatDate(date(2000, 1, 30, 13, 9, 9), "s")).toEqual('2000-01-30T13:09:09'); - expect(formatDate(date(2000, 1, 30, 13, 9, 9), "u")).toEqual('2000-01-30 13:09:09Z'); + expect(formatDate(date(2000, 1, 30, 13, 9, 9), "s")).toBe('2000-01-30T13:09:09'); + expect(formatDate(date(2000, 1, 30, 13, 9, 9), "u")).toBe('2000-01-30 13:09:09Z'); }); it('supports zero padded days', () => { - expect(formatDate(date(2000, 1, 1), "M/dd/yyyy")).toEqual('1/01/2000'); + expect(formatDate(date(2000, 1, 1), "M/dd/yyyy")).toBe('1/01/2000'); }); it('supports abbreviated day of week', () => { - expect(formatDate(date(2000, 1, 1), "E")).toEqual('Sat'); - expect(formatDate(date(2000, 1, 1), "EE")).toEqual('Sat'); - expect(formatDate(date(2000, 1, 1), "EEE")).toEqual('Sat'); + expect(formatDate(date(2000, 1, 1), "E")).toBe('Sat'); + expect(formatDate(date(2000, 1, 1), "EE")).toBe('Sat'); + expect(formatDate(date(2000, 1, 1), "EEE")).toBe('Sat'); }); it('supports wide day of week', () => { - expect(formatDate(date(2000, 1, 1), "EEEE")).toEqual('Saturday'); + expect(formatDate(date(2000, 1, 1), "EEEE")).toBe('Saturday'); }); it('supports narrow day of week', () => { - expect(formatDate(date(2000, 1, 1), "EEEEE")).toEqual('S'); + expect(formatDate(date(2000, 1, 1), "EEEEE")).toBe('S'); }); it('supports short day of week', () => { - expect(formatDate(date(2000, 1, 1), "EEEEEE")).toEqual('Sa'); + expect(formatDate(date(2000, 1, 1), "EEEEEE")).toBe('Sa'); }); it('supports day of week index', () => { - expect(formatDate(date(2000, 1, 1), "e")).toEqual("7"); - expect(formatDate(date(2000, 1, 1), "ee")).toEqual("7"); - expect(formatDate(date(2000, 1, 1), "c")).toEqual("7"); + expect(formatDate(date(2000, 1, 1), "e")).toBe("7"); + expect(formatDate(date(2000, 1, 1), "ee")).toBe("7"); + expect(formatDate(date(2000, 1, 1), "c")).toBe("7"); }); it('supports localized day of week index', () => { - expect(formatDate(date(2000, 1, 1), "e", "bg")).toEqual("6"); + expect(formatDate(date(2000, 1, 1), "e", "bg")).toBe("6"); }); it('supports stand-alone day of week', () => { - expect(formatDate(date(2000, 1, 1), "ccc")).toEqual('Sat'); - expect(formatDate(date(2000, 1, 1), "cccc")).toEqual('Saturday'); - expect(formatDate(date(2000, 1, 1), "ccccc")).toEqual('S'); - expect(formatDate(date(2000, 1, 1), "cccccc")).toEqual('Sa'); + expect(formatDate(date(2000, 1, 1), "ccc")).toBe('Sat'); + expect(formatDate(date(2000, 1, 1), "cccc")).toBe('Saturday'); + expect(formatDate(date(2000, 1, 1), "ccccc")).toBe('S'); + expect(formatDate(date(2000, 1, 1), "cccccc")).toBe('Sa'); }); it('supports zero padded months', () => { - expect(formatDate(date(2000, 1, 1), "MM/dd/yyyy")).toEqual('01/01/2000'); + expect(formatDate(date(2000, 1, 1), "MM/dd/yyyy")).toBe('01/01/2000'); }); it('supports abbreviated month name', () => { - expect(formatDate(date(2000, 1, 1), "MMM")).toEqual('Jan'); + expect(formatDate(date(2000, 1, 1), "MMM")).toBe('Jan'); }); it('supports wide month name', () => { - expect(formatDate(date(2000, 1, 1), "MMMM")).toEqual('January'); + expect(formatDate(date(2000, 1, 1), "MMMM")).toBe('January'); }); it('supports narrow month name', () => { - expect(formatDate(date(2000, 1, 1), "MMMMM")).toEqual('J'); + expect(formatDate(date(2000, 1, 1), "MMMMM")).toBe('J'); }); it('supports stand-alone month formatting', () => { - expect(formatDate(date(2000, 1, 1), "LL")).toEqual('01'); - expect(formatDate(date(2000, 1, 1), "LLL")).toEqual('Jan'); - expect(formatDate(date(2000, 1, 1), "LLLL")).toEqual('January'); - expect(formatDate(date(2000, 1, 1), "LLLLL")).toEqual('J'); + expect(formatDate(date(2000, 1, 1), "LL")).toBe('01'); + expect(formatDate(date(2000, 1, 1), "LLL")).toBe('Jan'); + expect(formatDate(date(2000, 1, 1), "LLLL")).toBe('January'); + expect(formatDate(date(2000, 1, 1), "LLLLL")).toBe('J'); }); it('supports year formatting', () => { const oneDigitYear = new Date(1, 0, 1); oneDigitYear.setFullYear(1); - expect(formatDate(oneDigitYear, "y MM")).toEqual('1 01'); - expect(formatDate(date(2000, 1, 1), "y MM")).toEqual('2000 01'); + expect(formatDate(oneDigitYear, "y MM")).toBe('1 01'); + expect(formatDate(date(2000, 1, 1), "y MM")).toBe('2000 01'); }); it('supports two length year formatting', () => { const oneDigitYear = new Date(1, 0, 1); oneDigitYear.setFullYear(1); - expect(formatDate(oneDigitYear, "yy")).toEqual('01'); - expect(formatDate(date(2016, 1, 1), "yy")).toEqual('16'); + expect(formatDate(oneDigitYear, "yy")).toBe('01'); + expect(formatDate(date(2016, 1, 1), "yy")).toBe('16'); }); it('supports padded year formatting', () => { const oneDigitYear = new Date(1, 0, 1); oneDigitYear.setFullYear(1); - expect(formatDate(oneDigitYear, "yyy")).toEqual('001'); - expect(formatDate(date(111, 1, 1), "yyyy")).toEqual('0111'); + expect(formatDate(oneDigitYear, "yyy")).toBe('001'); + expect(formatDate(date(111, 1, 1), "yyyy")).toBe('0111'); }); it('supports 12-hour clock formatting', () => { const hourSmall = date(2000, 1, 1, 1); const hourBig = date(2000, 1, 1, 13); - expect(formatDate(hourSmall, "h:mm")).toEqual("1:00"); - expect(formatDate(hourBig, "h:mm")).toEqual("1:00"); - expect(formatDate(hourSmall, "hh:mm")).toEqual("01:00"); - expect(formatDate(hourBig, "hh:mm")).toEqual("01:00"); - expect(formatDate(date(2000, 1, 1, 12), "hh:mm")).toEqual("12:00"); + expect(formatDate(hourSmall, "h:mm")).toBe("1:00"); + expect(formatDate(hourBig, "h:mm")).toBe("1:00"); + expect(formatDate(hourSmall, "hh:mm")).toBe("01:00"); + expect(formatDate(hourBig, "hh:mm")).toBe("01:00"); + expect(formatDate(date(2000, 1, 1, 12), "hh:mm")).toBe("12:00"); }); it('supports 0-11 hour clock formatting', () => { @@ -165,25 +165,25 @@ describe('date formatting', () => { const hour12 = date(2000, 1, 1, 12); const hourBig = date(2000, 1, 1, 13); - expect(formatDate(hourZero, "K:mm")).toEqual("0:00"); - expect(formatDate(hourSmall, "K:mm")).toEqual("1:00"); - expect(formatDate(hour12, "K:mm")).toEqual("0:00"); - expect(formatDate(hourBig, "K:mm")).toEqual("1:00"); + expect(formatDate(hourZero, "K:mm")).toBe("0:00"); + expect(formatDate(hourSmall, "K:mm")).toBe("1:00"); + expect(formatDate(hour12, "K:mm")).toBe("0:00"); + expect(formatDate(hourBig, "K:mm")).toBe("1:00"); - expect(formatDate(hourZero, "KK:mm")).toEqual("00:00"); - expect(formatDate(hourSmall, "KK:mm")).toEqual("01:00"); - expect(formatDate(hour12, "KK:mm")).toEqual("00:00"); - expect(formatDate(hourBig, "KK:mm")).toEqual("01:00"); + expect(formatDate(hourZero, "KK:mm")).toBe("00:00"); + expect(formatDate(hourSmall, "KK:mm")).toBe("01:00"); + expect(formatDate(hour12, "KK:mm")).toBe("00:00"); + expect(formatDate(hourBig, "KK:mm")).toBe("01:00"); }); it('supports 24-hour clock formatting', () => { const hourSmall = date(2000, 1, 1, 1); const hourBig = date(2000, 1, 1, 23); - expect(formatDate(hourSmall, "H:mm")).toEqual("1:00"); - expect(formatDate(hourBig, "H:mm")).toEqual("23:00"); - expect(formatDate(hourSmall, "HH:mm")).toEqual("01:00"); - expect(formatDate(hourBig, "HH:mm")).toEqual("23:00"); + expect(formatDate(hourSmall, "H:mm")).toBe("1:00"); + expect(formatDate(hourBig, "H:mm")).toBe("23:00"); + expect(formatDate(hourSmall, "HH:mm")).toBe("01:00"); + expect(formatDate(hourBig, "HH:mm")).toBe("23:00"); }); it('supports 1-24 hour clock formatting', () => { @@ -192,187 +192,187 @@ describe('date formatting', () => { const hour12 = date(2000, 1, 1, 12); const hourBig = date(2000, 1, 1, 13); - expect(formatDate(hourZero, "k:mm")).toEqual("24:00"); - expect(formatDate(hourSmall, "k:mm")).toEqual("1:00"); - expect(formatDate(hour12, "k:mm")).toEqual("12:00"); - expect(formatDate(hourBig, "k:mm")).toEqual("13:00"); + expect(formatDate(hourZero, "k:mm")).toBe("24:00"); + expect(formatDate(hourSmall, "k:mm")).toBe("1:00"); + expect(formatDate(hour12, "k:mm")).toBe("12:00"); + expect(formatDate(hourBig, "k:mm")).toBe("13:00"); - expect(formatDate(hourZero, "kk:mm")).toEqual("24:00"); - expect(formatDate(hourSmall, "kk:mm")).toEqual("01:00"); - expect(formatDate(hour12, "kk:mm")).toEqual("12:00"); - expect(formatDate(hourBig, "kk:mm")).toEqual("13:00"); + expect(formatDate(hourZero, "kk:mm")).toBe("24:00"); + expect(formatDate(hourSmall, "kk:mm")).toBe("01:00"); + expect(formatDate(hour12, "kk:mm")).toBe("12:00"); + expect(formatDate(hourBig, "kk:mm")).toBe("13:00"); }); it('supports day period short formatting', () => { - expect(formatDate(date(2000, 1, 1, 1), "hh a")).toEqual("01 AM"); - expect(formatDate(date(2000, 1, 1, 13), "hh a")).toEqual("01 PM"); + expect(formatDate(date(2000, 1, 1, 1), "hh a")).toBe("01 AM"); + expect(formatDate(date(2000, 1, 1, 13), "hh a")).toBe("01 PM"); }); it('supports day period wide formatting', () => { - expect(formatDate(date(2000, 1, 1, 1), "hh aaaa")).toEqual("01 AM"); - expect(formatDate(date(2000, 1, 1, 13), "hh aaaa")).toEqual("01 PM"); + expect(formatDate(date(2000, 1, 1, 1), "hh aaaa")).toBe("01 AM"); + expect(formatDate(date(2000, 1, 1, 13), "hh aaaa")).toBe("01 PM"); }); it('supports day period narrow formatting', () => { - expect(formatDate(date(2000, 1, 1, 1), "hh aaaaa")).toEqual("01 a"); - expect(formatDate(date(2000, 1, 1, 13), "hh aaaaa")).toEqual("01 p"); + expect(formatDate(date(2000, 1, 1, 1), "hh aaaaa")).toBe("01 a"); + expect(formatDate(date(2000, 1, 1, 13), "hh aaaaa")).toBe("01 p"); }); it('supports minutes formatting', () => { - expect(formatDate(date(2000, 1, 1, 10, 1), "HH:m")).toEqual('10:1'); - expect(formatDate(date(2000, 1, 1, 10, 33), "HH:m")).toEqual('10:33'); - expect(formatDate(date(2000, 1, 1, 10, 1), "HH:mm")).toEqual('10:01'); - expect(formatDate(date(2000, 1, 1, 10, 33), "HH:mm")).toEqual('10:33'); + expect(formatDate(date(2000, 1, 1, 10, 1), "HH:m")).toBe('10:1'); + expect(formatDate(date(2000, 1, 1, 10, 33), "HH:m")).toBe('10:33'); + expect(formatDate(date(2000, 1, 1, 10, 1), "HH:mm")).toBe('10:01'); + expect(formatDate(date(2000, 1, 1, 10, 33), "HH:mm")).toBe('10:33'); }); it('supports seconds formatting', () => { - expect(formatDate(date(2000, 1, 1, 10, 1, 1), "m:s")).toEqual('1:1'); - expect(formatDate(date(2000, 1, 1, 10, 1, 33), "m:s")).toEqual('1:33'); - expect(formatDate(date(2000, 1, 1, 10, 1, 1), "m:ss")).toEqual('1:01'); - expect(formatDate(date(2000, 1, 1, 10, 1, 33), "m:ss")).toEqual('1:33'); + expect(formatDate(date(2000, 1, 1, 10, 1, 1), "m:s")).toBe('1:1'); + expect(formatDate(date(2000, 1, 1, 10, 1, 33), "m:s")).toBe('1:33'); + expect(formatDate(date(2000, 1, 1, 10, 1, 1), "m:ss")).toBe('1:01'); + expect(formatDate(date(2000, 1, 1, 10, 1, 33), "m:ss")).toBe('1:33'); }); it('supports S more than 99', () => { - expect(formatDate(date(2000, 1, 1, 1, 1, 1, 100), "hh:mm:S")).toEqual('01:01:1'); + expect(formatDate(date(2000, 1, 1, 1, 1, 1, 100), "hh:mm:S")).toBe('01:01:1'); }); it('supports SSS with round numbers', () => { - expect(formatDate(date(2000, 1, 1, 1, 1, 1, 100), "hh:mm:SSS")).toEqual('01:01:100'); + expect(formatDate(date(2000, 1, 1, 1, 1, 1, 100), "hh:mm:SSS")).toBe('01:01:100'); }); it('supports S less than 100', () => { - expect(formatDate(date(2000, 1, 1, 1, 1, 1, 99), "hh:mm:S")).toEqual('01:01:0'); + expect(formatDate(date(2000, 1, 1, 1, 1, 1, 99), "hh:mm:S")).toBe('01:01:0'); }); it('supports SS', () => { - expect(formatDate(date(2000, 1, 1, 1, 1, 1, 129), "hh:mm:SS")).toEqual('01:01:12'); + expect(formatDate(date(2000, 1, 1, 1, 1, 1, 129), "hh:mm:SS")).toBe('01:01:12'); }); it('supports padded SS', () => { - expect(formatDate(date(2000, 1, 1, 1, 1, 1, 10), "SS")).toEqual('01'); + expect(formatDate(date(2000, 1, 1, 1, 1, 1, 10), "SS")).toBe('01'); }); it('supports SSS', () => { - expect(formatDate(date(2000, 1, 1, 1, 1, 1, 129), "SSS")).toEqual('129'); + expect(formatDate(date(2000, 1, 1, 1, 1, 1, 129), "SSS")).toBe('129'); }); it('supports padded SSS', () => { - expect(formatDate(date(2000, 1, 1, 1, 1, 1, 1), "SSS")).toEqual('001'); + expect(formatDate(date(2000, 1, 1, 1, 1, 1, 1), "SSS")).toBe('001'); }); it('supports abbreviated era formatting', () => { - expect(formatDate(date(-1, 1, 1), "y G")).toEqual('-1 BC'); - expect(formatDate(date(2000, 1, 1), "y G")).toEqual('2000 AD'); + expect(formatDate(date(-1, 1, 1), "y G")).toBe('-1 BC'); + expect(formatDate(date(2000, 1, 1), "y G")).toBe('2000 AD'); }); it('supports wide era formatting', () => { - expect(formatDate(date(-1, 1, 1), "y GGGG")).toEqual('-1 Before Christ'); - expect(formatDate(date(2000, 1, 1), "y GGGG")).toEqual('2000 Anno Domini'); + expect(formatDate(date(-1, 1, 1), "y GGGG")).toBe('-1 Before Christ'); + expect(formatDate(date(2000, 1, 1), "y GGGG")).toBe('2000 Anno Domini'); }); it('supports narrow era formatting', () => { - expect(formatDate(date(-1, 1, 1), "y GGGGG")).toEqual('-1 B'); - expect(formatDate(date(2000, 1, 1), "y GGGGG")).toEqual('2000 A'); + expect(formatDate(date(-1, 1, 1), "y GGGGG")).toBe('-1 B'); + expect(formatDate(date(2000, 1, 1), "y GGGGG")).toBe('2000 A'); }); it('supports numerical quarter formatting', () => { - expect(formatDate(date(2000, 3, 1), "Q")).toEqual('1'); - expect(formatDate(date(2000, 4, 1), "Q")).toEqual('2'); + expect(formatDate(date(2000, 3, 1), "Q")).toBe('1'); + expect(formatDate(date(2000, 4, 1), "Q")).toBe('2'); }); it('supports abbreviated quarter formatting', () => { - expect(formatDate(date(2000, 3, 1), "QQQ")).toEqual('Q1'); - expect(formatDate(date(2000, 4, 1), "QQQ")).toEqual('Q2'); + expect(formatDate(date(2000, 3, 1), "QQQ")).toBe('Q1'); + expect(formatDate(date(2000, 4, 1), "QQQ")).toBe('Q2'); }); it('supports wide quarter formatting', () => { - expect(formatDate(date(2000, 3, 1), "QQQQ")).toEqual('1st quarter'); - expect(formatDate(date(2000, 4, 1), "QQQQ")).toEqual('2nd quarter'); + expect(formatDate(date(2000, 3, 1), "QQQQ")).toBe('1st quarter'); + expect(formatDate(date(2000, 4, 1), "QQQQ")).toBe('2nd quarter'); }); it('supports narrow quarter formatting', () => { - expect(formatDate(date(2000, 3, 1), "QQQQQ")).toEqual('1'); - expect(formatDate(date(2000, 4, 1), "QQQQQ")).toEqual('2'); + expect(formatDate(date(2000, 3, 1), "QQQQQ")).toBe('1'); + expect(formatDate(date(2000, 4, 1), "QQQQQ")).toBe('2'); }); it('supports short localized GMT format', () => { - expect(formatDate(date(2000, 2, 1), "z")).toEqual('GMT+2'); + expect(formatDate(date(2000, 2, 1), "z")).toBe('GMT+2'); }); it('supports long localized GMT format', () => { - expect(formatDate(date(2000, 2, 1), "zzzz")).toEqual('GMT+02:00'); + expect(formatDate(date(2000, 2, 1), "zzzz")).toBe('GMT+02:00'); }); it('supports the ISO8601 basic format timezone format', () => { - expect(formatDate(date(2000, 2, 1), "Z")).toEqual('+0200'); + expect(formatDate(date(2000, 2, 1), "Z")).toBe('+0200'); }); it('supports Z long localized GMT format', () => { - expect(formatDate(date(2000, 2, 1), "ZZZZ")).toEqual('GMT+02:00'); + expect(formatDate(date(2000, 2, 1), "ZZZZ")).toBe('GMT+02:00'); }); it('supports the ISO8601 extended timezone format', () => { - expect(formatDate(date(2000, 2, 1), "ZZZZZ")).toEqual('+02:00'); + expect(formatDate(date(2000, 2, 1), "ZZZZZ")).toBe('+02:00'); }); it('supports the x timezone format', () => { - expect(formatDate(date(2000, 2, 1), "x")).toEqual('+02'); - expect(formatDate(date(2000, 2, 1), "xx")).toEqual('+0200'); - expect(formatDate(date(2000, 2, 1), "xxx")).toEqual('+02:00'); - expect(formatDate(date(2000, 2, 1), "xxxx")).toEqual('+0200'); - expect(formatDate(date(2000, 2, 1), "xxxxx")).toEqual('+02:00'); + expect(formatDate(date(2000, 2, 1), "x")).toBe('+02'); + expect(formatDate(date(2000, 2, 1), "xx")).toBe('+0200'); + expect(formatDate(date(2000, 2, 1), "xxx")).toBe('+02:00'); + expect(formatDate(date(2000, 2, 1), "xxxx")).toBe('+0200'); + expect(formatDate(date(2000, 2, 1), "xxxxx")).toBe('+02:00'); }); it('supports the X timezone format', () => { - expect(formatDate(date(2000, 2, 1), "X")).toEqual('+02'); - expect(formatDate(date(2000, 2, 1), "XX")).toEqual('+0200'); - expect(formatDate(date(2000, 2, 1), "XXX")).toEqual('+02:00'); - expect(formatDate(date(2000, 2, 1), "XXXX")).toEqual('+0200'); - expect(formatDate(date(2000, 2, 1), "XXXXX")).toEqual('+02:00'); + expect(formatDate(date(2000, 2, 1), "X")).toBe('+02'); + expect(formatDate(date(2000, 2, 1), "XX")).toBe('+0200'); + expect(formatDate(date(2000, 2, 1), "XXX")).toBe('+02:00'); + expect(formatDate(date(2000, 2, 1), "XXXX")).toBe('+0200'); + expect(formatDate(date(2000, 2, 1), "XXXXX")).toBe('+02:00'); }); it('supports single quote literals', () => { - expect(formatDate(date(2000, 1, 1, 9), "'literal'")).toEqual('literal'); + expect(formatDate(date(2000, 1, 1, 9), "'literal'")).toBe('literal'); }); it('supports quote literals', () => { - expect(formatDate(date(2000, 1, 1, 9), "\"literal\"")).toEqual('literal'); + expect(formatDate(date(2000, 1, 1, 9), "\"literal\"")).toBe('literal'); }); it('honors specific locale', () => { - expect(formatDate(date(2000, 2, 10), "E MMMM", "bg")).toEqual('чт февруари'); + expect(formatDate(date(2000, 2, 10), "E MMMM", "bg")).toBe('чт февруари'); }); it('formats using skeleton format', () => { - expect(formatDate(date(2000, 2, 10), { skeleton: "yMMMd" })).toEqual('Feb 10, 2000'); + expect(formatDate(date(2000, 2, 10), { skeleton: "yMMMd" })).toBe('Feb 10, 2000'); }); it('supports skeleton format if there is not exact match', () => { - expect(formatDate(date(2000, 2, 10), { skeleton: "MMd" })).toEqual('02 10'); + expect(formatDate(date(2000, 2, 10), { skeleton: "MMd" })).toBe('02 10'); }); it('replaces available format pattern with specified pattern', () => { - expect(formatDate(date(2000, 2, 10), { skeleton: "MMMM" })).toEqual('February'); + expect(formatDate(date(2000, 2, 10), { skeleton: "MMMM" })).toBe('February'); }); it('supports skeleton format if there is both date and time', () => { - expect(formatDate(date(2000, 2, 10, 10, 30), { skeleton: "yMMMdhm" })).toEqual('Feb 10, 2000, 10:30 AM'); + expect(formatDate(date(2000, 2, 10, 10, 30), { skeleton: "yMMMdhm" })).toBe('Feb 10, 2000, 10:30 AM'); }); it('supports pattern', () => { - expect(formatDate(date(2000, 2, 1), { pattern: "d" })).toEqual('1'); + expect(formatDate(date(2000, 2, 1), { pattern: "d" })).toBe('1'); }); it('supports dateFormats', () => { - expect(formatDate(date(2000, 2, 10, 10, 30), { date: "long" })).toEqual('February 10, 2000'); + expect(formatDate(date(2000, 2, 10, 10, 30), { date: "long" })).toBe('February 10, 2000'); }); it('supports timeFormats', () => { - expect(formatDate(date(2000, 2, 10, 10, 30), { time: "medium" })).toEqual('10:30:00 AM'); + expect(formatDate(date(2000, 2, 10, 10, 30), { time: "medium" })).toBe('10:30:00 AM'); }); it('supports dateTimeFormats', () => { - expect(formatDate(date(2000, 2, 10, 10, 30), { datetime: "short" })).toEqual('2/10/00, 10:30 AM'); + expect(formatDate(date(2000, 2, 10, 10, 30), { datetime: "short" })).toBe('2/10/00, 10:30 AM'); }); it('supports setting the required fields via options', () => { @@ -387,7 +387,7 @@ describe('date formatting', () => { second: "2-digit", timeZoneName: "long", hour12: true - })).toEqual('Thu, 02 10, 2000 AD, 10:30:00 AM GMT+02:00'); + })).toBe('Thu, 02 10, 2000 AD, 10:30:00 AM GMT+02:00'); }); }); @@ -846,20 +846,19 @@ describe('date parsing', () => { monthNames[5] = monthNames[6].substr(0, monthNames[6].length - 1); const result = parseDate(monthNames[6] + " 2000", "MMMM yyyy"); expect(isValidDate(2000, 7, 1, result)).toBe(true); - } - finally { + } finally { monthNames[5] = originalMonthName; } }); it('parseDate G format of ko-KR culture', function () { - //missing info in the cldr data for the abbreviated and narrow day periods - const info = localeInfo("ko"); - const abbreviatedNames = dateFormatNames(info, { type: "dayPeriods", nameType: "abbreviated" }); - const wideNames = dateFormatNames(info, { type: "dayPeriods", nameType: "wide" }); - abbreviatedNames.am = wideNames.am; - const result = parseDate("2016. 05. 27. 오전 11:00:00", "G", "ko"); - expect(isValidDateTime(result, 2016, 5, 27, 11, 0, 0, 0 ,0)).toBe(true); + //missing info in the cldr data for the abbreviated and narrow day periods + const info = localeInfo("ko"); + const abbreviatedNames = dateFormatNames(info, { type: "dayPeriods", nameType: "abbreviated" }); + const wideNames = dateFormatNames(info, { type: "dayPeriods", nameType: "wide" }); + abbreviatedNames.am = wideNames.am; + const result = parseDate("2016. 05. 27. 오전 11:00:00", "G", "ko"); + expect(isValidDateTime(result, 2016, 5, 27, 11, 0, 0, 0 ,0)).toBe(true); }); it('should return null if only year is passed', function () { @@ -924,13 +923,13 @@ describe('date parsing', () => { }); it("parses milliseconds with leading zeros", () => { - expect(parseDate("2000-10-10T14:30:0.0400000Z", "yyyy-MM-ddTHH:mm:ss.SSSSSSSX").getMilliseconds()).toEqual(40); + expect(parseDate("2000-10-10T14:30:0.0400000Z", "yyyy-MM-ddTHH:mm:ss.SSSSSSSX").getMilliseconds()).toBe(40); }); it('parses first digit of ISO date string milliseconds as hundreds', () => { - expect(parseDate("2000-01-01T00:00:00.1Z").getMilliseconds()).toEqual(100); - expect(parseDate("2000-01-01T00:00:00.10Z").getMilliseconds()).toEqual(100); - expect(parseDate("2000-01-01T00:00:00.100Z").getMilliseconds()).toEqual(100); + expect(parseDate("2000-01-01T00:00:00.1Z").getMilliseconds()).toBe(100); + expect(parseDate("2000-01-01T00:00:00.10Z").getMilliseconds()).toBe(100); + expect(parseDate("2000-01-01T00:00:00.100Z").getMilliseconds()).toBe(100); }); it("parses UTC milliseconds without specified format", () => { diff --git a/test/format.test.js b/test/format.test.js index 0886f53f..c35dcb64 100644 --- a/test/format.test.js +++ b/test/format.test.js @@ -19,19 +19,19 @@ describe('toString', () => { } it('formats value as date', () => { - expect(toString(new Date(2000, 0, 30), "d", "en")).toEqual("1/30/2000"); + expect(toString(new Date(2000, 0, 30), "d", "en")).toBe("1/30/2000"); }); it('formats value as date based on the specified locale', () => { - expect(toString(new Date(2000, 0, 30), "d", "bg")).toEqual("30.01.2000 г."); + expect(toString(new Date(2000, 0, 30), "d", "bg")).toBe("30.01.2000 г."); }); it('formats value as number', () => { - expect(toString(10, "c", "en")).toEqual("$10.00"); + expect(toString(10, "c", "en")).toBe("$10.00"); }); it('formats value as number based on the specified locale', () => { - expect(toString(10, "c", "bg")).toEqual("10,00 лв."); + expect(toString(10, "c", "bg")).toBe("10,00 лв."); }); it('returns empty string if the value is undefined', () => { @@ -49,14 +49,14 @@ describe('toString', () => { describe('format', () => { it('replaces placeholders', () => { - expect(format("{0}-{1}", ["foo", "bar"])).toEqual("foo-bar"); + expect(format("{0}-{1}", ["foo", "bar"])).toBe("foo-bar"); }); it('formats values based on specified format', () => { - expect(format("{0:d}-{1:c}", [new Date(2000, 0, 30), 10])).toEqual("1/30/2000-$10.00"); + expect(format("{0:d}-{1:c}", [new Date(2000, 0, 30), 10])).toBe("1/30/2000-$10.00"); }); it('formats values based on specified format and locale', () => { - expect(format("{0:d}-{1:c}", [new Date(2000, 0, 30), 10], "bg")).toEqual("30.01.2000 г.-10,00 лв."); + expect(format("{0:d}-{1:c}", [new Date(2000, 0, 30), 10], "bg")).toBe("30.01.2000 г.-10,00 лв."); }); }); \ No newline at end of file diff --git a/test/numbers.test.js b/test/numbers.test.js index 53fc1a13..ae1a5b67 100644 --- a/test/numbers.test.js +++ b/test/numbers.test.js @@ -13,54 +13,54 @@ load(likelySubtags, currencyData, numbers, currencies, localNumbers, localCurren function loadCustom(options) { load({ - "main": { - "custom": { - "identity": { - "language": "custom", - "territory": "CUSTOM" - }, - "numbers": { - "symbols-numberSystem-latn": { - "decimal": options.decimal || ".", - "group": options.group || "," - }, - "decimalFormats-numberSystem-latn": { - "standard": options.pattern || "#,##0.###" - }, - "currencyFormats-numberSystem-latn": { - "standard": options.currencyPattern || "¤#,##0.00", - "accounting": options.accountingPattern || "#,##0.00¤" - }, - currencies: options.currencies - } + "main": { + "custom": { + "identity": { + "language": "custom", + "territory": "CUSTOM" + }, + "numbers": { + "symbols-numberSystem-latn": { + "decimal": options.decimal || ".", + "group": options.group || "," + }, + "decimalFormats-numberSystem-latn": { + "standard": options.pattern || "#,##0.###" + }, + "currencyFormats-numberSystem-latn": { + "standard": options.currencyPattern || "¤#,##0.00", + "accounting": options.accountingPattern || "#,##0.00¤" + }, + currencies: options.currencies + } + } } - } }); } describe('formatNumber', () => { it('should apply decimal formatting if no format is specified', () => { - expect(formatNumber(10000)).toEqual("10,000"); + expect(formatNumber(10000)).toBe("10,000"); }); it('should support minus zero', () => { - expect(formatNumber(-0)).toEqual("-0"); + expect(formatNumber(-0)).toBe("-0"); }); it('should return empty string if no value is passed', () => { - expect(formatNumber()).toEqual(""); + expect(formatNumber()).toBe(""); }); it('should return empty string if null or undefined value is passed', () => { - expect(formatNumber(null)).toEqual(""); - expect(formatNumber(undefined)).toEqual(""); + expect(formatNumber(null)).toBe(""); + expect(formatNumber(undefined)).toBe(""); }); it('should return value as string if not finite value is passed', () => { expect(formatNumber(Infinity)).toBe(String(Infinity)); expect(formatNumber(NaN)).toBe(String(NaN)); - expect(formatNumber("foo")).toEqual("foo"); + expect(formatNumber("foo")).toBe("foo"); }); it('should limit precision', () => { @@ -115,138 +115,133 @@ describe('standard scientific formatting', () => { }); it('should use locale specific decimal separator', () => { - expect(formatNumber(value, { style: 'scientific' }, 'bg')).toEqual('1,23e+2'); + expect(formatNumber(value, { style: 'scientific' }, 'bg')).toBe('1,23e+2'); }); }); describe('standard decimal formatting', () => { it('should apply format for big positive integer', () => { const number = 10000; - expect(formatNumber(number, 'n')).toEqual("10,000"); + expect(formatNumber(number, 'n')).toBe("10,000"); }); it('should apply format for big positive integer with precision', () => { const number = 10000; - expect(formatNumber(number, 'n2')).toEqual("10,000.00"); + expect(formatNumber(number, 'n2')).toBe("10,000.00"); }); it('should apply format for big negative integer', () => { const number = -10000; - expect(formatNumber(number, 'n')).toEqual("-10,000"); + expect(formatNumber(number, 'n')).toBe("-10,000"); }); it('should apply format for big negative integer with precision', () => { const number = -10000; - expect(formatNumber(number, 'n2')).toEqual("-10,000.00"); + expect(formatNumber(number, 'n2')).toBe("-10,000.00"); }); it('should apply format for small positive integer', () => { const number = 10; - expect(formatNumber(number, 'n')).toEqual("10"); + expect(formatNumber(number, 'n')).toBe("10"); }); it('should apply format for small positive integer with precision', () => { const number = 10; - expect(formatNumber(number, 'n2')).toEqual("10.00"); + expect(formatNumber(number, 'n2')).toBe("10.00"); }); it('should apply format for small negative integer', () => { const number = -10; - expect(formatNumber(number, 'n')).toEqual("-10"); + expect(formatNumber(number, 'n')).toBe("-10"); }); it('should apply format for small negative integer with precision', () => { const number = -10; - expect(formatNumber(number, 'n2')).toEqual("-10.00"); + expect(formatNumber(number, 'n2')).toBe("-10.00"); }); it('should format only the integer value with zero precision', () => { const number = 10.3337; - expect(formatNumber(number, 'n0')).toEqual("10"); + expect(formatNumber(number, 'n0')).toBe("10"); }); it('should clear sign if rounded number is zero', () => { - expect(formatNumber(-0.00001, 'n2')).toEqual("0.00"); + expect(formatNumber(-0.00001, 'n2')).toBe("0.00"); }); it('should apply culture specific format', () => { const number = 10000.123; - expect(formatNumber(number, 'n', 'bg')).toEqual("10 000,123"); + expect(formatNumber(number, 'n', 'bg')).toBe("10 000,123"); }); it('should apply format with options object', () => { const number = 10000; - expect(formatNumber(number, {})).toEqual("10,000"); + expect(formatNumber(number, {})).toBe("10,000"); }); it('should apply minimumIntegerDigits', () => { const number = 10; - expect(formatNumber(number, { minimumIntegerDigits: 5 })).toEqual("00,010"); + expect(formatNumber(number, { minimumIntegerDigits: 5 })).toBe("00,010"); }); it('should apply minimumIntegerDigits for floating point numbers', () => { const number = 10.123; - expect(formatNumber(number, { minimumIntegerDigits: 5 })).toEqual("00,010.123"); - }); - - it('should apply minimumIntegerDigits for floating point numbers', () => { - const number = 10.123; - expect(formatNumber(number, { minimumIntegerDigits: 5 })).toEqual("00,010.123"); + expect(formatNumber(number, { minimumIntegerDigits: 5 })).toBe("00,010.123"); }); it('should apply useGrouping', () => { const number = 10000; - expect(formatNumber(number, { useGrouping: false })).toEqual("10000"); + expect(formatNumber(number, { useGrouping: false })).toBe("10000"); }); it('should apply minimumFractionDigits', () => { const number = 10.001; - expect(formatNumber(number, { minimumFractionDigits: 5 })).toEqual("10.00100"); + expect(formatNumber(number, { minimumFractionDigits: 5 })).toBe("10.00100"); }); it('should apply zero minimumFractionDigits', () => { const number = 10; - expect(formatNumber(number, { minimumFractionDigits: 0 })).toEqual("10"); + expect(formatNumber(number, { minimumFractionDigits: 0 })).toBe("10"); }); it('should apply maximumFractionDigits', () => { const number = 10.123456; - expect(formatNumber(number, { maximumFractionDigits: 5 })).toEqual("10.12346"); + expect(formatNumber(number, { maximumFractionDigits: 5 })).toBe("10.12346"); }); it('should apply maximumFractionDigits by default', () => { const number = 10.1235; - expect(formatNumber(number, { })).toEqual("10.124"); + expect(formatNumber(number, { })).toBe("10.124"); }); it('should limit maximumFractionDigits based on minimumFractionDigits by default', () => { const number = 10.123456; - expect(formatNumber(number, { minimumFractionDigits: 5})).toEqual("10.12346"); + expect(formatNumber(number, { minimumFractionDigits: 5})).toBe("10.12346"); }); it('should apply multiple group separators', () => { loadCustom({ pattern: "#,##,##0.###"}); - expect(formatNumber(33111110.01, "n", "custom")).toEqual("3,31,11,110.01"); + expect(formatNumber(33111110.01, "n", "custom")).toBe("3,31,11,110.01"); }); it('should apply group separators with zero length', () => { loadCustom({ pattern: ",,##0.###"}); - expect(formatNumber(33111110, "n", "custom")).toEqual("33111,110"); + expect(formatNumber(33111110, "n", "custom")).toBe("33111,110"); }); it('should not group integer for zero group', () => { loadCustom({ pattern: ",.###"}); - expect(formatNumber(33111110, "n", "custom")).toEqual("33111110"); + expect(formatNumber(33111110, "n", "custom")).toBe("33111110"); }); //doesn't seem to be a locale with zero group size so not sure if this is needed it('should not add group if the integer length is equal to the non-zero group sizes', () => { loadCustom({ pattern: ",,###,##0.###"}); - expect(formatNumber(123456, "n", "custom")).toEqual("123,456"); + expect(formatNumber(123456, "n", "custom")).toBe("123,456"); }); }); @@ -255,17 +250,17 @@ describe('standard percent formatting', () => { it('should apply format', () => { const number = 0.009; - expect(formatNumber(number, 'p')).toEqual("1%"); + expect(formatNumber(number, 'p')).toBe("1%"); }); it('should apply format with precision', () => { const number = 0.1; - expect(formatNumber(number, 'p0')).toEqual("10%"); + expect(formatNumber(number, 'p0')).toBe("10%"); }); it('should apply format for negative values', () => { const number = -1.3; - expect(formatNumber(number, 'p3')).toEqual("-130.000%"); + expect(formatNumber(number, 'p3')).toBe("-130.000%"); }); }); @@ -274,65 +269,65 @@ describe('standard currency formatting', () => { it('should apply format', () => { const number = 10; - expect(formatNumber(number, 'c')).toEqual("$10.00"); + expect(formatNumber(number, 'c')).toBe("$10.00"); }); it('should apply format with precision', () => { const number = 10; - expect(formatNumber(number, 'c0')).toEqual("$10"); + expect(formatNumber(number, 'c0')).toBe("$10"); }); it('should apply format for negative numbers', () => { const number = -10.3337; - expect(formatNumber(number, 'c3')).toEqual("-$10.334"); + expect(formatNumber(number, 'c3')).toBe("-$10.334"); }); it("should apply group separators", () => { - expect(formatNumber(123456789, "c")).toEqual("$123,456,789.00"); + expect(formatNumber(123456789, "c")).toBe("$123,456,789.00"); }); it("should not apply group separators to numbers with less digits", () => { - expect(formatNumber(123, "c")).toEqual("$123.00"); + expect(formatNumber(123, "c")).toBe("$123.00"); }); it("should apply format when passing language", () => { - expect(formatNumber(10, "c", "bg")).toEqual("10,00 лв."); + expect(formatNumber(10, "c", "bg")).toBe("10,00 лв."); }); it("should apply format when passing language and territory", () => { - expect(formatNumber(10, "c", "bg-BG")).toEqual("10,00 лв."); + expect(formatNumber(10, "c", "bg-BG")).toBe("10,00 лв."); }); it("should apply format when passing language and territory without symbol", () => { - expect(formatNumber(10, "c", "de-CH")).toEqual("CHF 10.00"); + expect(formatNumber(10, "c", "de-CH")).toBe("CHF 10.00"); }); it("should apply format when passing object", () => { - expect(formatNumber(10, { style: "currency" })).toEqual("$10.00"); + expect(formatNumber(10, { style: "currency" })).toBe("$10.00"); }); it("should apply format for specific currency", () => { - expect(formatNumber(10, { style: "currency", currency: "BGN" })).toEqual("BGN10.00"); + expect(formatNumber(10, { style: "currency", currency: "BGN" })).toBe("BGN10.00"); }); it("should apply specific currency display", () => { - expect(formatNumber(10, { style: "currency", currency: "BGN", currencyDisplay: "name" })).toEqual("10.00 Bulgarian leva"); + expect(formatNumber(10, { style: "currency", currency: "BGN", currencyDisplay: "name" })).toBe("10.00 Bulgarian leva"); }); it("should format negative currency with name", () => { - expect(formatNumber(-10, { style: "currency", currency: "BGN", currencyDisplay: "name" })).toEqual("-10.00 Bulgarian leva"); + expect(formatNumber(-10, { style: "currency", currency: "BGN", currencyDisplay: "name" })).toBe("-10.00 Bulgarian leva"); }); it("should format currency equal to one with name", () => { - expect(formatNumber(1, { style: "currency", currency: "BGN", currencyDisplay: "name" })).toEqual("1.00 Bulgarian lev"); + expect(formatNumber(1, { style: "currency", currency: "BGN", currencyDisplay: "name" })).toBe("1.00 Bulgarian lev"); }); it("should apply minimumFractionDigits", () => { - expect(formatNumber(10, { style: "currency", minimumFractionDigits: 5 })).toEqual("$10.00000"); + expect(formatNumber(10, { style: "currency", minimumFractionDigits: 5 })).toBe("$10.00000"); }); it("should apply maximumFractionDigits", () => { - expect(formatNumber(10.1235, { style: "currency", maximumFractionDigits: 3 })).toEqual("$10.124"); + expect(formatNumber(10.1235, { style: "currency", maximumFractionDigits: 3 })).toBe("$10.124"); }); }); @@ -349,63 +344,63 @@ describe('standard accounting formatting', () => { }); it('should support minus zero', () => { - expect(formatNumber(-0, 'a2')).toEqual("($0.00)"); + expect(formatNumber(-0, 'a2')).toBe("($0.00)"); }); it('should apply format', () => { - expect(formatNumber(10, 'a', 'custom')).toEqual("10.00$"); + expect(formatNumber(10, 'a', 'custom')).toBe("10.00$"); }); it('should apply format with precision', () => { - expect(formatNumber(10, 'a0')).toEqual("$10"); + expect(formatNumber(10, 'a0')).toBe("$10"); }); it('should apply format for negative numbers', () => { - expect(formatNumber(-10.3337, 'a3')).toEqual("($10.334)"); + expect(formatNumber(-10.3337, 'a3')).toBe("($10.334)"); }); it("should apply group separators", () => { - expect(formatNumber(123456789, 'a')).toEqual("$123,456,789.00"); + expect(formatNumber(123456789, 'a')).toBe("$123,456,789.00"); }); it("should not apply group separators to numbers with less digits", () => { - expect(formatNumber(123, "a")).toEqual("$123.00"); + expect(formatNumber(123, "a")).toBe("$123.00"); }); it("should apply format when passing language", () => { - expect(formatNumber(10, "a", "bg")).toEqual("10,00 лв."); + expect(formatNumber(10, "a", "bg")).toBe("10,00 лв."); }); it("should apply format when passing language and territory", () => { - expect(formatNumber(10, "a", "bg-BG")).toEqual("10,00 лв."); + expect(formatNumber(10, "a", "bg-BG")).toBe("10,00 лв."); }); it("should apply format when passing object", () => { - expect(formatNumber(10, { style: "accounting" })).toEqual("$10.00"); + expect(formatNumber(10, { style: "accounting" })).toBe("$10.00"); }); it("should apply format for specific currency", () => { - expect(formatNumber(10, { style: "accounting", currency: "BGN" })).toEqual("BGN10.00"); + expect(formatNumber(10, { style: "accounting", currency: "BGN" })).toBe("BGN10.00"); }); it("should apply specific currency display", () => { - expect(formatNumber(10, { style: "accounting", currency: "BGN", currencyDisplay: "name" })).toEqual("10.00 Bulgarian leva"); + expect(formatNumber(10, { style: "accounting", currency: "BGN", currencyDisplay: "name" })).toBe("10.00 Bulgarian leva"); }); it("should format negative currency with name", () => { - expect(formatNumber(-10, { style: "accounting", currency: "BGN", currencyDisplay: "name" })).toEqual("-10.00 Bulgarian leva"); + expect(formatNumber(-10, { style: "accounting", currency: "BGN", currencyDisplay: "name" })).toBe("-10.00 Bulgarian leva"); }); it("should format currency equal to one with name", () => { - expect(formatNumber(1, { style: "accounting", currency: "BGN", currencyDisplay: "name" })).toEqual("1.00 Bulgarian lev"); + expect(formatNumber(1, { style: "accounting", currency: "BGN", currencyDisplay: "name" })).toBe("1.00 Bulgarian lev"); }); it("should apply minimumFractionDigits", () => { - expect(formatNumber(10, { style: "accounting", minimumFractionDigits: 5 })).toEqual("$10.00000"); + expect(formatNumber(10, { style: "accounting", minimumFractionDigits: 5 })).toBe("$10.00000"); }); it("should apply maximumFractionDigits", () => { - expect(formatNumber(10.1235, { style: "accounting", maximumFractionDigits: 3 })).toEqual("$10.124"); + expect(formatNumber(10.1235, { style: "accounting", maximumFractionDigits: 3 })).toBe("$10.124"); }); }); @@ -413,221 +408,221 @@ describe('standard accounting formatting', () => { describe('custom formatting', () => { it('replaces whole part of the number', () => { - expect(formatNumber(10.9, '#')).toEqual("11"); + expect(formatNumber(10.9, '#')).toBe("11"); }); it('should support minus zero with custom format', () => { - expect(formatNumber(-0, '0.00;(0.00)')).toEqual("(0.00)"); + expect(formatNumber(-0, '0.00;(0.00)')).toBe("(0.00)"); }); - it('replaces whole part of the number', () => { - expect(formatNumber(-0, '#')).toEqual("-0"); + it('does not replace the whole part of the number for integers', () => { + expect(formatNumber(-0, '#')).toBe("-0"); }); it('replaces # after 0 with 0', () => { - expect(formatNumber(10.1, '#0####')).toEqual("00010"); + expect(formatNumber(10.1, '#0####')).toBe("00010"); }); it('removes # after replace', () => { - expect(formatNumber(10.1, '####')).toEqual("10"); + expect(formatNumber(10.1, '####')).toBe("10"); }); it('applies thousand separator if pattern contains comma', () => { - expect(formatNumber(1000.1, '##,##')).toEqual("1,000"); + expect(formatNumber(1000.1, '##,##')).toBe("1,000"); }); it('does not apply thousand separator if there are not enough digits', () => { - expect(formatNumber(10, '##,##')).toEqual("10"); + expect(formatNumber(10, '##,##')).toBe("10"); }); it("applies thousand separator for negative integer", function() { - expect(formatNumber(-18000, '#,##0')).toEqual("-18,000"); + expect(formatNumber(-18000, '#,##0')).toBe("-18,000"); }); it('formats currency', () => { - expect(formatNumber(10, '$#.#')).toEqual("$10"); + expect(formatNumber(10, '$#.#')).toBe("$10"); }); it('formats currency with locale symbol', () => { - expect(formatNumber(10, '#.#$', 'bg')).toEqual("10лв."); + expect(formatNumber(10, '#.#$', 'bg')).toBe("10лв."); }); it('formats percentage', () => { - expect(formatNumber(0.5, '#.#%')).toEqual("50%"); + expect(formatNumber(0.5, '#.#%')).toBe("50%"); }); it('percentage does not leave trailing zeros if multiplication by 100 causes rounding error', () => { - expect(formatNumber(0.035, '#.##%')).toEqual("3.5%"); + expect(formatNumber(0.035, '#.##%')).toBe("3.5%"); }); it('applies thousand separator to a longer than the pattern number', () => { - expect(formatNumber(1000000.1, '#,###')).toEqual("1,000,000"); + expect(formatNumber(1000000.1, '#,###')).toBe("1,000,000"); }); it('replaces number in decimal part', () => { - expect(formatNumber(10.1, '####.#')).toEqual("10.1"); + expect(formatNumber(10.1, '####.#')).toBe("10.1"); }); it("replaces # before 0 with 0 in decimal part", () => { - expect(formatNumber(10.1, "####.####0#")).toEqual("10.10000"); + expect(formatNumber(10.1, "####.####0#")).toBe("10.10000"); }); it("replaces # from decimal part", function() { - expect(formatNumber(10.1, "####.####")).toEqual("10.1"); + expect(formatNumber(10.1, "####.####")).toBe("10.1"); }); it("replaces # correctly when exponential number", function() { - expect(formatNumber(0.0000001, "#.#######")).toEqual("0.0000001"); + expect(formatNumber(0.0000001, "#.#######")).toBe("0.0000001"); }); it("returns integer if no 0 in decimal part of the format", () => { - expect(formatNumber(10, "####.#")).toEqual("10"); + expect(formatNumber(10, "####.#")).toBe("10"); }); it("returns negative integer if no 0 in decimal part of the format", () => { - expect(formatNumber(-10, "####.#")).toEqual("-10"); + expect(formatNumber(-10, "####.#")).toBe("-10"); }); it("returns decimal if 0 in the decimal part of the format", () => { - expect(formatNumber(10, "####.#0#")).toEqual("10.00"); + expect(formatNumber(10, "####.#0#")).toBe("10.00"); }); it("does not round floating number to the last 0 if # follows", () => { - expect(formatNumber(10.12345, "0.000#####")).toEqual("10.12345"); + expect(formatNumber(10.12345, "0.000#####")).toBe("10.12345"); }); it("one digit after decimal point", () => { - expect(formatNumber(10, "####.0")).toEqual("10.0"); + expect(formatNumber(10, "####.0")).toBe("10.0"); }); it("rounds number if last sigh in the format is 0", () => { - expect(formatNumber(10.99, "####.0")).toEqual("11.0"); + expect(formatNumber(10.99, "####.0")).toBe("11.0"); }); it("decimal number 0.001", () => { - expect(formatNumber(0.001, "####.#0#")).toEqual("0.001"); + expect(formatNumber(0.001, "####.#0#")).toBe("0.001"); }); it("decimal number -0.001", () => { - expect(formatNumber(-0.001, "####.#0#")).toEqual("-0.001"); + expect(formatNumber(-0.001, "####.#0#")).toBe("-0.001"); }); it("formats with literals", () => { - expect(formatNumber(10.1, "'EFD' #")).toEqual("EFD 10"); + expect(formatNumber(10.1, "'EFD' #")).toBe("EFD 10"); }); it("formats with '# %'", () => { - expect(formatNumber(10.1, "# %")).toEqual("1010 %"); + expect(formatNumber(10.1, "# %")).toBe("1010 %"); }); it("formats with percent symbol as literal", () => { - expect(formatNumber(10, "# '%'")).toEqual("10 %"); + expect(formatNumber(10, "# '%'")).toBe("10 %"); }); it("formats with escaped percent symbol", () => { - expect(formatNumber(10, "# \\%")).toEqual("10 %"); + expect(formatNumber(10, "# \\%")).toBe("10 %"); }); it("formats with question mark as literal", () => { - expect(formatNumber(10, "?\\$#")).toEqual("?$10"); - expect(formatNumber(10, "\\?\\$#")).toEqual("?$10"); + expect(formatNumber(10, "?\\$#")).toBe("?$10"); + expect(formatNumber(10, "\\?\\$#")).toBe("?$10"); }); it("formats with quote as literal", () => { - expect(formatNumber(10, "# \"%\"")).toEqual("10 %"); + expect(formatNumber(10, "# \"%\"")).toBe("10 %"); }); it("formats with escaped ' ", () => { - expect(formatNumber(10, "# %\\'")).toEqual("1000 %'"); + expect(formatNumber(10, "# %\\'")).toBe("1000 %'"); }); it("does not crash when number placeholder is in literal", () => { - expect(formatNumber(10.12, "#.# '# y.0'")).toEqual("10.1 # y.0"); + expect(formatNumber(10.12, "#.# '# y.0'")).toBe("10.1 # y.0"); }); it("does not throw exception when format integer with 0.## format", () => { - expect(formatNumber(4, "0.##")).toEqual("4"); + expect(formatNumber(4, "0.##")).toBe("4"); }); it("formats correctly big integer using custom format", () => { - expect(formatNumber(4000, "0,000.##########")).toEqual("4,000"); + expect(formatNumber(4000, "0,000.##########")).toBe("4,000"); }); it("adds leading zero if number is shorter than format with group separator ", () => { - expect(formatNumber(300, "0,000.##########")).toEqual("0,300"); + expect(formatNumber(300, "0,000.##########")).toBe("0,300"); }); it("adds group separator to a leading zeros number", () => { - expect(formatNumber(300, "0,000,000.##########")).toEqual("0,000,300"); + expect(formatNumber(300, "0,000,000.##########")).toBe("0,000,300"); }); it("adds [3,2] group separators when custom format is used", () => { loadCustom({ pattern: "#,##,##0.###"}); - expect(formatNumber(33111110, "#,##,##,##,###.00", "custom")).toEqual("3,31,11,110.00"); + expect(formatNumber(33111110, "#,##,##,##,###.00", "custom")).toBe("3,31,11,110.00"); }); it("rounds the number if custom format is used", () => { - expect(formatNumber(3.235555, "0.##")).toEqual("3.24"); - expect(formatNumber(3.235555, "0.#0")).toEqual("3.24"); + expect(formatNumber(3.235555, "0.##")).toBe("3.24"); + expect(formatNumber(3.235555, "0.#0")).toBe("3.24"); }); it("removes trailing zeros after rounding", () => { - expect(formatNumber(0.016999999999, "#.#####")).toEqual("0.017"); - expect(formatNumber(0.016999999999, "#.0000#")).toEqual("0.0170"); - expect(formatNumber(1.999, "0.0#")).toEqual("2.0"); - expect(formatNumber(1.999, "0.#")).toEqual("2"); + expect(formatNumber(0.016999999999, "#.#####")).toBe("0.017"); + expect(formatNumber(0.016999999999, "#.0000#")).toBe("0.0170"); + expect(formatNumber(1.999, "0.0#")).toBe("2.0"); + expect(formatNumber(1.999, "0.#")).toBe("2"); }); it("removes decimal part if no number placeholder", () => { - expect(formatNumber(3.222, "0.")).toEqual("3"); + expect(formatNumber(3.222, "0.")).toBe("3"); }); it("formats negative numbers", () => { - expect(formatNumber(-1, "0##")).toEqual("-001"); + expect(formatNumber(-1, "0##")).toBe("-001"); }); it("applies negative format", () => { - expect(formatNumber(-0.001, "####;-(#.###)")).toEqual("-(0.001)"); + expect(formatNumber(-0.001, "####;-(#.###)")).toBe("-(0.001)"); }); it("applies negative format rounding", () => { - expect(formatNumber(-0.001, "####;-(#.#)")).toEqual("-(0)"); + expect(formatNumber(-0.001, "####;-(#.#)")).toBe("-(0)"); }); it("toString decimal number -1000 with negative format", () => { - expect(formatNumber(-1000, "#,##0;(#,##0);-")).toEqual("(1,000)"); + expect(formatNumber(-1000, "#,##0;(#,##0);-")).toBe("(1,000)"); }); - it("applies negative format", () => { - expect(formatNumber(-123, "####;-(#.00)")).toEqual("-(123.00)"); + it("applies negative format to integers", () => { + expect(formatNumber(-123, "####;-(#.00)")).toBe("-(123.00)"); }); it("clears negative sign if rounded number is positive", () => { - expect(formatNumber(-0.00001, "#.##")).toEqual("0"); + expect(formatNumber(-0.00001, "#.##")).toBe("0"); }); it("formats 0", () => { - expect(formatNumber(0, "####;-(#.#);ZERO")).toEqual("ZERO"); + expect(formatNumber(0, "####;-(#.#);ZERO")).toBe("ZERO"); }); it("applies #.00 format for zero number", () => { - expect(formatNumber(0, "####;-(#.00);#.00")).toEqual("0.00"); + expect(formatNumber(0, "####;-(#.00);#.00")).toBe("0.00"); }); it("removes incorrect decimal separators", () => { - expect(formatNumber(10, "# y. it")).toEqual("10 y it"); + expect(formatNumber(10, "# y. it")).toBe("10 y it"); }); it("formats correctly big integer values", () => { - expect(formatNumber(5285654313, "#.########0")).toEqual("5285654313.000000000"); + expect(formatNumber(5285654313, "#.########0")).toBe("5285654313.000000000"); }); it("rounds 17.115", () => { - expect(formatNumber(17.115, "#.##")).toEqual("17.12"); + expect(formatNumber(17.115, "#.##")).toBe("17.12"); }); it("returns number if format is a constant", () => { - expect(formatNumber(0, "Foo")).toEqual("0"); + expect(formatNumber(0, "Foo")).toBe("0"); }); }); @@ -661,7 +656,7 @@ describe('parseNumber', () => { }); it("parses string number", () => { - expect(parseNumber("12.12")).toEqual(12.12); + expect(parseNumber("12.12")).toBe(12.12); }); it("returns null if incorrect value is passed", () => { @@ -681,130 +676,126 @@ describe('parseNumber', () => { }); it("parses locale specific float numbers", () => { - expect(parseNumber("12,13", "bg")).toEqual(12.13); + expect(parseNumber("12,13", "bg")).toBe(12.13); }); it("parses locale numbers with group separators", () => { - expect(parseNumber("1,123.12", "en-US")).toEqual(1123.12); - expect(parseNumber("1 123 112,13", "bg-BG")).toEqual(1123112.13); - }); - - it("parses currency numbers", () => { - expect(parseNumber("$12")).toEqual(12); + expect(parseNumber("1,123.12", "en-US")).toBe(1123.12); + expect(parseNumber("1 123 112,13", "bg-BG")).toBe(1123112.13); }); it("parses currency numbers", () => { - expect(parseNumber("$12")).toEqual(12); + expect(parseNumber("$12")).toBe(12); }); it("parses currency numbers with non-default currency display", () => { - expect(parseNumber("US dollars12")).toEqual(12); - expect(parseNumber("US dollar12")).toEqual(12); + expect(parseNumber("US dollars12")).toBe(12); + expect(parseNumber("US dollar12")).toBe(12); }); it("parses locale currency numbers", () => { - expect(parseNumber("лв.12", "bg")).toEqual(12); + expect(parseNumber("лв.12", "bg")).toBe(12); }); it("parses locale currency floating numbers", () => { - expect(parseNumber("лв.1 123 112,13", "bg")).toEqual(1123112.13); + expect(parseNumber("лв.1 123 112,13", "bg")).toBe(1123112.13); }); it("parses non-default for the locale currency", () => { - expect(parseNumber("€12", "en", { currency: "EUR"})).toEqual(12); + expect(parseNumber("€12", "en", { currency: "EUR"})).toBe(12); }); it("parses accounting numbers", () => { - expect(parseNumber("$12", 'en', 'a')).toEqual(12); - expect(parseNumber("$12", 'en', { style: 'accounting' })).toEqual(12); + expect(parseNumber("$12", 'en', 'a')).toBe(12); + expect(parseNumber("$12", 'en', { style: 'accounting' })).toBe(12); }); it("parses accounting numbers with negative pattern", () => { - expect(parseNumber("($12)", 'en', 'a')).toEqual(-12); + expect(parseNumber("($12)", 'en', 'a')).toBe(-12); }); it("parses percent numbers", () => { - expect(parseNumber("% 12")).toEqual(0.12); + expect(parseNumber("% 12")).toBe(0.12); }); it("parses locale percent numbers", () => { - expect(parseNumber("%1 234,56", "bg")).toEqual(12.3456); + expect(parseNumber("%1 234,56", "bg")).toBe(12.3456); }); it("parses negative numbers", () => { - expect(parseNumber("-12,123.322")).toEqual(-12123.322); + expect(parseNumber("-12,123.322")).toBe(-12123.322); }); it("parses negative currency numbers", () => { - expect(parseNumber("-$12")).toEqual(-12); + expect(parseNumber("-$12")).toBe(-12); }); it("parses locale negative currency numbers", () => { - expect(parseNumber("-1 123 112,13 лв.", "bg")).toEqual(-1123112.13); + expect(parseNumber("-1 123 112,13 лв.", "bg")).toBe(-1123112.13); }); it("parses currency with custom format", () => { - expect(parseNumber("$12", 'en', '$#.#')).toEqual(12); - expect(parseNumber("-$12", 'en', '$#.#')).toEqual(-12); + expect(parseNumber("$12", 'en', '$#.#')).toBe(12); + expect(parseNumber("-$12", 'en', '$#.#')).toBe(-12); }); it("parses percent with custom format", () => { - expect(parseNumber("% 12", 'en', '% #.#')).toEqual(0.12); - expect(parseNumber("% -12", 'en', '% #.#')).toEqual(-0.12); + expect(parseNumber("% 12", 'en', '% #.#')).toBe(0.12); + expect(parseNumber("% -12", 'en', '% #.#')).toBe(-0.12); }); it("parses number with custom format literals", () => { - expect(parseNumber("foo12", 'en', '"foo"#.#')).toEqual(12); - expect(parseNumber("T12", 'en', '\\T#.#')).toEqual(12); + expect(parseNumber("foo12", 'en', '"foo"#.#')).toBe(12); + expect(parseNumber("T12", 'en', '\\T#.#')).toBe(12); }); it("parses currency numbers with negative format", () => { loadCustom({ currencyPattern: "¤#,##0.00;(¤#,##0.00)", currencies: { USD: { symbol: "$" }}}); - expect(parseNumber("($1,123,112.13)", "custom", { style: "currency", currency: "USD" })).toEqual(-1123112.13); + expect(parseNumber("($1,123,112.13)", "custom", { style: "currency", currency: "USD" })).toBe(-1123112.13); }); it("parses negative percent numbers", () => { - expect(parseNumber("-12%")).toEqual(-0.12); + expect(parseNumber("-12%")).toBe(-0.12); }); it("parses exponential numbers", () => { - expect(parseNumber("1.23432e+5")).toEqual(123432); + expect(parseNumber("1.23432e+5")).toBe(123432); }); it("parses negative exponential numbers", () => { - expect(parseNumber("-1.23432e-1")).toEqual(-0.123432); + expect(parseNumber("-1.23432e-1")).toBe(-0.123432); }); it("parses exponential numbers with capital case", () => { - expect(parseNumber("1E-7")).toEqual(0.0000001); + expect(parseNumber("1E-7")).toBe(0.0000001); }); it("parses localized exponential numbers", () => { - expect(parseNumber("1,23432e+5", "bg")).toEqual(123432); + expect(parseNumber("1,23432e+5", "bg")).toBe(123432); }); it("parses 0.70% to percent", () => { - expect(parseNumber('0.70%')).toEqual(0.007); + expect(parseNumber('0.70%')).toBe(0.007); }); it("parses 0.14% to percent", () => { - expect(parseNumber('0.14%')).toEqual(0.0014); + expect(parseNumber('0.14%')).toBe(0.0014); }); it("parses 0.141% to percent", () => { - expect(parseNumber('0.141%')).toEqual(0.00141); + expect(parseNumber('0.141%')).toBe(0.00141); }); it("parses 0.68% to percent", () => { - expect(parseNumber('0.68%')).toEqual(0.0068); + expect(parseNumber('0.68%')).toBe(0.0068); }); it("parses 17.17% to percent", () => { - expect(parseNumber('17.17%')).toEqual(0.1717); + expect(parseNumber('17.17%')).toBe(0.1717); }); it("parses 0.1234567891245% to percent", () => { - expect(parseNumber('0.1234567891245%')).toEqual(0.001234567891245); + expect(parseNumber('0.1234567891245%')).toBe(0.001234567891245); }); describe('errors', () => {