router-options.spec.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import {describe} from 'mocha';
  2. import {expect} from './chai.js';
  3. import {format} from '@e22m4u/js-format';
  4. import {RouterOptions} from './router-options.js';
  5. describe('RouterOptions', function () {
  6. describe('requestBodyBytesLimit', function () {
  7. it('returns the default value', function () {
  8. const s = new RouterOptions();
  9. expect(s.requestBodyBytesLimit).to.be.eq(512000);
  10. });
  11. it('returns a value of the property "_requestBodyBytesLimit"', function () {
  12. const s = new RouterOptions();
  13. s._requestBodyBytesLimit = 1;
  14. expect(s.requestBodyBytesLimit).to.be.eq(1);
  15. s._requestBodyBytesLimit = 2;
  16. expect(s.requestBodyBytesLimit).to.be.eq(2);
  17. });
  18. });
  19. describe('setRequestBodyBytesLimit', function () {
  20. it('requires the first parameter to be a positive Number or 0', function () {
  21. const s = new RouterOptions();
  22. const throwable = v => () => s.setRequestBodyBytesLimit(v);
  23. const error = v =>
  24. format(
  25. 'The option "requestBodyBytesLimit" must be ' +
  26. 'a positive Number or 0, but %s given.',
  27. v,
  28. );
  29. expect(throwable('str')).to.throw(error('"str"'));
  30. expect(throwable('')).to.throw(error('""'));
  31. expect(throwable(-1)).to.throw(error('-1'));
  32. expect(throwable(true)).to.throw(error('true'));
  33. expect(throwable(false)).to.throw(error('false'));
  34. expect(throwable(null)).to.throw(error('null'));
  35. expect(throwable({})).to.throw(error('Object'));
  36. expect(throwable([])).to.throw(error('Array'));
  37. expect(throwable(undefined)).to.throw(error('undefined'));
  38. throwable(10)();
  39. throwable(0)();
  40. });
  41. it('sets the given value to the property "_requestBodyBytesLimit"', function () {
  42. const s = new RouterOptions();
  43. expect(s._requestBodyBytesLimit).to.be.eq(512000);
  44. s.setRequestBodyBytesLimit(0);
  45. expect(s._requestBodyBytesLimit).to.be.eq(0);
  46. });
  47. });
  48. });