UnicodeArrayCallsWrapperNodeTemplate.spec.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import 'format-unicorn';
  2. import { AtobTemplate } from '../../../../../src/templates/custom-nodes/AtobTemplate';
  3. import { UnicodeArrayAtobDecodeNodeTemplate } from '../../../../../src/templates/custom-nodes/unicode-array-nodes/unicode-array-calls-wrapper/UnicodeArrayAtobDecodeNodeTemplate';
  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 decodeFunctionName: string = 'decodeFunction',
  29. unicodeArrayName: string = 'unicodeArrayName',
  30. unicodeArrayCallsWrapperName: string = 'unicodeArrayCallsWrapperName',
  31. atobDecodeNodeTemplate: string = UnicodeArrayAtobDecodeNodeTemplate().formatUnicorn({
  32. atobPolyfill: AtobTemplate(),
  33. code: `value = ${decodeFunctionName}(decodedValues, index, value);`,
  34. decodeFunctionName,
  35. unicodeArrayCallsWrapperName
  36. });
  37. it('should correctly returns decoded value with atob encoding', () => {
  38. assert.deepEqual(getFunctionFromTemplate({
  39. decodeNodeTemplate: atobDecodeNodeTemplate,
  40. unicodeArrayCallsWrapperName,
  41. unicodeArrayName
  42. }, unicodeArrayName, unicodeArrayCallsWrapperName, '0x0'), 'test1');
  43. });
  44. });