87 lines
3.2 KiB
JavaScript
87 lines
3.2 KiB
JavaScript
(function() {
|
|
var assert, vows;
|
|
|
|
vows = require('vows');
|
|
|
|
assert = require('assert');
|
|
|
|
vows.describe('Module Inflector inflections').addBatch({
|
|
'Test inflector inflections': {
|
|
topic: require('../../lib/inflections'),
|
|
'clear': {
|
|
'single': function(topic) {
|
|
topic.uncountables = [1, 2, 3];
|
|
topic.humans = [1, 2, 3];
|
|
topic.clear('uncountables');
|
|
assert.isEmpty(topic.uncountables);
|
|
return assert.deepEqual(topic.humans, [1, 2, 3]);
|
|
},
|
|
'all': function(topic) {
|
|
assert.deepEqual(topic.humans, [1, 2, 3]);
|
|
topic.uncountables = [1, 2, 3];
|
|
topic.clear();
|
|
assert.isEmpty(topic.uncountables);
|
|
return assert.isEmpty(topic.humans);
|
|
}
|
|
},
|
|
'uncountable': {
|
|
'one item': function(topic) {
|
|
topic.clear();
|
|
assert.isEmpty(topic.uncountables);
|
|
topic.uncountable('money');
|
|
return assert.deepEqual(topic.uncountables, ['money']);
|
|
},
|
|
'many items': function(topic) {
|
|
topic.clear();
|
|
assert.isEmpty(topic.uncountables);
|
|
topic.uncountable(['money', 'rice']);
|
|
return assert.deepEqual(topic.uncountables, ['money', 'rice']);
|
|
}
|
|
},
|
|
'human': function(topic) {
|
|
topic.clear();
|
|
assert.isEmpty(topic.humans);
|
|
topic.human("legacy_col_person_name", "Name");
|
|
return assert.deepEqual(topic.humans, [["legacy_col_person_name", "Name"]]);
|
|
},
|
|
'plural': function(topic) {
|
|
topic.clear();
|
|
assert.isEmpty(topic.plurals);
|
|
topic.plural('ox', 'oxen');
|
|
assert.deepEqual(topic.plurals, [['ox', 'oxen']]);
|
|
topic.uncountable('money');
|
|
assert.deepEqual(topic.uncountables, ['money']);
|
|
topic.uncountable('monies');
|
|
topic.plural('money', 'monies');
|
|
assert.deepEqual(topic.plurals, [['money', 'monies'], ['ox', 'oxen']]);
|
|
return assert.isEmpty(topic.uncountables);
|
|
},
|
|
'singular': function(topic) {
|
|
topic.clear();
|
|
assert.isEmpty(topic.singulars);
|
|
topic.singular('ox', 'oxen');
|
|
assert.deepEqual(topic.singulars, [['ox', 'oxen']]);
|
|
topic.uncountable('money');
|
|
assert.deepEqual(topic.uncountables, ['money']);
|
|
topic.uncountable('monies');
|
|
topic.singular('money', 'monies');
|
|
assert.deepEqual(topic.singulars, [['money', 'monies'], ['ox', 'oxen']]);
|
|
return assert.isEmpty(topic.uncountables);
|
|
},
|
|
'irregular': function(topic) {
|
|
topic.clear();
|
|
topic.uncountable(['octopi', 'octopus']);
|
|
assert.deepEqual(topic.uncountables, ['octopi', 'octopus']);
|
|
topic.irregular('octopus', 'octopi');
|
|
assert.isEmpty(topic.uncountables);
|
|
assert.equal(topic.singulars[0][0].toString(), /(o)ctopi$/i.toString());
|
|
assert.equal(topic.singulars[0][1], '$1ctopus');
|
|
assert.equal(topic.plurals[0][0].toString(), /(o)ctopi$/i.toString());
|
|
assert.equal(topic.plurals[0][1], '$1ctopi');
|
|
assert.equal(topic.plurals[1][0].toString(), /(o)ctopus$/i.toString());
|
|
return assert.equal(topic.plurals[1][1].toString(), '$1ctopi');
|
|
}
|
|
}
|
|
})["export"](module);
|
|
|
|
}).call(this);
|