Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
it('has autogenerated tests', function() {
const mpc = new MakePlural(lc, opt)
expect(() => mpc.compile()).to.not.throw()
expect(mpc.tests[type]).to.not.be.empty
})
it('should not validate bad functions', function() {
var cldr = {
supplemental: {
'plurals-type-cardinal': {
xx: {
'pluralRule-count-one': 'n = 1 @integer 2',
'pluralRule-count-other': ''
}
}
}
},
prevRules = MakePlural.rules
MakePlural.load(cldr)
var mpc = new MakePlural('xx')
var mp = mpc.compile()
expect(mpc.test).to.throw(/self-test failed/)
MakePlural.rules = prevRules
})
})
function testPluralData(type, lc, getPlural) {
var opt = { cardinals: type == 'cardinal', ordinals: type == 'ordinal' }
it('has autogenerated tests', function() {
const mpc = new MakePlural(lc, opt)
expect(() => mpc.compile()).to.not.throw()
expect(mpc.tests[type]).to.not.be.empty
})
it('is included in the output', function() {
expect(getPlural(lc)).to.be.an.instanceOf(Function)
})
var mpc = new MakePlural(lc, opt)
var mp = mpc.compile()
for (var cat in mpc.tests[type]) {
describe(
cat + ': ' + MakePlural.rules[type][lc]['pluralRule-count-' + cat],
function() {
;(function(cat) {
it('Live data', function() {
var test = mpc.tests.testCat.bind(mpc.tests)
expect(() => test(type, cat, mp)).to.not.throw()
})
it('Output', function() {
var test = mpc.tests.testCat.bind(mpc.tests)
expect(() => test(type, cat, getPlural(lc))).to.not.throw()
})
})(cat)
}
it('should handle local options', function() {
var mp = new MakePlural('en', { ordinals: true }).compile()
expect(mp(2, true)).to.equal('two')
})
it('should handle global options', function() {
it('should validate default functions', function() {
var mpc = new MakePlural('en', { ordinals: true })
var mp = mpc.compile()
expect(() => mpc.test()).not.to.throw()
})
it('should not validate bad functions', function() {
var new_mp = lc => new MakePlural(lc)
expect(new_mp).to.throw()