to-upper-case-transformer.spec.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import {expect} from 'chai';
  2. import {format} from '@e22m4u/js-format';
  3. import {toUpperCaseTransformer} from './to-upper-case-transformer.js';
  4. describe('toUpperCaseTransformer', function () {
  5. it('returns undefined and null values as is', function () {
  6. const res1 = toUpperCaseTransformer(undefined, undefined, {});
  7. const res2 = toUpperCaseTransformer(null, undefined, {});
  8. expect(res1).to.be.undefined;
  9. expect(res2).to.be.null;
  10. });
  11. it('converts the given string to upper case', function () {
  12. const res = toUpperCaseTransformer('test', undefined, {});
  13. expect(res).to.be.eq('TEST');
  14. });
  15. it('throws an error if the given value is not a string', function () {
  16. const throwable = v => () =>
  17. toUpperCaseTransformer(v, undefined, {
  18. transformerName: 'toUpperCase',
  19. });
  20. const error = v =>
  21. format(
  22. 'The property transformer "toUpperCase" requires a String value, but %s given.',
  23. v,
  24. );
  25. expect(throwable(10)).to.throw(error('10'));
  26. expect(throwable(0)).to.throw(error('0'));
  27. expect(throwable(true)).to.throw(error('true'));
  28. expect(throwable(false)).to.throw(error('false'));
  29. expect(throwable({})).to.throw(error('Object'));
  30. expect(throwable([])).to.throw(error('Array'));
  31. throwable('str')();
  32. throwable('')();
  33. throwable(undefined)();
  34. throwable(null)();
  35. });
  36. });