JavaScriptObfuscatorInternal.spec.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { ServiceIdentifiers } from '../../src/container/ServiceIdentifiers';
  2. import { assert } from 'chai';
  3. import { IInversifyContainerFacade } from '../../src/interfaces/container/IInversifyContainerFacade';
  4. import { IJavaScriptObfuscator } from '../../src/interfaces/IJavaScriptObfsucator';
  5. import { IObfuscationResult } from '../../src/interfaces/IObfuscationResult';
  6. import { NO_CUSTOM_NODES_PRESET } from '../../src/options/presets/NoCustomNodes';
  7. import { InversifyContainerFacade } from '../../src/container/InversifyContainerFacade';
  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. ...NO_CUSTOM_NODES_PRESET,
  17. sourceMap: true,
  18. sourceMapFileName: sourceMapUrl
  19. });
  20. javaScriptObfuscator = inversifyContainerFacade
  21. .get<IJavaScriptObfuscator>(ServiceIdentifiers.IJavaScriptObfuscator);
  22. obfuscationResult = javaScriptObfuscator.obfuscate('var test = 1;');
  23. assert.match(
  24. obfuscationResult.getObfuscatedCode(),
  25. new RegExp(`sourceMappingURL=${sourceMapUrl}`))
  26. ;
  27. assert.isOk(JSON.parse(obfuscationResult.getSourceMap()).mappings);
  28. });
  29. it('should properly add base url to source map import inside obfuscated code if `sourceMapBaseUrl` is set', () => {
  30. const sourceMapBaseUrl: string = 'http://localhost:9000';
  31. inversifyContainerFacade = new InversifyContainerFacade({
  32. ...NO_CUSTOM_NODES_PRESET,
  33. sourceMap: true,
  34. sourceMapBaseUrl: sourceMapBaseUrl,
  35. sourceMapFileName: sourceMapUrl
  36. });
  37. javaScriptObfuscator = inversifyContainerFacade
  38. .get<IJavaScriptObfuscator>(ServiceIdentifiers.IJavaScriptObfuscator);
  39. obfuscationResult = javaScriptObfuscator.obfuscate('var test = 1;');
  40. assert.match(
  41. obfuscationResult.getObfuscatedCode(),
  42. new RegExp(`sourceMappingURL=${sourceMapBaseUrl}/${sourceMapUrl}$`))
  43. ;
  44. assert.isOk(JSON.parse(obfuscationResult.getSourceMap()).mappings);
  45. });
  46. });
  47. });