OptionsNormalizer.spec.ts 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { IObfuscatorOptions } from '../../src/interfaces/IObfuscatorOptions';
  2. import { IOptions } from '../../src/interfaces/IOptions';
  3. import { DEFAULT_PRESET } from '../../src/preset-options/DefaultPreset';
  4. import { Options } from '../../src/options/Options';
  5. import { OptionsNormalizer } from '../../src/options/OptionsNormalizer';
  6. const assert: Chai.AssertStatic = require('chai').assert;
  7. describe('OptionsNormalizer', () => {
  8. describe('normalizeOptions (options: IObfuscatorOptions): IObfuscatorOptions', () => {
  9. let options1: IOptions,
  10. options2: IOptions,
  11. options3: IOptions,
  12. optionsPreset1: IObfuscatorOptions,
  13. optionsPreset2: IObfuscatorOptions,
  14. optionsPreset3: IObfuscatorOptions,
  15. expectedOptionsPreset1: IObfuscatorOptions,
  16. expectedOptionsPreset2: IObfuscatorOptions,
  17. expectedOptionsPreset3: IObfuscatorOptions;
  18. beforeEach(() => {
  19. optionsPreset1 = Object.assign({}, DEFAULT_PRESET, {
  20. compact: false,
  21. rotateStringsArray: true,
  22. sourceMapBaseUrl: 'http://localhost:9000',
  23. stringsArray: false,
  24. stringsArrayEncoding: 'rc4',
  25. stringsArrayThreshold: 0.5
  26. });
  27. optionsPreset2 = Object.assign({}, DEFAULT_PRESET, {
  28. rotateStringsArray: true,
  29. sourceMapBaseUrl: 'http://localhost:9000',
  30. sourceMapFileName: '//outputSourceMapName',
  31. stringsArray: true,
  32. stringsArrayThreshold: 0
  33. });
  34. optionsPreset3 = Object.assign({}, DEFAULT_PRESET, {
  35. domainLock: ['//localhost:9000', 'https://google.ru/abc?cde=fgh'],
  36. sourceMapFileName: '/outputSourceMapName.map',
  37. stringsArray: true,
  38. stringsArrayEncoding: true
  39. });
  40. expectedOptionsPreset1 = Object.assign({}, DEFAULT_PRESET, {
  41. compact: true,
  42. rotateStringsArray: false,
  43. sourceMapBaseUrl: '',
  44. stringsArray: false,
  45. stringsArrayEncoding: false,
  46. stringsArrayThreshold: 0
  47. });
  48. expectedOptionsPreset2 = Object.assign({}, DEFAULT_PRESET, {
  49. rotateStringsArray: false,
  50. sourceMapBaseUrl: 'http://localhost:9000/',
  51. sourceMapFileName: 'outputSourceMapName.js.map',
  52. stringsArray: false,
  53. stringsArrayThreshold: 0
  54. });
  55. expectedOptionsPreset3 = Object.assign({}, DEFAULT_PRESET, {
  56. domainLock: ['localhost', 'google.ru'],
  57. sourceMapFileName: 'outputSourceMapName.js.map',
  58. stringsArray: true,
  59. stringsArrayEncoding: 'base64'
  60. });
  61. options1 = new Options(optionsPreset1);
  62. options2 = new Options(optionsPreset2);
  63. options3 = new Options(optionsPreset3);
  64. });
  65. it('should normalize options preset', () => {
  66. assert.deepEqual(OptionsNormalizer.normalizeOptions(options1), expectedOptionsPreset1);
  67. assert.deepEqual(OptionsNormalizer.normalizeOptions(options2), expectedOptionsPreset2);
  68. assert.deepEqual(OptionsNormalizer.normalizeOptions(options3), expectedOptionsPreset3);
  69. });
  70. });
  71. });