EscapeSequenceEncoder.spec.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { assert } from 'chai';
  2. import { InversifyContainerFacade } from '../../../src/container/InversifyContainerFacade';
  3. import { ServiceIdentifiers } from '../../../src/container/ServiceIdentifiers';
  4. import { IInversifyContainerFacade } from '../../../src/interfaces/container/IInversifyContainerFacade';
  5. import { IEscapeSequenceEncoder } from '../../../src/interfaces/utils/IEscapeSequenceEncoder';
  6. describe('EscapeSequenceEncoder', () => {
  7. describe('encode', () => {
  8. let escapeSequenceEncoder: IEscapeSequenceEncoder;
  9. before(() => {
  10. const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade();
  11. inversifyContainerFacade.load('', '', {});
  12. escapeSequenceEncoder = inversifyContainerFacade
  13. .get<IEscapeSequenceEncoder>(ServiceIdentifiers.IEscapeSequenceEncoder);
  14. });
  15. describe('Variant #1: default', () => {
  16. const string: string = 'string';
  17. const expectedString: string = '\\x73\\x74\\x72\\x69\\x6e\\x67';
  18. let actualString: string;
  19. before(() => {
  20. actualString = escapeSequenceEncoder.encode(string, true);
  21. });
  22. it('should return a string where all characters are encoded', () => {
  23. assert.equal(actualString, expectedString);
  24. });
  25. });
  26. describe('Variant #2: escape `escape sequences`', () => {
  27. const string: string = 'abc\'\\r\\n';
  28. const expectedString: string = 'abc\\x27\\x5cr\\x5cn';
  29. let actualString: string;
  30. before(() => {
  31. actualString = escapeSequenceEncoder.encode(string, false);
  32. });
  33. it('should return a string where all `escape sequences` are encoded', () => {
  34. assert.equal(actualString, expectedString);
  35. });
  36. });
  37. });
  38. });