router-options.spec.js 1.9 KB

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