CryptUtils.spec.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import { assert } from 'chai';
  2. import { CryptUtils } from '../../../../src/utils/CryptUtils';
  3. describe('CryptUtils', () => {
  4. describe('btoa (string: string): string', () => {
  5. const expectedString: string = 'c3RyaW5n';
  6. let string: string;
  7. before(() => {
  8. string = CryptUtils.btoa('string');
  9. });
  10. it('should create a base-64 encoded string from a given string', () => {
  11. assert.equal(string, expectedString);
  12. });
  13. });
  14. describe('hideString (str: string, length: number): [string, string]', () => {
  15. const originalString: string = 'example.com';
  16. const hiddenStringLength: number = 30;
  17. let hiddenString: string,
  18. diffString: string;
  19. before(() => {
  20. [hiddenString, diffString] = CryptUtils.hideString(originalString, hiddenStringLength);
  21. });
  22. describe('hidden string length check', () => {
  23. let originalStringActualLength: number,
  24. hiddenStringActualLength: number;
  25. before(() => {
  26. originalStringActualLength = originalString.length;
  27. hiddenStringActualLength = hiddenString.length;
  28. });
  29. it('should create hidden string with length equal or bigger than given length', () => {
  30. assert.isTrue(hiddenStringActualLength > originalStringActualLength);
  31. });
  32. });
  33. describe('hidden string content', () => {
  34. let hiddenStringWithoutDiff: string;
  35. before(() => {
  36. const regExp: RegExp = new RegExp(`[${diffString}]`, 'g');
  37. hiddenStringWithoutDiff = hiddenString.replace(regExp, '');
  38. });
  39. it('should return a hidden string with the original string within', () => {
  40. assert.equal(hiddenStringWithoutDiff, originalString);
  41. });
  42. });
  43. });
  44. describe('rc4 (string: string, key: string): string', () => {
  45. const string: string = 'test';
  46. const key: string = 'key';
  47. let encodedString: string,
  48. decodedString: string;
  49. before(() => {
  50. encodedString = CryptUtils.rc4(string, key);
  51. decodedString = CryptUtils.rc4(encodedString, key);
  52. });
  53. it('should encode string using the rc4 algorithm', () => {
  54. assert.notEqual(encodedString, string);
  55. });
  56. it('should encode and successfully decode string using the rc4 algorithm', () => {
  57. assert.equal(decodedString, string);
  58. });
  59. });
  60. });