UnicodeArrayDecodeNodeTemplate.spec.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import 'format-unicorn';
  2. import { AtobTemplate } from '../../../../../src/templates/custom-nodes/AtobTemplate';
  3. import { UnicodeArrayDecodeNodeTemplate } from '../../../../../src/templates/custom-nodes/unicode-array-nodes/unicode-array-decode-node/UnicodeArrayDecodeNodeTemplate';
  4. import { Utils } from '../../../../../src/Utils';
  5. const assert: Chai.AssertStatic = require('chai').assert;
  6. /**
  7. * @param templateData
  8. * @param unicodeArrayName
  9. * @returns {Function}
  10. */
  11. function getFunctionFromTemplate (templateData: any, unicodeArrayName: string) {
  12. let domainLockTemplate: string = UnicodeArrayDecodeNodeTemplate().formatUnicorn(templateData);
  13. return Function(`
  14. var ${unicodeArrayName} = ['${Utils.btoa('test1')}', '${Utils.btoa('test2')}'];
  15. ${domainLockTemplate}
  16. return ${unicodeArrayName};
  17. `)();
  18. }
  19. describe('UnicodeArrayDecodeNodeTemplate (): string', () => {
  20. let forLoopFunctionName: string = 'forLoop',
  21. code: string = `${forLoopFunctionName}();`,
  22. unicodeArrayName: string = 'unicodeArray';
  23. it('should correctly decode unicode array items from Base64', () => {
  24. assert.deepEqual(getFunctionFromTemplate({
  25. atobPolyfill: AtobTemplate(),
  26. code,
  27. forLoopFunctionName,
  28. unicodeArrayName: unicodeArrayName
  29. }, unicodeArrayName), ['test1', 'test2']);
  30. });
  31. });