StringArrayTemplate.spec.ts 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import 'reflect-metadata';
  2. import { assert } from 'chai';
  3. import { IObfuscatedCode } from '../../../../../src/interfaces/source-code/IObfuscatedCode';
  4. import { NO_ADDITIONAL_NODES_PRESET } from '../../../../../src/options/presets/NoCustomNodes';
  5. import { JavaScriptObfuscator } from '../../../../../src/JavaScriptObfuscatorFacade';
  6. import { readFileAsString } from '../../../../helpers/readFileAsString';
  7. describe('StringArrayTemplate', () => {
  8. describe('Prevailing kind of variables', () => {
  9. describe('`var` kind', () => {
  10. let obfuscatedCode: string,
  11. stringArrayRegExp: RegExp = /var (_0x(\w){4}) *= *\['.*'];/;
  12. beforeEach(() => {
  13. const code: string = readFileAsString(__dirname + '/fixtures/prevailing-kind-of-variables-var.js');
  14. const obfuscatedCodeObject: IObfuscatedCode = JavaScriptObfuscator.obfuscate(
  15. code,
  16. {
  17. ...NO_ADDITIONAL_NODES_PRESET,
  18. stringArray: true,
  19. stringArrayThreshold: 1
  20. }
  21. );
  22. obfuscatedCode = obfuscatedCodeObject.getObfuscatedCode();
  23. });
  24. it('Should return correct kind of variables for string array', () => {
  25. assert.match(obfuscatedCode, stringArrayRegExp);
  26. });
  27. });
  28. describe('`const` kind', () => {
  29. let obfuscatedCode: string,
  30. stringArrayRegExp: RegExp = /const (_0x(\w){4}) *= *\['.*'];/;
  31. beforeEach(() => {
  32. const code: string = readFileAsString(__dirname + '/fixtures/prevailing-kind-of-variables-const.js');
  33. const obfuscatedCodeObject: IObfuscatedCode = JavaScriptObfuscator.obfuscate(
  34. code,
  35. {
  36. ...NO_ADDITIONAL_NODES_PRESET,
  37. stringArray: true,
  38. stringArrayThreshold: 1
  39. }
  40. );
  41. obfuscatedCode = obfuscatedCodeObject.getObfuscatedCode();
  42. });
  43. it('Should return correct kind of variables for string array', () => {
  44. assert.match(obfuscatedCode, stringArrayRegExp);
  45. });
  46. });
  47. describe('`let` kind', () => {
  48. let obfuscatedCode: string,
  49. stringArrayRegExp: RegExp = /const (_0x(\w){4}) *= *\['.*'];/;
  50. beforeEach(() => {
  51. const code: string = readFileAsString(__dirname + '/fixtures/prevailing-kind-of-variables-let.js');
  52. const obfuscatedCodeObject: IObfuscatedCode = JavaScriptObfuscator.obfuscate(
  53. code,
  54. {
  55. ...NO_ADDITIONAL_NODES_PRESET,
  56. stringArray: true,
  57. stringArrayThreshold: 1
  58. }
  59. );
  60. obfuscatedCode = obfuscatedCodeObject.getObfuscatedCode();
  61. });
  62. it('Should return correct kind of variables for string array', () => {
  63. assert.match(obfuscatedCode, stringArrayRegExp);
  64. });
  65. });
  66. });
  67. });