|
@@ -4,15 +4,47 @@ import { ServiceIdentifiers } from '../../../src/container/ServiceIdentifiers';
|
|
|
|
|
|
import { assert } from 'chai';
|
|
|
|
|
|
+import { TInputOptions } from '../../../src/types/options/TInputOptions';
|
|
|
import { TTypeFromEnum } from '../../../src/types/utils/TTypeFromEnum';
|
|
|
|
|
|
import { IInversifyContainerFacade } from '../../../src/interfaces/container/IInversifyContainerFacade';
|
|
|
import { IObfuscationResult } from '../../../src/interfaces/source-code/IObfuscationResult';
|
|
|
+import { IOptions } from '../../../src/interfaces/options/IOptions';
|
|
|
|
|
|
import { SourceMapMode } from '../../../src/enums/source-map/SourceMapMode';
|
|
|
|
|
|
+import { DEFAULT_PRESET } from '../../../src/options/presets/Default';
|
|
|
+
|
|
|
import { InversifyContainerFacade } from '../../../src/container/InversifyContainerFacade';
|
|
|
|
|
|
+/**
|
|
|
+ * @param {string} rawObfuscatedCode
|
|
|
+ * @param {TInputOptions} options
|
|
|
+ * @returns {IObfuscationResult}
|
|
|
+ */
|
|
|
+function getObfuscationResult (
|
|
|
+ rawObfuscatedCode: string,
|
|
|
+ options: TInputOptions
|
|
|
+): IObfuscationResult {
|
|
|
+ const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade();
|
|
|
+
|
|
|
+ inversifyContainerFacade.load(
|
|
|
+ '',
|
|
|
+ '',
|
|
|
+ {
|
|
|
+ ...DEFAULT_PRESET,
|
|
|
+ ...options
|
|
|
+ }
|
|
|
+ );
|
|
|
+
|
|
|
+ const obfuscationResult: IObfuscationResult = inversifyContainerFacade
|
|
|
+ .get<IObfuscationResult>(ServiceIdentifiers.IObfuscationResult);
|
|
|
+
|
|
|
+ obfuscationResult.initialize(rawObfuscatedCode, '');
|
|
|
+
|
|
|
+ return obfuscationResult;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* @param rawObfuscatedCode
|
|
|
* @param sourceMap
|
|
@@ -20,7 +52,7 @@ import { InversifyContainerFacade } from '../../../src/container/InversifyContai
|
|
|
* @param sourceMapFileName
|
|
|
* @param sourceMapMode
|
|
|
*/
|
|
|
-function getObfuscationResult (
|
|
|
+function getSourceMapObfuscationResult (
|
|
|
rawObfuscatedCode: string,
|
|
|
sourceMap: string,
|
|
|
sourceMapBaseUrl: string,
|
|
@@ -33,10 +65,11 @@ function getObfuscationResult (
|
|
|
'',
|
|
|
'',
|
|
|
{
|
|
|
+ ...DEFAULT_PRESET,
|
|
|
sourceMap: true,
|
|
|
- sourceMapBaseUrl: sourceMapBaseUrl,
|
|
|
- sourceMapFileName: sourceMapFileName,
|
|
|
- sourceMapMode: sourceMapMode
|
|
|
+ sourceMapBaseUrl,
|
|
|
+ sourceMapFileName,
|
|
|
+ sourceMapMode
|
|
|
}
|
|
|
);
|
|
|
|
|
@@ -56,7 +89,7 @@ describe('ObfuscatedCode', () => {
|
|
|
let obfuscationResult: IObfuscationResult;
|
|
|
|
|
|
before(() => {
|
|
|
- obfuscationResult = getObfuscationResult(
|
|
|
+ obfuscationResult = getSourceMapObfuscationResult(
|
|
|
expectedObfuscatedCode,
|
|
|
sourceMap,
|
|
|
'',
|
|
@@ -75,7 +108,7 @@ describe('ObfuscatedCode', () => {
|
|
|
|
|
|
describe('source map doest\'t exist', () => {
|
|
|
before(() => {
|
|
|
- obfuscatedCode = getObfuscationResult(
|
|
|
+ obfuscatedCode = getSourceMapObfuscationResult(
|
|
|
expectedObfuscatedCode,
|
|
|
'',
|
|
|
'',
|
|
@@ -93,7 +126,7 @@ describe('ObfuscatedCode', () => {
|
|
|
const regExp: RegExp = /data:application\/json;base64,dGVzdA==/;
|
|
|
|
|
|
before(() => {
|
|
|
- obfuscatedCode = getObfuscationResult(
|
|
|
+ obfuscatedCode = getSourceMapObfuscationResult(
|
|
|
expectedObfuscatedCode,
|
|
|
sourceMap,
|
|
|
'',
|
|
@@ -111,7 +144,7 @@ describe('ObfuscatedCode', () => {
|
|
|
const regExp: RegExp = /sourceMappingURL=http:\/\/example\.com\/output\.js\.map/;
|
|
|
|
|
|
before(() => {
|
|
|
- obfuscatedCode = getObfuscationResult(
|
|
|
+ obfuscatedCode = getSourceMapObfuscationResult(
|
|
|
expectedObfuscatedCode,
|
|
|
sourceMap,
|
|
|
'http://example.com',
|
|
@@ -127,7 +160,7 @@ describe('ObfuscatedCode', () => {
|
|
|
|
|
|
describe('source map mode is `separate`, `sourceMapUrl` is not set', () => {
|
|
|
before(() => {
|
|
|
- obfuscatedCode = getObfuscationResult(
|
|
|
+ obfuscatedCode = getSourceMapObfuscationResult(
|
|
|
expectedObfuscatedCode,
|
|
|
sourceMap,
|
|
|
'',
|
|
@@ -141,4 +174,26 @@ describe('ObfuscatedCode', () => {
|
|
|
});
|
|
|
});
|
|
|
});
|
|
|
+
|
|
|
+ describe('getOptions', () => {
|
|
|
+ const seed: number = 1234;
|
|
|
+ const expectedOptions: IOptions = {
|
|
|
+ ...DEFAULT_PRESET,
|
|
|
+ seed
|
|
|
+ } as IOptions;
|
|
|
+ let options: IOptions;
|
|
|
+
|
|
|
+ before(() => {
|
|
|
+ options = getObfuscationResult(
|
|
|
+ expectedObfuscatedCode,
|
|
|
+ {
|
|
|
+ seed
|
|
|
+ }
|
|
|
+ ).getOptions();
|
|
|
+ });
|
|
|
+
|
|
|
+ it('should return options object', () => {
|
|
|
+ assert.deepEqual(options, expectedOptions);
|
|
|
+ });
|
|
|
+ });
|
|
|
});
|