diff --git a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/IfStatementSimplifyTransformer.spec.ts b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/IfStatementSimplifyTransformer.spec.ts index 7a651229..13d14fe2 100644 --- a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/IfStatementSimplifyTransformer.spec.ts +++ b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/IfStatementSimplifyTransformer.spec.ts @@ -19,7 +19,7 @@ describe('IfStatementSimplifyTransformer', () => { let obfuscatedCode: string; before(() => { - const code: string = readFileAsString(__dirname + '/fixtures/consequent-only-no-return-single-statement.js'); + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-only-no-return-single-statement.js'); obfuscatedCode = JavaScriptObfuscator.obfuscate( code, @@ -44,7 +44,7 @@ describe('IfStatementSimplifyTransformer', () => { let obfuscatedCode: string; before(() => { - const code: string = readFileAsString(__dirname + '/fixtures/consequent-only-no-return-multiple-statements.js'); + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-only-no-return-multiple-statements.js'); obfuscatedCode = JavaScriptObfuscator.obfuscate( code, @@ -72,7 +72,7 @@ describe('IfStatementSimplifyTransformer', () => { let obfuscatedCode: string; before(() => { - const code: string = readFileAsString(__dirname + '/fixtures/consequent-only-return-single-statement.js'); + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-only-return-single-statement.js'); obfuscatedCode = JavaScriptObfuscator.obfuscate( code, @@ -98,7 +98,7 @@ describe('IfStatementSimplifyTransformer', () => { let obfuscatedCode: string; before(() => { - const code: string = readFileAsString(__dirname + '/fixtures/consequent-only-return-multiple-statements.js'); + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-only-return-multiple-statements.js'); obfuscatedCode = JavaScriptObfuscator.obfuscate( code, @@ -129,7 +129,7 @@ describe('IfStatementSimplifyTransformer', () => { let obfuscatedCode: string; before(() => { - const code: string = readFileAsString(__dirname + '/fixtures/consequent-and-alternate-no-return-single-statement.js'); + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-and-alternate-no-return-single-statement.js'); obfuscatedCode = JavaScriptObfuscator.obfuscate( code, @@ -156,7 +156,7 @@ describe('IfStatementSimplifyTransformer', () => { let obfuscatedCode: string; before(() => { - const code: string = readFileAsString(__dirname + '/fixtures/consequent-and-alternate-no-return-multiple-statements.js'); + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-and-alternate-no-return-multiple-statements.js'); obfuscatedCode = JavaScriptObfuscator.obfuscate( code, @@ -186,7 +186,7 @@ describe('IfStatementSimplifyTransformer', () => { let obfuscatedCode: string; before(() => { - const code: string = readFileAsString(__dirname + '/fixtures/consequent-and-alternate-consequent-return-single-statement.js'); + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-and-alternate-consequent-return-single-statement.js'); obfuscatedCode = JavaScriptObfuscator.obfuscate( code, @@ -214,7 +214,7 @@ describe('IfStatementSimplifyTransformer', () => { let obfuscatedCode: string; before(() => { - const code: string = readFileAsString(__dirname + '/fixtures/consequent-and-alternate-consequent-return-multiple-statements.js'); + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-and-alternate-consequent-return-multiple-statements.js'); obfuscatedCode = JavaScriptObfuscator.obfuscate( code, @@ -244,7 +244,7 @@ describe('IfStatementSimplifyTransformer', () => { let obfuscatedCode: string; before(() => { - const code: string = readFileAsString(__dirname + '/fixtures/consequent-and-alternate-alternate-return-single-statement.js'); + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-and-alternate-alternate-return-single-statement.js'); obfuscatedCode = JavaScriptObfuscator.obfuscate( code, @@ -272,7 +272,7 @@ describe('IfStatementSimplifyTransformer', () => { let obfuscatedCode: string; before(() => { - const code: string = readFileAsString(__dirname + '/fixtures/consequent-and-alternate-alternate-return-multiple-statements.js'); + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-and-alternate-alternate-return-multiple-statements.js'); obfuscatedCode = JavaScriptObfuscator.obfuscate( code, @@ -301,7 +301,7 @@ describe('IfStatementSimplifyTransformer', () => { let obfuscatedCode: string; before(() => { - const code: string = readFileAsString(__dirname + '/fixtures/consequent-and-alternate-return-single-statement.js'); + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-and-alternate-return-single-statement.js'); obfuscatedCode = JavaScriptObfuscator.obfuscate( code, @@ -328,7 +328,63 @@ describe('IfStatementSimplifyTransformer', () => { let obfuscatedCode: string; before(() => { - const code: string = readFileAsString(__dirname + '/fixtures/consequent-and-alternate-return-multiple-statements.js'); + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-and-alternate-return-multiple-statements.js'); + + obfuscatedCode = JavaScriptObfuscator.obfuscate( + code, + { + ...NO_ADDITIONAL_NODES_PRESET, + minify: true + } + ).getObfuscatedCode(); + }); + + it('should simplify if statement', () => { + assert.match(obfuscatedCode, regExp); + }); + }); + }); + }); + }); + + describe('Partial `IfStatement` simplify cases', () => { + describe('Consequent only', () => { + describe('No `ReturnStatement`', () => { + describe('Variant #1: single statement', () => { + const regExp: RegExp = new RegExp( + '!!\\[] *&& *bar\\(\\);' + ); + + + let obfuscatedCode: string; + + before(() => { + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-only-no-return-single-statement.js'); + + obfuscatedCode = JavaScriptObfuscator.obfuscate( + code, + { + ...NO_ADDITIONAL_NODES_PRESET, + minify: true + } + ).getObfuscatedCode(); + }); + + it('should simplify if statement', () => { + assert.match(obfuscatedCode, regExp); + }); + }); + + describe('Variant #2: multiple statements', () => { + const regExp: RegExp = new RegExp( + '!!\\[] *&& *\\(bar\\(\\) *, *baz\\(\\) *, *bark\\(\\)\\);' + ); + + + let obfuscatedCode: string; + + before(() => { + const code: string = readFileAsString(__dirname + '/fixtures/full-consequent-only-no-return-multiple-statements.js'); obfuscatedCode = JavaScriptObfuscator.obfuscate( code, diff --git a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-alternate-return-multiple-statements.js b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-alternate-return-multiple-statements.js similarity index 100% rename from test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-alternate-return-multiple-statements.js rename to test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-alternate-return-multiple-statements.js diff --git a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-alternate-return-single-statement.js b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-alternate-return-single-statement.js similarity index 100% rename from test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-alternate-return-single-statement.js rename to test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-alternate-return-single-statement.js diff --git a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-consequent-return-multiple-statements.js b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-consequent-return-multiple-statements.js similarity index 100% rename from test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-consequent-return-multiple-statements.js rename to test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-consequent-return-multiple-statements.js diff --git a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-consequent-return-single-statement.js b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-consequent-return-single-statement.js similarity index 100% rename from test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-consequent-return-single-statement.js rename to test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-consequent-return-single-statement.js diff --git a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-no-return-multiple-statements.js b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-no-return-multiple-statements.js similarity index 100% rename from test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-no-return-multiple-statements.js rename to test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-no-return-multiple-statements.js diff --git a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-no-return-single-statement.js b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-no-return-single-statement.js similarity index 100% rename from test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-no-return-single-statement.js rename to test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-no-return-single-statement.js diff --git a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-return-multiple-statements.js b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-return-multiple-statements.js similarity index 100% rename from test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-return-multiple-statements.js rename to test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-return-multiple-statements.js diff --git a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-return-single-statement.js b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-return-single-statement.js similarity index 100% rename from test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-and-alternate-return-single-statement.js rename to test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-and-alternate-return-single-statement.js diff --git a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-only-no-return-multiple-statements.js b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-only-no-return-multiple-statements.js similarity index 100% rename from test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-only-no-return-multiple-statements.js rename to test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-only-no-return-multiple-statements.js diff --git a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-only-no-return-single-statement.js b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-only-no-return-single-statement.js similarity index 100% rename from test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-only-no-return-single-statement.js rename to test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-only-no-return-single-statement.js diff --git a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-only-return-multiple-statements.js b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-only-return-multiple-statements.js similarity index 100% rename from test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-only-return-multiple-statements.js rename to test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-only-return-multiple-statements.js diff --git a/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-only-return-single-statement.js b/test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-only-return-single-statement.js similarity index 100% rename from test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/consequent-only-return-single-statement.js rename to test/functional-tests/node-transformers/minification-transformers/if-statement-simplify-transformer/fixtures/full-consequent-only-return-single-statement.js