123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import { IObfuscationResult } from '../../src/interfaces/IObfuscationResult';
- import { ISourceMapCorrector } from '../../src/interfaces/ISourceMapCorrector';
- import { TSourceMapMode } from '../../src/types/TSourceMapMode';
- import { SourceMapMode } from '../../src/enums/SourceMapMode';
- import { ObfuscationResult } from '../../src/ObfuscationResult';
- import { SourceMapCorrector } from '../../src/SourceMapCorrector';
- const assert: Chai.AssertStatic = require('chai').assert;
- /**
- * @param obfuscatedCode
- * @param sourceMap
- * @param sourceMapUrl
- * @param sourceMapMode
- */
- function getCorrectedObfuscationResult (
- obfuscatedCode: string,
- sourceMap: string,
- sourceMapUrl: string,
- sourceMapMode: TSourceMapMode
- ): IObfuscationResult {
- let obfuscationResult: IObfuscationResult = new ObfuscationResult(obfuscatedCode, sourceMap),
- sourceMapCorrector: ISourceMapCorrector = new SourceMapCorrector(
- obfuscationResult,
- sourceMapUrl,
- sourceMapMode
- );
- return sourceMapCorrector.correct();
- }
- describe('SourceMapCorrector', () => {
- describe('correct (): IObfuscationResult', () => {
- let expectedObfuscationResult: IObfuscationResult,
- obfuscatedCode: string = 'var test = 1;',
- sourceMap: string = 'test';
- it('should return untouched obfuscated code if source map does not exist', () => {
- expectedObfuscationResult = getCorrectedObfuscationResult(obfuscatedCode, '', '', SourceMapMode.Separate);
- assert.equal(expectedObfuscationResult.getObfuscatedCode(), obfuscatedCode);
- });
- describe('if source map is set and source map mode is `inline`', () => {
- before (() => {
- expectedObfuscationResult = getCorrectedObfuscationResult(
- obfuscatedCode,
- sourceMap,
- '',
- SourceMapMode.Inline
- );
- });
- it('should add source map to obfuscated code as base64 encoded string', () => {
- assert.match(expectedObfuscationResult.getObfuscatedCode(), /data:application\/json;base64/);
- });
- });
- it('should add source map import to obfuscated code if source map mode is `separate`', () => {
- expectedObfuscationResult = getCorrectedObfuscationResult(
- obfuscatedCode,
- sourceMap,
- 'output.js.map',
- SourceMapMode.Separate
- );
- assert.match(expectedObfuscationResult.getObfuscatedCode(), /sourceMappingURL=output\.js\.map/);
- });
- it('should not touch obfuscated code if source map mode is `separate` and `sourceMapUrl` is not set', () => {
- expectedObfuscationResult = getCorrectedObfuscationResult(
- obfuscatedCode,
- sourceMap,
- '',
- SourceMapMode.Separate
- );
- assert.equal(expectedObfuscationResult.getObfuscatedCode(), obfuscatedCode);
- });
- });
- });
|