UnicodeArrayCallsWrapperNodeTemplate.spec.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import 'format-unicorn';
  2. import { AtobTemplate } from '../../../../../src/templates/custom-nodes/AtobTemplate';
  3. import { UnicodeArrayBase64DecodeNodeTemplate } from '../../../../../src/templates/custom-nodes/unicode-array-nodes/unicode-array-calls-wrapper/UnicodeArrayBase64DecodeNodeTemplate';
  4. import { UnicodeArrayCallsWrapperTemplate } from '../../../../../src/templates/custom-nodes/unicode-array-nodes/unicode-array-calls-wrapper/UnicodeArrayCallsWrapperTemplate';
  5. import { Utils } from '../../../../../src/Utils';
  6. const assert: Chai.AssertStatic = require('chai').assert;
  7. /**
  8. * @param templateData
  9. * @param unicodeArrayName
  10. * @param unicodeArrayCallsWrapperName
  11. * @param index
  12. * @returns {Function}
  13. */
  14. function getFunctionFromTemplate (
  15. templateData: any,
  16. unicodeArrayName: string,
  17. unicodeArrayCallsWrapperName: string,
  18. index: string
  19. ) {
  20. let unicodeArrayCallsWrapperTemplate: string = UnicodeArrayCallsWrapperTemplate().formatUnicorn(templateData);
  21. return Function(`
  22. var ${unicodeArrayName} = ['${Utils.btoa('test1')}'];
  23. ${unicodeArrayCallsWrapperTemplate}
  24. return ${unicodeArrayCallsWrapperName}(${index});
  25. `)();
  26. }
  27. describe('UnicodeArrayCallsWrapperNodeTemplate (): string', () => {
  28. let unicodeArrayName: string = 'unicodeArrayName',
  29. unicodeArrayCallsWrapperName: string = 'unicodeArrayCallsWrapperName',
  30. atobDecodeNodeTemplate: string = UnicodeArrayBase64DecodeNodeTemplate().formatUnicorn({
  31. atobPolyfill: AtobTemplate(),
  32. selfDefendingCode: '',
  33. unicodeArrayCallsWrapperName
  34. });
  35. it('should correctly returns decoded value with atob encoding', () => {
  36. assert.deepEqual(getFunctionFromTemplate({
  37. decodeNodeTemplate: atobDecodeNodeTemplate,
  38. unicodeArrayCallsWrapperName,
  39. unicodeArrayName
  40. }, unicodeArrayName, unicodeArrayCallsWrapperName, '0x0'), 'test1');
  41. });
  42. });