JavaScriptObfuscatorInternal.spec.ts 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import { ServiceIdentifiers } from '../../src/container/ServiceIdentifiers';
  2. import { IInversifyContainerFacade } from '../../src/interfaces/container/IInversifyContainerFacade';
  3. import { IJavaScriptObfuscator } from '../../src/interfaces/IJavaScriptObfsucator';
  4. import { IObfuscationResult } from '../../src/interfaces/IObfuscationResult';
  5. import { NO_CUSTOM_NODES_PRESET } from '../../src/preset-options/NoCustomNodesPreset';
  6. import { InversifyContainerFacade } from '../../src/container/InversifyContainerFacade';
  7. const assert: Chai.AssertStatic = require('chai').assert;
  8. describe('JavaScriptObfuscatorInternal', () => {
  9. describe(`setSourceMapUrl (url: string)`, () => {
  10. let inversifyContainerFacade: IInversifyContainerFacade,
  11. javaScriptObfuscator: IJavaScriptObfuscator,
  12. obfuscationResult: IObfuscationResult,
  13. sourceMapUrl: string = 'test.js.map';
  14. it('should link obfuscated code with source map', () => {
  15. inversifyContainerFacade = new InversifyContainerFacade(
  16. Object.assign({}, NO_CUSTOM_NODES_PRESET, {
  17. sourceMap: true,
  18. sourceMapFileName: sourceMapUrl
  19. })
  20. );
  21. javaScriptObfuscator = inversifyContainerFacade
  22. .get<IJavaScriptObfuscator>(ServiceIdentifiers.IJavaScriptObfuscator);
  23. obfuscationResult = javaScriptObfuscator.obfuscate('var test = 1;');
  24. assert.match(
  25. obfuscationResult.getObfuscatedCode(),
  26. new RegExp(`sourceMappingURL=${sourceMapUrl}`))
  27. ;
  28. assert.isOk(JSON.parse(obfuscationResult.getSourceMap()).mappings);
  29. });
  30. it('should properly add base url to source map import inside obfuscated code if `sourceMapBaseUrl` is set', () => {
  31. const sourceMapBaseUrl: string = 'http://localhost:9000';
  32. inversifyContainerFacade = new InversifyContainerFacade(
  33. Object.assign({}, NO_CUSTOM_NODES_PRESET, {
  34. sourceMap: true,
  35. sourceMapBaseUrl: sourceMapBaseUrl,
  36. sourceMapFileName: sourceMapUrl
  37. })
  38. );
  39. javaScriptObfuscator = inversifyContainerFacade
  40. .get<IJavaScriptObfuscator>(ServiceIdentifiers.IJavaScriptObfuscator);
  41. obfuscationResult = javaScriptObfuscator.obfuscate('var test = 1;');
  42. assert.match(
  43. obfuscationResult.getObfuscatedCode(),
  44. new RegExp(`sourceMappingURL=${sourceMapBaseUrl}/${sourceMapUrl}$`))
  45. ;
  46. assert.isOk(JSON.parse(obfuscationResult.getSourceMap()).mappings);
  47. });
  48. });
  49. });