pluralize.spec.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import pluralize from 'handsontable/i18n/phraseFormatters/pluralize';
  2. describe('i18n pluralize function', () => {
  3. it('should return selected form of phrase when handling array of phrase propositions', () => {
  4. const phrasePropositions = ['first', 'second', 'third'];
  5. expect(pluralize(phrasePropositions, 0)).toEqual('first');
  6. expect(pluralize(phrasePropositions, 1)).toEqual('second');
  7. expect(pluralize(phrasePropositions, 2)).toEqual('third');
  8. });
  9. it('should return untouched phrase when handling one phrase proposition', () => {
  10. const phraseProposition = 'first';
  11. expect(pluralize(phraseProposition)).toEqual(phraseProposition);
  12. expect(pluralize(phraseProposition, 2)).toEqual(phraseProposition);
  13. });
  14. it('should return untouched array of phrase propositions when function is called without the expected second parameter', () => {
  15. const phrasePropositions = ['first', 'second', 'third'];
  16. expect(pluralize(phrasePropositions, undefined)).toEqual(phrasePropositions);
  17. expect(pluralize(phrasePropositions, NaN)).toEqual(phrasePropositions);
  18. expect(pluralize(phrasePropositions, null)).toEqual(phrasePropositions);
  19. expect(pluralize(phrasePropositions, 1.2)).toEqual(phrasePropositions);
  20. });
  21. it('should return untouched first parameter when function is handling phrase propositions which are not a list', () => {
  22. expect(pluralize(NaN)).toEqual(NaN);
  23. expect(pluralize(NaN, 1)).toEqual(NaN);
  24. expect(pluralize(undefined)).toEqual(undefined);
  25. expect(pluralize(undefined, 1)).toEqual(undefined);
  26. expect(pluralize(0)).toEqual(0);
  27. expect(pluralize(0, 1)).toEqual(0);
  28. expect(pluralize(null)).toEqual(null);
  29. expect(pluralize(null, 1)).toEqual(null);
  30. expect(pluralize('', 1)).toEqual('');
  31. expect(pluralize('', 1)).toEqual('');
  32. });
  33. });