StringArrayTemplate.spec.ts 3.7 KB

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