mirror of
https://github.com/badges/shields.git
synced 2025-04-18 19:44:04 +03:00
* add and consistently use parseDate and renderDateBadge helpers also move - age - formatDate - formatRelativeDate to date.js * fix bug in wordpress last update badge * validate in formatDate() and age() it is going to be unlikely we'll invoke either of these directly now, but lets calidate here too * remove unusued imports * reverse colours for galaxy toolshed
114 lines
3.5 KiB
JavaScript
114 lines
3.5 KiB
JavaScript
import { test, given } from 'sazerac'
|
|
import {
|
|
starRating,
|
|
currencyFromCode,
|
|
ordinalNumber,
|
|
metric,
|
|
omitv,
|
|
addv,
|
|
maybePluralize,
|
|
} from './text-formatters.js'
|
|
|
|
describe('Text formatters', function () {
|
|
test(starRating, () => {
|
|
given(4.9).expect('★★★★★')
|
|
given(3.7).expect('★★★¾☆')
|
|
given(2.566).expect('★★½☆☆')
|
|
given(2.2).expect('★★¼☆☆')
|
|
given(3).expect('★★★☆☆')
|
|
given(2, 4).expect('★★☆☆')
|
|
})
|
|
|
|
test(currencyFromCode, () => {
|
|
given('CNY').expect('¥')
|
|
given('EUR').expect('€')
|
|
given('GBP').expect('₤')
|
|
given('USD').expect('$')
|
|
given('AUD').expect('AUD')
|
|
})
|
|
|
|
test(ordinalNumber, () => {
|
|
given(2).expect('2ⁿᵈ')
|
|
given(11).expect('11ᵗʰ')
|
|
given(23).expect('23ʳᵈ')
|
|
given(131).expect('131ˢᵗ')
|
|
})
|
|
|
|
test(metric, () => {
|
|
/* eslint-disable no-loss-of-precision */
|
|
given(0).expect('0')
|
|
given(999).expect('999')
|
|
given(1000).expect('1k')
|
|
given(1100).expect('1.1k')
|
|
given(10100).expect('10k')
|
|
given(999499).expect('999k')
|
|
given(999500).expect('1M')
|
|
given(1100000).expect('1.1M')
|
|
given(1578896212).expect('1.6G')
|
|
given(20000000000).expect('20G')
|
|
given(15788962120).expect('16G')
|
|
given(9949999999999).expect('9.9T')
|
|
given(9950000000001).expect('10T')
|
|
given(4000000000000001).expect('4P')
|
|
given(4200000000000001).expect('4.2P')
|
|
given(7100700010058000200).expect('7.1E')
|
|
given(71007000100580002000).expect('71E')
|
|
given(1000000000000000000000).expect('1Z')
|
|
given(1100000000000000000000).expect('1.1Z')
|
|
given(2222222222222222222222222).expect('2.2Y')
|
|
given(22222222222222222222222222).expect('22Y')
|
|
given(-999).expect('-999')
|
|
given(-999).expect('-999')
|
|
given(-1000).expect('-1k')
|
|
given(-1100).expect('-1.1k')
|
|
given(-10100).expect('-10k')
|
|
given(-999499).expect('-999k')
|
|
given(-999500).expect('-1M')
|
|
given(-1100000).expect('-1.1M')
|
|
given(-1578896212).expect('-1.6G')
|
|
given(-20000000000).expect('-20G')
|
|
given(-15788962120).expect('-16G')
|
|
given(-9949999999999).expect('-9.9T')
|
|
given(-9950000000001).expect('-10T')
|
|
given(-4000000000000001).expect('-4P')
|
|
given(-4200000000000001).expect('-4.2P')
|
|
given(-7100700010058000200).expect('-7.1E')
|
|
given(-71007000100580002000).expect('-71E')
|
|
given(-1000000000000000000000).expect('-1Z')
|
|
given(-1100000000000000000000).expect('-1.1Z')
|
|
given(-2222222222222222222222222).expect('-2.2Y')
|
|
given(-22222222222222222222222222).expect('-22Y')
|
|
/* eslint-enable */
|
|
})
|
|
|
|
test(omitv, () => {
|
|
given('hello').expect('hello')
|
|
given('v1.0.1').expect('1.0.1')
|
|
})
|
|
|
|
test(addv, () => {
|
|
given(9).expect('v9')
|
|
given(0.1).expect('v0.1')
|
|
given('1.0.0').expect('v1.0.0')
|
|
given('v0.6').expect('v0.6')
|
|
given('hello').expect('hello')
|
|
given('2017-05-05-Release-2.3.17').expect('2017-05-05-Release-2.3.17')
|
|
given('5aa272da7924fa76581fd5ea83b24cfbb3528b8a').expect(
|
|
'5aa272da7924fa76581fd5ea83b24cfbb3528b8a',
|
|
)
|
|
given('5aa272da79').expect('5aa272da79')
|
|
})
|
|
|
|
test(maybePluralize, () => {
|
|
given('foo', []).expect('foos')
|
|
given('foo', [123]).expect('foo')
|
|
given('foo', [123, 456]).expect('foos')
|
|
given('foo', undefined).expect('foos')
|
|
|
|
given('box', [], 'boxes').expect('boxes')
|
|
given('box', [123], 'boxes').expect('box')
|
|
given('box', [123, 456], 'boxes').expect('boxes')
|
|
given('box', undefined, 'boxes').expect('boxes')
|
|
})
|
|
})
|