diff --git a/.gitignore b/.gitignore index 2716444e5..0ae5e9f01 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,6 @@ bundle.js npm-debug.log .test/ !/test/**/expectedOutput-*/** +!/test/**/typings/** /node_modules !build.js \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 1664ec14f..36c243db7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ install: - npm install - npm install $TYPESCRIPT env: -# - TYPESCRIPT=typescript@1.6.2 -# - TYPESCRIPT=typescript@1.7.5 -# - TYPESCRIPT=typescript@1.8.0 + - TYPESCRIPT=typescript@1.6.2 + - TYPESCRIPT=typescript@1.7.5 + - TYPESCRIPT=typescript@1.8.0 - TYPESCRIPT=typescript@2.0.3 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5b9d808ea..200438881 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,16 +23,34 @@ In short: fork, branch, make your changes, and submit a pull request. ## Testing -This project makes use of a test suite both to make sure we don't break -anything and also to make sure new versions of webpack and TypeScript don't -break anything. The tests are full integration tests, meaning each test is a -mini project that is run through webpack and then the output is compared to the -expected output. Not all bugs/features necessarily fit into this framework and +This project makes use of 2 integration test packs to make sure we don't break +anything. That's right, count them, 2! There is a comparison test pack which +compares compilation outputs and is long established. There is also an execution +test pack which executes the compiled JavaScript. This test pack is young and contains +few tests so far; but it shows promise. + +You can run all the tests (in both test packs) with `npm test`. + +To run comparison tests alone use `npm run comparison-tests`. +To run execution tests alone use `npm run execution-tests`. + +Not all bugs/features necessarily fit into either framework and that's OK. However, most do and therefore you should make every effort to create at least one test which demonstrates the issue or exercises the feature. +Use your judgement to decide whether you think a comparison test or an +execution test is most appropriate. + +### Comparison Test Pack + +This test pack comprises a number of mini-typescript projects which, as part of the test run, are each run through webpack. +The outputs (both compiled JavaScript and webpack compilation output) are compared against a set of expected +outputs. These are particularly useful for testing failure cases; that is testing scenarios where you expect compilation +to fail and ensuring the failure is what you expect. For example, ensuring the presence of error messages from the TypeScript +compiler in the output etc. +The comparison test pack can be found under `/test/comparison-tests`. The test harness uses certain conventions. All tests have their own directory -under `/test`, eg `/test/someFeature`. Each test should have a +under `/test/comparison-tests`, eg `/test/comparison-tests/someFeature`. Each test should have a `webpack.config.js` file which follows this general convention: ```javascript @@ -55,7 +73,8 @@ module.exports = { module.exports.resolveLoader = { alias: { 'ts-loader': require('path').join(__dirname, "../../index.js") } } ``` -You can run all the tests with `npm test`. You can also go into an individual test +You can run all the tests in the Comparison Test Pack with `npm run comparison-tests`. +You can also go into an individual test directory and manually build a project using `webpack` or `webpack --watch`. This can be useful both when developing the test and also when fixing an issue or adding a feature. @@ -65,17 +84,21 @@ filesystem output (typically `bundle.js` and possibly `bundle.js.map`) and any console output. stdout should go in `output.txt` and stderr should go in `err.txt`. +To run all the tests use: + +`npm run comparison-tests`. + If you would like to run just a single test then: -`npm test -- --single-test nameOfTest` +`npm run comparison-tests -- --single-test nameOfTest` -### Regenerating test data +#### Regenerating test data As a convenience it is possible to regenerate the expected output from the actual output. This is useful when creating new tests and also when making a change that affects multiple existing tests. To run use: -`npm test -- --save-output`. +`npm run comparison-tests -- --save-output`. Note that all tests will automatically pass when using this feature. You should double check the generated files to make sure @@ -84,7 +107,7 @@ the output is indeed correct. If you would like to regenerate a single test then combine `--save-output` with `--single-test` like so: -`npm test -- --save-output --single-test nameOfTest` +`npm run comparison-tests -- --save-output --single-test nameOfTest` The test harness additionally supports watch mode since that is such an integral part of webpack. The initial state is as described above. After the @@ -99,4 +122,84 @@ Initial state: Patch 0 - test/someFeature/patch0/app.ts - *modified file* - test/someFeature/expectedOutput/patch0/bundle.js - *bundle after applying patch* -- test/someFeature/expectedOutput/patch0/output.txt - *output after applying patch* \ No newline at end of file +- test/someFeature/expectedOutput/patch0/output.txt - *output after applying patch* + +### Execution Test Pack + +This test pack is made up of a number of mini-typescript projects which include a test suite. +As part of the test run, each project is compiled and the test suite run using Karma. So this +test pack is different from the comparison test pack in that it **executes the compiled code**. +This test pack is useful for testing expected behaviour. (It's also reassuring to see your +code being executed.) + +These tests are executed more widely that the comparison tests; we aim to run these against each +version of TypeScript defined in our CI build matrices. (Take a look at [`appveyor.yml`](appveyor.yml) +and [`.travis.yml`](.travis.yml) for details.) + +#### Structure + +The comparison test pack can be found under `/test/execution-tests`. +Like the comparison test pack, the execution test pack uses certain conventions. +All tests have their own directory under `/test/execution-tests`, eg `/test/execution-tests/someFeature`. +Each test is expected to have a `karma.conf.js` file and a `webpack.config.js` file. + +If a test requires a minimum version of TypeScript then the test directory should be +prefixed with the minimum TypeScript version. For example, the `2.0.3_es2016` test requires +a minimum TypeScript version of 2.0.3; if the installed version is lower than the test +needs then the test will be skipped. + +** IMPORTANT ** + +In order that the local version of ts-loader is resolved for tests a `webpack.config.js` file will need +to include this line: + +``` +// for test harness purposes only, you would not need this in a normal project +module.exports.resolveLoader = { alias: { 'ts-loader': path.join(__dirname, "../../../index.js") } } +``` + +And likewise the `karma.conf.js` will need to reuse this like so: + +``` + webpack: { + devtool: 'inline-source-map', + debug: true, + module: { + loaders: webpackConfig.module.loaders + }, + resolve: webpackConfig.resolve, + + // for test harness purposes only, you would not need this in a normal project + resolveLoader: webpackConfig.resolveLoader + }, +``` + +Without this the test won't be able to resolve ts-loader and won't find your TypeScript +tests. + +#### What sort of tests can be included? + +It's pretty much your choice what goes in testwise. +At present there are only Jasmine tests in place; +it should be possible to put any test in place that Karma is compatible with. The test pack also expects +a `typings.json` file and calls `typings install` in each. **Be warned, type definitions are not installed +until the test framework has been run.** So if you're wanting to refactor a test you'll need to +`typings install` if the requisite typings have not yet been installed. It's possible / probably +that this may changed in the future; +particularly to cater for situations where types should be acquired via npm etc. + +#### Running / debugging the tests + +To run all the tests use: + +`npm run execution-tests`. + +If you would like to run just a single test then: + +`npm run execution-tests -- --single-test nameOfTest` + +It's pretty handy to be able to debug tests; for that reason you can run a single test in watch mode like this: + +`npm run execution-tests -- --single-test nameOfTest --watch` + +Then you can fire up http://localhost:9876/ and the world's your oyster. \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index 7d6688166..dfd330c2f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,9 +1,9 @@ environment: nodejs_version: "6.0" matrix: -# - TYPESCRIPT: typescript@1.6.2 -# - TYPESCRIPT: typescript@1.7.5 -# - TYPESCRIPT: typescript@1.8.0 + - TYPESCRIPT: typescript@1.6.2 + - TYPESCRIPT: typescript@1.7.5 + - TYPESCRIPT: typescript@1.8.0 - TYPESCRIPT: typescript@2.0.3 install: - ps: Install-Product node $env:nodejs_version diff --git a/package.json b/package.json index b58aba229..2d3cb6c59 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,9 @@ "main": "index.js", "scripts": { "build": "tsc", - "comparison-tests": "npm link ./test/testLib && mocha --reporter spec test/run.js", - "test": "npm link ./test/testLib && node test/run-tests-as-child.js ", + "comparison-tests": "npm link ./test/comparison-tests/testLib && node test/comparison-tests/run-tests.js", + "execution-tests": "node test/execution-tests/run-tests.js", + "test": "node test/run-tests.js", "prepublish": "npm run build" }, "repository": { @@ -39,16 +40,27 @@ "babel": "^6.0.0", "babel-core": "^6.0.0", "babel-loader": "^6.0.0", + "babel-polyfill": "^6.16.0", "babel-preset-es2015": "^6.0.0", + "babel-preset-es2016": "^6.16.0", "babel-preset-react": "^6.0.0", "escape-string-regexp": "^1.0.3", "fs-extra": "^0.30.0", "glob": "^7.1.1", "html-webpack-plugin": "^2.17.0", + "jasmine-core": "^2.5.2", + "karma": "^1.3.0", + "karma-jasmine": "^1.0.0", + "karma-mocha-reporter": "^2.0.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sourcemap-loader": "^0.3.6", + "karma-webpack": "^1.7.0", "mkdirp": "^0.5.1", "mocha": "^3.1.0", + "phantomjs-prebuilt": "^2.1.2", "rimraf": "^2.4.2", "typescript": "^2.0.3", + "typings": "^1.4.0", "webpack": "^1.11.0" } } diff --git a/test/_FLAKY_errors/app.ts b/test/comparison-tests/_FLAKY_errors/app.ts similarity index 100% rename from test/_FLAKY_errors/app.ts rename to test/comparison-tests/_FLAKY_errors/app.ts diff --git a/test/_FLAKY_errors/expectedOutput-1.6/output.txt b/test/comparison-tests/_FLAKY_errors/expectedOutput-1.6/output.txt similarity index 100% rename from test/_FLAKY_errors/expectedOutput-1.6/output.txt rename to test/comparison-tests/_FLAKY_errors/expectedOutput-1.6/output.txt diff --git a/test/_FLAKY_errors/expectedOutput-1.7/output.txt b/test/comparison-tests/_FLAKY_errors/expectedOutput-1.7/output.txt similarity index 100% rename from test/_FLAKY_errors/expectedOutput-1.7/output.txt rename to test/comparison-tests/_FLAKY_errors/expectedOutput-1.7/output.txt diff --git a/test/_FLAKY_errors/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/_FLAKY_errors/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/_FLAKY_errors/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/_FLAKY_errors/expectedOutput-1.8/output.transpiled.txt diff --git a/test/_FLAKY_errors/expectedOutput-1.8/output.txt b/test/comparison-tests/_FLAKY_errors/expectedOutput-1.8/output.txt similarity index 100% rename from test/_FLAKY_errors/expectedOutput-1.8/output.txt rename to test/comparison-tests/_FLAKY_errors/expectedOutput-1.8/output.txt diff --git a/test/_FLAKY_errors/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/_FLAKY_errors/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/_FLAKY_errors/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/_FLAKY_errors/expectedOutput-2.0/output.transpiled.txt diff --git a/test/_FLAKY_errors/expectedOutput-2.0/output.txt b/test/comparison-tests/_FLAKY_errors/expectedOutput-2.0/output.txt similarity index 100% rename from test/_FLAKY_errors/expectedOutput-2.0/output.txt rename to test/comparison-tests/_FLAKY_errors/expectedOutput-2.0/output.txt diff --git a/test/_FLAKY_errors/tsconfig.json b/test/comparison-tests/_FLAKY_errors/tsconfig.json similarity index 100% rename from test/_FLAKY_errors/tsconfig.json rename to test/comparison-tests/_FLAKY_errors/tsconfig.json diff --git a/test/_FLAKY_errors/webpack.config.js b/test/comparison-tests/_FLAKY_errors/webpack.config.js similarity index 100% rename from test/_FLAKY_errors/webpack.config.js rename to test/comparison-tests/_FLAKY_errors/webpack.config.js diff --git a/test/_FLAKY_tsconfigNotReadable/app.ts b/test/comparison-tests/_FLAKY_tsconfigNotReadable/app.ts similarity index 100% rename from test/_FLAKY_tsconfigNotReadable/app.ts rename to test/comparison-tests/_FLAKY_tsconfigNotReadable/app.ts diff --git a/test/_FLAKY_tsconfigNotReadable/expectedOutput-1.6/output.txt b/test/comparison-tests/_FLAKY_tsconfigNotReadable/expectedOutput-1.6/output.txt similarity index 100% rename from test/_FLAKY_tsconfigNotReadable/expectedOutput-1.6/output.txt rename to test/comparison-tests/_FLAKY_tsconfigNotReadable/expectedOutput-1.6/output.txt diff --git a/test/_FLAKY_tsconfigNotReadable/expectedOutput-1.7/output.txt b/test/comparison-tests/_FLAKY_tsconfigNotReadable/expectedOutput-1.7/output.txt similarity index 100% rename from test/_FLAKY_tsconfigNotReadable/expectedOutput-1.7/output.txt rename to test/comparison-tests/_FLAKY_tsconfigNotReadable/expectedOutput-1.7/output.txt diff --git a/test/_FLAKY_tsconfigNotReadable/expectedOutput-1.8/output.txt b/test/comparison-tests/_FLAKY_tsconfigNotReadable/expectedOutput-1.8/output.txt similarity index 100% rename from test/_FLAKY_tsconfigNotReadable/expectedOutput-1.8/output.txt rename to test/comparison-tests/_FLAKY_tsconfigNotReadable/expectedOutput-1.8/output.txt diff --git a/test/_FLAKY_tsconfigNotReadable/expectedOutput-2.0/output.txt b/test/comparison-tests/_FLAKY_tsconfigNotReadable/expectedOutput-2.0/output.txt similarity index 100% rename from test/_FLAKY_tsconfigNotReadable/expectedOutput-2.0/output.txt rename to test/comparison-tests/_FLAKY_tsconfigNotReadable/expectedOutput-2.0/output.txt diff --git a/test/_FLAKY_tsconfigNotReadable/tsconfig.json b/test/comparison-tests/_FLAKY_tsconfigNotReadable/tsconfig.json similarity index 100% rename from test/_FLAKY_tsconfigNotReadable/tsconfig.json rename to test/comparison-tests/_FLAKY_tsconfigNotReadable/tsconfig.json diff --git a/test/_FLAKY_tsconfigNotReadable/webpack.config.js b/test/comparison-tests/_FLAKY_tsconfigNotReadable/webpack.config.js similarity index 100% rename from test/_FLAKY_tsconfigNotReadable/webpack.config.js rename to test/comparison-tests/_FLAKY_tsconfigNotReadable/webpack.config.js diff --git a/test/aliasResolution/app.ts b/test/comparison-tests/aliasResolution/app.ts similarity index 100% rename from test/aliasResolution/app.ts rename to test/comparison-tests/aliasResolution/app.ts diff --git a/test/aliasResolution/common/components/myComponent.ts b/test/comparison-tests/aliasResolution/common/components/myComponent.ts similarity index 100% rename from test/aliasResolution/common/components/myComponent.ts rename to test/comparison-tests/aliasResolution/common/components/myComponent.ts diff --git a/test/aliasResolution/expectedOutput-1.6/bundle.js b/test/comparison-tests/aliasResolution/expectedOutput-1.6/bundle.js similarity index 100% rename from test/aliasResolution/expectedOutput-1.6/bundle.js rename to test/comparison-tests/aliasResolution/expectedOutput-1.6/bundle.js diff --git a/test/aliasResolution/expectedOutput-1.6/output.transpiled.txt b/test/comparison-tests/aliasResolution/expectedOutput-1.6/output.transpiled.txt similarity index 100% rename from test/aliasResolution/expectedOutput-1.6/output.transpiled.txt rename to test/comparison-tests/aliasResolution/expectedOutput-1.6/output.transpiled.txt diff --git a/test/aliasResolution/expectedOutput-1.6/output.txt b/test/comparison-tests/aliasResolution/expectedOutput-1.6/output.txt similarity index 100% rename from test/aliasResolution/expectedOutput-1.6/output.txt rename to test/comparison-tests/aliasResolution/expectedOutput-1.6/output.txt diff --git a/test/aliasResolution/expectedOutput-1.6/patch0/bundle.js b/test/comparison-tests/aliasResolution/expectedOutput-1.6/patch0/bundle.js similarity index 100% rename from test/aliasResolution/expectedOutput-1.6/patch0/bundle.js rename to test/comparison-tests/aliasResolution/expectedOutput-1.6/patch0/bundle.js diff --git a/test/aliasResolution/expectedOutput-1.6/patch0/output.transpiled.txt b/test/comparison-tests/aliasResolution/expectedOutput-1.6/patch0/output.transpiled.txt similarity index 100% rename from test/aliasResolution/expectedOutput-1.6/patch0/output.transpiled.txt rename to test/comparison-tests/aliasResolution/expectedOutput-1.6/patch0/output.transpiled.txt diff --git a/test/aliasResolution/expectedOutput-1.6/patch0/output.txt b/test/comparison-tests/aliasResolution/expectedOutput-1.6/patch0/output.txt similarity index 100% rename from test/aliasResolution/expectedOutput-1.6/patch0/output.txt rename to test/comparison-tests/aliasResolution/expectedOutput-1.6/patch0/output.txt diff --git a/test/aliasResolution/expectedOutput-1.7/bundle.js b/test/comparison-tests/aliasResolution/expectedOutput-1.7/bundle.js similarity index 100% rename from test/aliasResolution/expectedOutput-1.7/bundle.js rename to test/comparison-tests/aliasResolution/expectedOutput-1.7/bundle.js diff --git a/test/aliasResolution/expectedOutput-1.7/output.transpiled.txt b/test/comparison-tests/aliasResolution/expectedOutput-1.7/output.transpiled.txt similarity index 100% rename from test/aliasResolution/expectedOutput-1.7/output.transpiled.txt rename to test/comparison-tests/aliasResolution/expectedOutput-1.7/output.transpiled.txt diff --git a/test/aliasResolution/expectedOutput-1.7/output.txt b/test/comparison-tests/aliasResolution/expectedOutput-1.7/output.txt similarity index 100% rename from test/aliasResolution/expectedOutput-1.7/output.txt rename to test/comparison-tests/aliasResolution/expectedOutput-1.7/output.txt diff --git a/test/aliasResolution/expectedOutput-1.7/patch0/bundle.js b/test/comparison-tests/aliasResolution/expectedOutput-1.7/patch0/bundle.js similarity index 100% rename from test/aliasResolution/expectedOutput-1.7/patch0/bundle.js rename to test/comparison-tests/aliasResolution/expectedOutput-1.7/patch0/bundle.js diff --git a/test/aliasResolution/expectedOutput-1.7/patch0/output.transpiled.txt b/test/comparison-tests/aliasResolution/expectedOutput-1.7/patch0/output.transpiled.txt similarity index 100% rename from test/aliasResolution/expectedOutput-1.7/patch0/output.transpiled.txt rename to test/comparison-tests/aliasResolution/expectedOutput-1.7/patch0/output.transpiled.txt diff --git a/test/aliasResolution/expectedOutput-1.7/patch0/output.txt b/test/comparison-tests/aliasResolution/expectedOutput-1.7/patch0/output.txt similarity index 100% rename from test/aliasResolution/expectedOutput-1.7/patch0/output.txt rename to test/comparison-tests/aliasResolution/expectedOutput-1.7/patch0/output.txt diff --git a/test/aliasResolution/expectedOutput-1.8/bundle.js b/test/comparison-tests/aliasResolution/expectedOutput-1.8/bundle.js similarity index 100% rename from test/aliasResolution/expectedOutput-1.8/bundle.js rename to test/comparison-tests/aliasResolution/expectedOutput-1.8/bundle.js diff --git a/test/aliasResolution/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/aliasResolution/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/aliasResolution/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/aliasResolution/expectedOutput-1.8/output.transpiled.txt diff --git a/test/aliasResolution/expectedOutput-1.8/output.txt b/test/comparison-tests/aliasResolution/expectedOutput-1.8/output.txt similarity index 100% rename from test/aliasResolution/expectedOutput-1.8/output.txt rename to test/comparison-tests/aliasResolution/expectedOutput-1.8/output.txt diff --git a/test/aliasResolution/expectedOutput-1.8/patch0/bundle.js b/test/comparison-tests/aliasResolution/expectedOutput-1.8/patch0/bundle.js similarity index 100% rename from test/aliasResolution/expectedOutput-1.8/patch0/bundle.js rename to test/comparison-tests/aliasResolution/expectedOutput-1.8/patch0/bundle.js diff --git a/test/aliasResolution/expectedOutput-1.8/patch0/output.transpiled.txt b/test/comparison-tests/aliasResolution/expectedOutput-1.8/patch0/output.transpiled.txt similarity index 100% rename from test/aliasResolution/expectedOutput-1.8/patch0/output.transpiled.txt rename to test/comparison-tests/aliasResolution/expectedOutput-1.8/patch0/output.transpiled.txt diff --git a/test/aliasResolution/expectedOutput-1.8/patch0/output.txt b/test/comparison-tests/aliasResolution/expectedOutput-1.8/patch0/output.txt similarity index 100% rename from test/aliasResolution/expectedOutput-1.8/patch0/output.txt rename to test/comparison-tests/aliasResolution/expectedOutput-1.8/patch0/output.txt diff --git a/test/aliasResolution/expectedOutput-2.0/bundle.js b/test/comparison-tests/aliasResolution/expectedOutput-2.0/bundle.js similarity index 100% rename from test/aliasResolution/expectedOutput-2.0/bundle.js rename to test/comparison-tests/aliasResolution/expectedOutput-2.0/bundle.js diff --git a/test/aliasResolution/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/aliasResolution/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/aliasResolution/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/aliasResolution/expectedOutput-2.0/output.transpiled.txt diff --git a/test/aliasResolution/expectedOutput-2.0/output.txt b/test/comparison-tests/aliasResolution/expectedOutput-2.0/output.txt similarity index 100% rename from test/aliasResolution/expectedOutput-2.0/output.txt rename to test/comparison-tests/aliasResolution/expectedOutput-2.0/output.txt diff --git a/test/aliasResolution/expectedOutput-2.0/patch0/bundle.js b/test/comparison-tests/aliasResolution/expectedOutput-2.0/patch0/bundle.js similarity index 100% rename from test/aliasResolution/expectedOutput-2.0/patch0/bundle.js rename to test/comparison-tests/aliasResolution/expectedOutput-2.0/patch0/bundle.js diff --git a/test/aliasResolution/expectedOutput-2.0/patch0/output.transpiled.txt b/test/comparison-tests/aliasResolution/expectedOutput-2.0/patch0/output.transpiled.txt similarity index 100% rename from test/aliasResolution/expectedOutput-2.0/patch0/output.transpiled.txt rename to test/comparison-tests/aliasResolution/expectedOutput-2.0/patch0/output.transpiled.txt diff --git a/test/aliasResolution/expectedOutput-2.0/patch0/output.txt b/test/comparison-tests/aliasResolution/expectedOutput-2.0/patch0/output.txt similarity index 100% rename from test/aliasResolution/expectedOutput-2.0/patch0/output.txt rename to test/comparison-tests/aliasResolution/expectedOutput-2.0/patch0/output.txt diff --git a/test/aliasResolution/patch0/common/components/myComponent.ts b/test/comparison-tests/aliasResolution/patch0/common/components/myComponent.ts similarity index 100% rename from test/aliasResolution/patch0/common/components/myComponent.ts rename to test/comparison-tests/aliasResolution/patch0/common/components/myComponent.ts diff --git a/test/aliasResolution/tsconfig.json b/test/comparison-tests/aliasResolution/tsconfig.json similarity index 100% rename from test/aliasResolution/tsconfig.json rename to test/comparison-tests/aliasResolution/tsconfig.json diff --git a/test/aliasResolution/webpack.config.js b/test/comparison-tests/aliasResolution/webpack.config.js similarity index 100% rename from test/aliasResolution/webpack.config.js rename to test/comparison-tests/aliasResolution/webpack.config.js diff --git a/test/basic/app.ts b/test/comparison-tests/basic/app.ts similarity index 100% rename from test/basic/app.ts rename to test/comparison-tests/basic/app.ts diff --git a/test/basic/expectedOutput-1.6/bundle.js b/test/comparison-tests/basic/expectedOutput-1.6/bundle.js similarity index 100% rename from test/basic/expectedOutput-1.6/bundle.js rename to test/comparison-tests/basic/expectedOutput-1.6/bundle.js diff --git a/test/basic/expectedOutput-1.6/output.txt b/test/comparison-tests/basic/expectedOutput-1.6/output.txt similarity index 100% rename from test/basic/expectedOutput-1.6/output.txt rename to test/comparison-tests/basic/expectedOutput-1.6/output.txt diff --git a/test/basic/expectedOutput-1.6/patch0/bundle.js b/test/comparison-tests/basic/expectedOutput-1.6/patch0/bundle.js similarity index 100% rename from test/basic/expectedOutput-1.6/patch0/bundle.js rename to test/comparison-tests/basic/expectedOutput-1.6/patch0/bundle.js diff --git a/test/basic/expectedOutput-1.6/patch0/output.transpiled.txt b/test/comparison-tests/basic/expectedOutput-1.6/patch0/output.transpiled.txt similarity index 100% rename from test/basic/expectedOutput-1.6/patch0/output.transpiled.txt rename to test/comparison-tests/basic/expectedOutput-1.6/patch0/output.transpiled.txt diff --git a/test/basic/expectedOutput-1.6/patch0/output.txt b/test/comparison-tests/basic/expectedOutput-1.6/patch0/output.txt similarity index 100% rename from test/basic/expectedOutput-1.6/patch0/output.txt rename to test/comparison-tests/basic/expectedOutput-1.6/patch0/output.txt diff --git a/test/basic/expectedOutput-1.6/patch1/bundle.js b/test/comparison-tests/basic/expectedOutput-1.6/patch1/bundle.js similarity index 100% rename from test/basic/expectedOutput-1.6/patch1/bundle.js rename to test/comparison-tests/basic/expectedOutput-1.6/patch1/bundle.js diff --git a/test/basic/expectedOutput-1.6/patch1/output.txt b/test/comparison-tests/basic/expectedOutput-1.6/patch1/output.txt similarity index 100% rename from test/basic/expectedOutput-1.6/patch1/output.txt rename to test/comparison-tests/basic/expectedOutput-1.6/patch1/output.txt diff --git a/test/basic/expectedOutput-1.7/bundle.js b/test/comparison-tests/basic/expectedOutput-1.7/bundle.js similarity index 100% rename from test/basic/expectedOutput-1.7/bundle.js rename to test/comparison-tests/basic/expectedOutput-1.7/bundle.js diff --git a/test/basic/expectedOutput-1.7/output.txt b/test/comparison-tests/basic/expectedOutput-1.7/output.txt similarity index 100% rename from test/basic/expectedOutput-1.7/output.txt rename to test/comparison-tests/basic/expectedOutput-1.7/output.txt diff --git a/test/basic/expectedOutput-1.7/patch0/bundle.js b/test/comparison-tests/basic/expectedOutput-1.7/patch0/bundle.js similarity index 100% rename from test/basic/expectedOutput-1.7/patch0/bundle.js rename to test/comparison-tests/basic/expectedOutput-1.7/patch0/bundle.js diff --git a/test/basic/expectedOutput-1.7/patch0/output.transpiled.txt b/test/comparison-tests/basic/expectedOutput-1.7/patch0/output.transpiled.txt similarity index 100% rename from test/basic/expectedOutput-1.7/patch0/output.transpiled.txt rename to test/comparison-tests/basic/expectedOutput-1.7/patch0/output.transpiled.txt diff --git a/test/basic/expectedOutput-1.7/patch0/output.txt b/test/comparison-tests/basic/expectedOutput-1.7/patch0/output.txt similarity index 100% rename from test/basic/expectedOutput-1.7/patch0/output.txt rename to test/comparison-tests/basic/expectedOutput-1.7/patch0/output.txt diff --git a/test/basic/expectedOutput-1.7/patch1/bundle.js b/test/comparison-tests/basic/expectedOutput-1.7/patch1/bundle.js similarity index 100% rename from test/basic/expectedOutput-1.7/patch1/bundle.js rename to test/comparison-tests/basic/expectedOutput-1.7/patch1/bundle.js diff --git a/test/basic/expectedOutput-1.7/patch1/output.txt b/test/comparison-tests/basic/expectedOutput-1.7/patch1/output.txt similarity index 100% rename from test/basic/expectedOutput-1.7/patch1/output.txt rename to test/comparison-tests/basic/expectedOutput-1.7/patch1/output.txt diff --git a/test/basic/expectedOutput-1.8/bundle.js b/test/comparison-tests/basic/expectedOutput-1.8/bundle.js similarity index 100% rename from test/basic/expectedOutput-1.8/bundle.js rename to test/comparison-tests/basic/expectedOutput-1.8/bundle.js diff --git a/test/basic/expectedOutput-1.8/output.txt b/test/comparison-tests/basic/expectedOutput-1.8/output.txt similarity index 100% rename from test/basic/expectedOutput-1.8/output.txt rename to test/comparison-tests/basic/expectedOutput-1.8/output.txt diff --git a/test/basic/expectedOutput-1.8/patch0/bundle.js b/test/comparison-tests/basic/expectedOutput-1.8/patch0/bundle.js similarity index 100% rename from test/basic/expectedOutput-1.8/patch0/bundle.js rename to test/comparison-tests/basic/expectedOutput-1.8/patch0/bundle.js diff --git a/test/basic/expectedOutput-1.8/patch0/output.transpiled.txt b/test/comparison-tests/basic/expectedOutput-1.8/patch0/output.transpiled.txt similarity index 100% rename from test/basic/expectedOutput-1.8/patch0/output.transpiled.txt rename to test/comparison-tests/basic/expectedOutput-1.8/patch0/output.transpiled.txt diff --git a/test/basic/expectedOutput-1.8/patch0/output.txt b/test/comparison-tests/basic/expectedOutput-1.8/patch0/output.txt similarity index 100% rename from test/basic/expectedOutput-1.8/patch0/output.txt rename to test/comparison-tests/basic/expectedOutput-1.8/patch0/output.txt diff --git a/test/basic/expectedOutput-1.8/patch1/bundle.js b/test/comparison-tests/basic/expectedOutput-1.8/patch1/bundle.js similarity index 100% rename from test/basic/expectedOutput-1.8/patch1/bundle.js rename to test/comparison-tests/basic/expectedOutput-1.8/patch1/bundle.js diff --git a/test/basic/expectedOutput-1.8/patch1/output.txt b/test/comparison-tests/basic/expectedOutput-1.8/patch1/output.txt similarity index 100% rename from test/basic/expectedOutput-1.8/patch1/output.txt rename to test/comparison-tests/basic/expectedOutput-1.8/patch1/output.txt diff --git a/test/basic/expectedOutput-2.0/bundle.js b/test/comparison-tests/basic/expectedOutput-2.0/bundle.js similarity index 100% rename from test/basic/expectedOutput-2.0/bundle.js rename to test/comparison-tests/basic/expectedOutput-2.0/bundle.js diff --git a/test/basic/expectedOutput-2.0/output.txt b/test/comparison-tests/basic/expectedOutput-2.0/output.txt similarity index 100% rename from test/basic/expectedOutput-2.0/output.txt rename to test/comparison-tests/basic/expectedOutput-2.0/output.txt diff --git a/test/basic/expectedOutput-2.0/patch0/bundle.js b/test/comparison-tests/basic/expectedOutput-2.0/patch0/bundle.js similarity index 100% rename from test/basic/expectedOutput-2.0/patch0/bundle.js rename to test/comparison-tests/basic/expectedOutput-2.0/patch0/bundle.js diff --git a/test/basic/expectedOutput-2.0/patch0/output.transpiled.txt b/test/comparison-tests/basic/expectedOutput-2.0/patch0/output.transpiled.txt similarity index 100% rename from test/basic/expectedOutput-2.0/patch0/output.transpiled.txt rename to test/comparison-tests/basic/expectedOutput-2.0/patch0/output.transpiled.txt diff --git a/test/basic/expectedOutput-2.0/patch0/output.txt b/test/comparison-tests/basic/expectedOutput-2.0/patch0/output.txt similarity index 100% rename from test/basic/expectedOutput-2.0/patch0/output.txt rename to test/comparison-tests/basic/expectedOutput-2.0/patch0/output.txt diff --git a/test/basic/expectedOutput-2.0/patch1/bundle.js b/test/comparison-tests/basic/expectedOutput-2.0/patch1/bundle.js similarity index 100% rename from test/basic/expectedOutput-2.0/patch1/bundle.js rename to test/comparison-tests/basic/expectedOutput-2.0/patch1/bundle.js diff --git a/test/basic/expectedOutput-2.0/patch1/output.txt b/test/comparison-tests/basic/expectedOutput-2.0/patch1/output.txt similarity index 100% rename from test/basic/expectedOutput-2.0/patch1/output.txt rename to test/comparison-tests/basic/expectedOutput-2.0/patch1/output.txt diff --git a/test/basic/lib/externalLib.d.ts b/test/comparison-tests/basic/lib/externalLib.d.ts similarity index 100% rename from test/basic/lib/externalLib.d.ts rename to test/comparison-tests/basic/lib/externalLib.d.ts diff --git a/test/basic/lib/externalLib.js b/test/comparison-tests/basic/lib/externalLib.js similarity index 100% rename from test/basic/lib/externalLib.js rename to test/comparison-tests/basic/lib/externalLib.js diff --git a/test/basic/patch0/app.ts b/test/comparison-tests/basic/patch0/app.ts similarity index 100% rename from test/basic/patch0/app.ts rename to test/comparison-tests/basic/patch0/app.ts diff --git a/test/basic/patch1/app.ts b/test/comparison-tests/basic/patch1/app.ts similarity index 100% rename from test/basic/patch1/app.ts rename to test/comparison-tests/basic/patch1/app.ts diff --git a/test/basic/submodule/submodule.ts b/test/comparison-tests/basic/submodule/submodule.ts similarity index 100% rename from test/basic/submodule/submodule.ts rename to test/comparison-tests/basic/submodule/submodule.ts diff --git a/test/basic/tsconfig.json b/test/comparison-tests/basic/tsconfig.json similarity index 100% rename from test/basic/tsconfig.json rename to test/comparison-tests/basic/tsconfig.json diff --git a/test/basic/webpack.config.js b/test/comparison-tests/basic/webpack.config.js similarity index 100% rename from test/basic/webpack.config.js rename to test/comparison-tests/basic/webpack.config.js diff --git a/test/codeSplitting/README.md b/test/comparison-tests/codeSplitting/README.md similarity index 100% rename from test/codeSplitting/README.md rename to test/comparison-tests/codeSplitting/README.md diff --git a/test/codeSplitting/a.ts b/test/comparison-tests/codeSplitting/a.ts similarity index 100% rename from test/codeSplitting/a.ts rename to test/comparison-tests/codeSplitting/a.ts diff --git a/test/codeSplitting/app.ts b/test/comparison-tests/codeSplitting/app.ts similarity index 100% rename from test/codeSplitting/app.ts rename to test/comparison-tests/codeSplitting/app.ts diff --git a/test/codeSplitting/b.ts b/test/comparison-tests/codeSplitting/b.ts similarity index 100% rename from test/codeSplitting/b.ts rename to test/comparison-tests/codeSplitting/b.ts diff --git a/test/codeSplitting/c.ts b/test/comparison-tests/codeSplitting/c.ts similarity index 100% rename from test/codeSplitting/c.ts rename to test/comparison-tests/codeSplitting/c.ts diff --git a/test/codeSplitting/d.ts b/test/comparison-tests/codeSplitting/d.ts similarity index 100% rename from test/codeSplitting/d.ts rename to test/comparison-tests/codeSplitting/d.ts diff --git a/test/codeSplitting/expectedOutput-1.6/1.bundle.js b/test/comparison-tests/codeSplitting/expectedOutput-1.6/1.bundle.js similarity index 100% rename from test/codeSplitting/expectedOutput-1.6/1.bundle.js rename to test/comparison-tests/codeSplitting/expectedOutput-1.6/1.bundle.js diff --git a/test/codeSplitting/expectedOutput-1.6/bundle.js b/test/comparison-tests/codeSplitting/expectedOutput-1.6/bundle.js similarity index 100% rename from test/codeSplitting/expectedOutput-1.6/bundle.js rename to test/comparison-tests/codeSplitting/expectedOutput-1.6/bundle.js diff --git a/test/codeSplitting/expectedOutput-1.6/output.txt b/test/comparison-tests/codeSplitting/expectedOutput-1.6/output.txt similarity index 100% rename from test/codeSplitting/expectedOutput-1.6/output.txt rename to test/comparison-tests/codeSplitting/expectedOutput-1.6/output.txt diff --git a/test/codeSplitting/expectedOutput-1.7/1.bundle.js b/test/comparison-tests/codeSplitting/expectedOutput-1.7/1.bundle.js similarity index 100% rename from test/codeSplitting/expectedOutput-1.7/1.bundle.js rename to test/comparison-tests/codeSplitting/expectedOutput-1.7/1.bundle.js diff --git a/test/codeSplitting/expectedOutput-1.7/bundle.js b/test/comparison-tests/codeSplitting/expectedOutput-1.7/bundle.js similarity index 100% rename from test/codeSplitting/expectedOutput-1.7/bundle.js rename to test/comparison-tests/codeSplitting/expectedOutput-1.7/bundle.js diff --git a/test/codeSplitting/expectedOutput-1.7/output.txt b/test/comparison-tests/codeSplitting/expectedOutput-1.7/output.txt similarity index 100% rename from test/codeSplitting/expectedOutput-1.7/output.txt rename to test/comparison-tests/codeSplitting/expectedOutput-1.7/output.txt diff --git a/test/codeSplitting/expectedOutput-1.8/1.bundle.js b/test/comparison-tests/codeSplitting/expectedOutput-1.8/1.bundle.js similarity index 100% rename from test/codeSplitting/expectedOutput-1.8/1.bundle.js rename to test/comparison-tests/codeSplitting/expectedOutput-1.8/1.bundle.js diff --git a/test/codeSplitting/expectedOutput-1.8/bundle.js b/test/comparison-tests/codeSplitting/expectedOutput-1.8/bundle.js similarity index 100% rename from test/codeSplitting/expectedOutput-1.8/bundle.js rename to test/comparison-tests/codeSplitting/expectedOutput-1.8/bundle.js diff --git a/test/codeSplitting/expectedOutput-1.8/output.txt b/test/comparison-tests/codeSplitting/expectedOutput-1.8/output.txt similarity index 100% rename from test/codeSplitting/expectedOutput-1.8/output.txt rename to test/comparison-tests/codeSplitting/expectedOutput-1.8/output.txt diff --git a/test/codeSplitting/expectedOutput-2.0/1.bundle.js b/test/comparison-tests/codeSplitting/expectedOutput-2.0/1.bundle.js similarity index 100% rename from test/codeSplitting/expectedOutput-2.0/1.bundle.js rename to test/comparison-tests/codeSplitting/expectedOutput-2.0/1.bundle.js diff --git a/test/codeSplitting/expectedOutput-2.0/bundle.js b/test/comparison-tests/codeSplitting/expectedOutput-2.0/bundle.js similarity index 100% rename from test/codeSplitting/expectedOutput-2.0/bundle.js rename to test/comparison-tests/codeSplitting/expectedOutput-2.0/bundle.js diff --git a/test/codeSplitting/expectedOutput-2.0/output.txt b/test/comparison-tests/codeSplitting/expectedOutput-2.0/output.txt similarity index 100% rename from test/codeSplitting/expectedOutput-2.0/output.txt rename to test/comparison-tests/codeSplitting/expectedOutput-2.0/output.txt diff --git a/test/codeSplitting/require.d.ts b/test/comparison-tests/codeSplitting/require.d.ts similarity index 100% rename from test/codeSplitting/require.d.ts rename to test/comparison-tests/codeSplitting/require.d.ts diff --git a/test/codeSplitting/tsconfig.json b/test/comparison-tests/codeSplitting/tsconfig.json similarity index 100% rename from test/codeSplitting/tsconfig.json rename to test/comparison-tests/codeSplitting/tsconfig.json diff --git a/test/codeSplitting/webpack.config.js b/test/comparison-tests/codeSplitting/webpack.config.js similarity index 100% rename from test/codeSplitting/webpack.config.js rename to test/comparison-tests/codeSplitting/webpack.config.js diff --git a/test/conditionalRequire/README.md b/test/comparison-tests/conditionalRequire/README.md similarity index 100% rename from test/conditionalRequire/README.md rename to test/comparison-tests/conditionalRequire/README.md diff --git a/test/conditionalRequire/app.ts b/test/comparison-tests/conditionalRequire/app.ts similarity index 100% rename from test/conditionalRequire/app.ts rename to test/comparison-tests/conditionalRequire/app.ts diff --git a/test/conditionalRequire/debug.ts b/test/comparison-tests/conditionalRequire/debug.ts similarity index 100% rename from test/conditionalRequire/debug.ts rename to test/comparison-tests/conditionalRequire/debug.ts diff --git a/test/conditionalRequire/expectedOutput-1.6/bundle.js b/test/comparison-tests/conditionalRequire/expectedOutput-1.6/bundle.js similarity index 100% rename from test/conditionalRequire/expectedOutput-1.6/bundle.js rename to test/comparison-tests/conditionalRequire/expectedOutput-1.6/bundle.js diff --git a/test/conditionalRequire/expectedOutput-1.6/output.txt b/test/comparison-tests/conditionalRequire/expectedOutput-1.6/output.txt similarity index 100% rename from test/conditionalRequire/expectedOutput-1.6/output.txt rename to test/comparison-tests/conditionalRequire/expectedOutput-1.6/output.txt diff --git a/test/conditionalRequire/expectedOutput-1.7/bundle.js b/test/comparison-tests/conditionalRequire/expectedOutput-1.7/bundle.js similarity index 100% rename from test/conditionalRequire/expectedOutput-1.7/bundle.js rename to test/comparison-tests/conditionalRequire/expectedOutput-1.7/bundle.js diff --git a/test/conditionalRequire/expectedOutput-1.7/output.txt b/test/comparison-tests/conditionalRequire/expectedOutput-1.7/output.txt similarity index 100% rename from test/conditionalRequire/expectedOutput-1.7/output.txt rename to test/comparison-tests/conditionalRequire/expectedOutput-1.7/output.txt diff --git a/test/conditionalRequire/expectedOutput-1.8/bundle.js b/test/comparison-tests/conditionalRequire/expectedOutput-1.8/bundle.js similarity index 100% rename from test/conditionalRequire/expectedOutput-1.8/bundle.js rename to test/comparison-tests/conditionalRequire/expectedOutput-1.8/bundle.js diff --git a/test/conditionalRequire/expectedOutput-1.8/output.txt b/test/comparison-tests/conditionalRequire/expectedOutput-1.8/output.txt similarity index 100% rename from test/conditionalRequire/expectedOutput-1.8/output.txt rename to test/comparison-tests/conditionalRequire/expectedOutput-1.8/output.txt diff --git a/test/conditionalRequire/expectedOutput-2.0/bundle.js b/test/comparison-tests/conditionalRequire/expectedOutput-2.0/bundle.js similarity index 100% rename from test/conditionalRequire/expectedOutput-2.0/bundle.js rename to test/comparison-tests/conditionalRequire/expectedOutput-2.0/bundle.js diff --git a/test/conditionalRequire/expectedOutput-2.0/output.txt b/test/comparison-tests/conditionalRequire/expectedOutput-2.0/output.txt similarity index 100% rename from test/conditionalRequire/expectedOutput-2.0/output.txt rename to test/comparison-tests/conditionalRequire/expectedOutput-2.0/output.txt diff --git a/test/conditionalRequire/globals.d.ts b/test/comparison-tests/conditionalRequire/globals.d.ts similarity index 100% rename from test/conditionalRequire/globals.d.ts rename to test/comparison-tests/conditionalRequire/globals.d.ts diff --git a/test/conditionalRequire/require.d.ts b/test/comparison-tests/conditionalRequire/require.d.ts similarity index 100% rename from test/conditionalRequire/require.d.ts rename to test/comparison-tests/conditionalRequire/require.d.ts diff --git a/test/conditionalRequire/tsconfig.json b/test/comparison-tests/conditionalRequire/tsconfig.json similarity index 100% rename from test/conditionalRequire/tsconfig.json rename to test/comparison-tests/conditionalRequire/tsconfig.json diff --git a/test/conditionalRequire/webpack.config.js b/test/comparison-tests/conditionalRequire/webpack.config.js similarity index 100% rename from test/conditionalRequire/webpack.config.js rename to test/comparison-tests/conditionalRequire/webpack.config.js diff --git a/test/run.js b/test/comparison-tests/create-and-execute-test.js similarity index 94% rename from test/run.js rename to test/comparison-tests/create-and-execute-test.js index 5ed65e96b..0126d778c 100644 --- a/test/run.js +++ b/test/comparison-tests/create-and-execute-test.js @@ -16,8 +16,8 @@ require('colors').enabled = true; var saveOutputMode = process.argv.indexOf('--save-output') !== -1; var excludeVersions = process.argv.indexOf('--exclude-versions') !== -1; -var indexOfSingleTest = process.argv.indexOf('--single-test'); -var singleTestToRun = indexOfSingleTest !== -1 && process.argv[indexOfSingleTest + 1]; +var indexOfTestToRun = process.argv.indexOf('--test-to-run'); +var testToRun = process.argv[indexOfTestToRun + 1]; var savedOutputs = {}; @@ -33,28 +33,25 @@ if (saveOutputMode) { var typescriptVersion = semver.major(typescript.version) + '.' + semver.minor(typescript.version); var FLAKY = '_FLAKY_'; -// set up new empty staging area -var rootPath = path.resolve(__dirname, '..'); +// set up new paths +var rootPath = path.resolve(__dirname, '../../'); var rootPathWithIncorrectWindowsSeparator = rootPath.replace(/\\/g, '/'); var stagingPath = path.resolve(rootPath, '.test'); -rimraf.sync(stagingPath); -// loop through each test directory -var test = singleTestToRun; -var testPath = path.join(__dirname, test); +var testPath = path.join(__dirname, testToRun); if (fs.statSync(testPath).isDirectory()) { - if (test == 'testLib') return; + if (testToRun == 'testLib') return; - if (test == 'issue81' && semver.lt(typescript.version, '1.7.0-0')) return; + if (testToRun == 'issue81' && semver.lt(typescript.version, '1.7.0-0')) return; - describe(test, function () { - it('should have the correct output', createTest(test, testPath, {})); + describe(testToRun, function () { + it('should have the correct output', createTest(testToRun, testPath, {})); - if (test == 'declarationOutput') { return; } - if (test == 'declarationWatch') { return; } - if (test == 'issue71') { return; } - it('should work with transpile', createTest(test, testPath, { transpile: true })); + if (testToRun == 'declarationOutput') { return; } + if (testToRun == 'declarationWatch') { return; } + if (testToRun == 'issue71') { return; } + it('should work with transpile', createTest(testToRun, testPath, { transpile: true })); }); } diff --git a/test/declarationDeps/app.ts b/test/comparison-tests/declarationDeps/app.ts similarity index 100% rename from test/declarationDeps/app.ts rename to test/comparison-tests/declarationDeps/app.ts diff --git a/test/declarationDeps/expectedOutput-1.6/bundle.js b/test/comparison-tests/declarationDeps/expectedOutput-1.6/bundle.js similarity index 100% rename from test/declarationDeps/expectedOutput-1.6/bundle.js rename to test/comparison-tests/declarationDeps/expectedOutput-1.6/bundle.js diff --git a/test/declarationDeps/expectedOutput-1.6/output.transpiled.txt b/test/comparison-tests/declarationDeps/expectedOutput-1.6/output.transpiled.txt similarity index 100% rename from test/declarationDeps/expectedOutput-1.6/output.transpiled.txt rename to test/comparison-tests/declarationDeps/expectedOutput-1.6/output.transpiled.txt diff --git a/test/declarationDeps/expectedOutput-1.6/output.txt b/test/comparison-tests/declarationDeps/expectedOutput-1.6/output.txt similarity index 100% rename from test/declarationDeps/expectedOutput-1.6/output.txt rename to test/comparison-tests/declarationDeps/expectedOutput-1.6/output.txt diff --git a/test/declarationDeps/expectedOutput-1.7/bundle.js b/test/comparison-tests/declarationDeps/expectedOutput-1.7/bundle.js similarity index 100% rename from test/declarationDeps/expectedOutput-1.7/bundle.js rename to test/comparison-tests/declarationDeps/expectedOutput-1.7/bundle.js diff --git a/test/declarationDeps/expectedOutput-1.7/output.transpiled.txt b/test/comparison-tests/declarationDeps/expectedOutput-1.7/output.transpiled.txt similarity index 100% rename from test/declarationDeps/expectedOutput-1.7/output.transpiled.txt rename to test/comparison-tests/declarationDeps/expectedOutput-1.7/output.transpiled.txt diff --git a/test/declarationDeps/expectedOutput-1.7/output.txt b/test/comparison-tests/declarationDeps/expectedOutput-1.7/output.txt similarity index 100% rename from test/declarationDeps/expectedOutput-1.7/output.txt rename to test/comparison-tests/declarationDeps/expectedOutput-1.7/output.txt diff --git a/test/declarationDeps/expectedOutput-1.8/bundle.js b/test/comparison-tests/declarationDeps/expectedOutput-1.8/bundle.js similarity index 100% rename from test/declarationDeps/expectedOutput-1.8/bundle.js rename to test/comparison-tests/declarationDeps/expectedOutput-1.8/bundle.js diff --git a/test/declarationDeps/expectedOutput-1.8/bundle.transpiled.js b/test/comparison-tests/declarationDeps/expectedOutput-1.8/bundle.transpiled.js similarity index 100% rename from test/declarationDeps/expectedOutput-1.8/bundle.transpiled.js rename to test/comparison-tests/declarationDeps/expectedOutput-1.8/bundle.transpiled.js diff --git a/test/declarationDeps/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/declarationDeps/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/declarationDeps/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/declarationDeps/expectedOutput-1.8/output.transpiled.txt diff --git a/test/declarationDeps/expectedOutput-1.8/output.txt b/test/comparison-tests/declarationDeps/expectedOutput-1.8/output.txt similarity index 100% rename from test/declarationDeps/expectedOutput-1.8/output.txt rename to test/comparison-tests/declarationDeps/expectedOutput-1.8/output.txt diff --git a/test/declarationDeps/expectedOutput-2.0/bundle.js b/test/comparison-tests/declarationDeps/expectedOutput-2.0/bundle.js similarity index 100% rename from test/declarationDeps/expectedOutput-2.0/bundle.js rename to test/comparison-tests/declarationDeps/expectedOutput-2.0/bundle.js diff --git a/test/declarationDeps/expectedOutput-2.0/bundle.transpiled.js b/test/comparison-tests/declarationDeps/expectedOutput-2.0/bundle.transpiled.js similarity index 100% rename from test/declarationDeps/expectedOutput-2.0/bundle.transpiled.js rename to test/comparison-tests/declarationDeps/expectedOutput-2.0/bundle.transpiled.js diff --git a/test/declarationDeps/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/declarationDeps/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/declarationDeps/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/declarationDeps/expectedOutput-2.0/output.transpiled.txt diff --git a/test/declarationDeps/expectedOutput-2.0/output.txt b/test/comparison-tests/declarationDeps/expectedOutput-2.0/output.txt similarity index 100% rename from test/declarationDeps/expectedOutput-2.0/output.txt rename to test/comparison-tests/declarationDeps/expectedOutput-2.0/output.txt diff --git a/test/declarationDeps/hello.d.ts b/test/comparison-tests/declarationDeps/hello.d.ts similarity index 100% rename from test/declarationDeps/hello.d.ts rename to test/comparison-tests/declarationDeps/hello.d.ts diff --git a/test/declarationDeps/references.d.ts b/test/comparison-tests/declarationDeps/references.d.ts similarity index 100% rename from test/declarationDeps/references.d.ts rename to test/comparison-tests/declarationDeps/references.d.ts diff --git a/test/declarationDeps/tsconfig.json b/test/comparison-tests/declarationDeps/tsconfig.json similarity index 91% rename from test/declarationDeps/tsconfig.json rename to test/comparison-tests/declarationDeps/tsconfig.json index 2439104ee..518e957d5 100644 --- a/test/declarationDeps/tsconfig.json +++ b/test/comparison-tests/declarationDeps/tsconfig.json @@ -1,5 +1,5 @@ -{ - "files": [ - "./references.d.ts" - ] -} +{ + "files": [ + "./references.d.ts" + ] +} diff --git a/test/declarationDeps/webpack.config.js b/test/comparison-tests/declarationDeps/webpack.config.js similarity index 100% rename from test/declarationDeps/webpack.config.js rename to test/comparison-tests/declarationDeps/webpack.config.js diff --git a/test/declarationOutput/app.ts b/test/comparison-tests/declarationOutput/app.ts similarity index 100% rename from test/declarationOutput/app.ts rename to test/comparison-tests/declarationOutput/app.ts diff --git a/test/declarationOutput/expectedOutput-1.6/app.d.ts b/test/comparison-tests/declarationOutput/expectedOutput-1.6/app.d.ts similarity index 100% rename from test/declarationOutput/expectedOutput-1.6/app.d.ts rename to test/comparison-tests/declarationOutput/expectedOutput-1.6/app.d.ts diff --git a/test/declarationOutput/expectedOutput-1.6/bundle.js b/test/comparison-tests/declarationOutput/expectedOutput-1.6/bundle.js similarity index 100% rename from test/declarationOutput/expectedOutput-1.6/bundle.js rename to test/comparison-tests/declarationOutput/expectedOutput-1.6/bundle.js diff --git a/test/declarationOutput/expectedOutput-1.6/output.txt b/test/comparison-tests/declarationOutput/expectedOutput-1.6/output.txt similarity index 100% rename from test/declarationOutput/expectedOutput-1.6/output.txt rename to test/comparison-tests/declarationOutput/expectedOutput-1.6/output.txt diff --git a/test/declarationOutput/expectedOutput-1.6/sub/dep.d.ts b/test/comparison-tests/declarationOutput/expectedOutput-1.6/sub/dep.d.ts similarity index 100% rename from test/declarationOutput/expectedOutput-1.6/sub/dep.d.ts rename to test/comparison-tests/declarationOutput/expectedOutput-1.6/sub/dep.d.ts diff --git a/test/declarationOutput/expectedOutput-1.7/app.d.ts b/test/comparison-tests/declarationOutput/expectedOutput-1.7/app.d.ts similarity index 100% rename from test/declarationOutput/expectedOutput-1.7/app.d.ts rename to test/comparison-tests/declarationOutput/expectedOutput-1.7/app.d.ts diff --git a/test/declarationOutput/expectedOutput-1.7/bundle.js b/test/comparison-tests/declarationOutput/expectedOutput-1.7/bundle.js similarity index 100% rename from test/declarationOutput/expectedOutput-1.7/bundle.js rename to test/comparison-tests/declarationOutput/expectedOutput-1.7/bundle.js diff --git a/test/declarationOutput/expectedOutput-1.7/output.txt b/test/comparison-tests/declarationOutput/expectedOutput-1.7/output.txt similarity index 100% rename from test/declarationOutput/expectedOutput-1.7/output.txt rename to test/comparison-tests/declarationOutput/expectedOutput-1.7/output.txt diff --git a/test/declarationOutput/expectedOutput-1.7/sub/dep.d.ts b/test/comparison-tests/declarationOutput/expectedOutput-1.7/sub/dep.d.ts similarity index 100% rename from test/declarationOutput/expectedOutput-1.7/sub/dep.d.ts rename to test/comparison-tests/declarationOutput/expectedOutput-1.7/sub/dep.d.ts diff --git a/test/declarationOutput/expectedOutput-1.8/app.d.ts b/test/comparison-tests/declarationOutput/expectedOutput-1.8/app.d.ts similarity index 100% rename from test/declarationOutput/expectedOutput-1.8/app.d.ts rename to test/comparison-tests/declarationOutput/expectedOutput-1.8/app.d.ts diff --git a/test/declarationOutput/expectedOutput-1.8/bundle.js b/test/comparison-tests/declarationOutput/expectedOutput-1.8/bundle.js similarity index 100% rename from test/declarationOutput/expectedOutput-1.8/bundle.js rename to test/comparison-tests/declarationOutput/expectedOutput-1.8/bundle.js diff --git a/test/declarationOutput/expectedOutput-1.8/output.txt b/test/comparison-tests/declarationOutput/expectedOutput-1.8/output.txt similarity index 100% rename from test/declarationOutput/expectedOutput-1.8/output.txt rename to test/comparison-tests/declarationOutput/expectedOutput-1.8/output.txt diff --git a/test/declarationOutput/expectedOutput-1.8/sub/dep.d.ts b/test/comparison-tests/declarationOutput/expectedOutput-1.8/sub/dep.d.ts similarity index 100% rename from test/declarationOutput/expectedOutput-1.8/sub/dep.d.ts rename to test/comparison-tests/declarationOutput/expectedOutput-1.8/sub/dep.d.ts diff --git a/test/declarationOutput/expectedOutput-2.0/.test/declarationOutput/app.d.ts b/test/comparison-tests/declarationOutput/expectedOutput-2.0/.test/declarationOutput/app.d.ts similarity index 100% rename from test/declarationOutput/expectedOutput-2.0/.test/declarationOutput/app.d.ts rename to test/comparison-tests/declarationOutput/expectedOutput-2.0/.test/declarationOutput/app.d.ts diff --git a/test/declarationOutput/expectedOutput-2.0/.test/declarationOutput/sub/dep.d.ts b/test/comparison-tests/declarationOutput/expectedOutput-2.0/.test/declarationOutput/sub/dep.d.ts similarity index 100% rename from test/declarationOutput/expectedOutput-2.0/.test/declarationOutput/sub/dep.d.ts rename to test/comparison-tests/declarationOutput/expectedOutput-2.0/.test/declarationOutput/sub/dep.d.ts diff --git a/test/declarationOutput/expectedOutput-2.0/bundle.js b/test/comparison-tests/declarationOutput/expectedOutput-2.0/bundle.js similarity index 100% rename from test/declarationOutput/expectedOutput-2.0/bundle.js rename to test/comparison-tests/declarationOutput/expectedOutput-2.0/bundle.js diff --git a/test/declarationOutput/expectedOutput-2.0/output.txt b/test/comparison-tests/declarationOutput/expectedOutput-2.0/output.txt similarity index 100% rename from test/declarationOutput/expectedOutput-2.0/output.txt rename to test/comparison-tests/declarationOutput/expectedOutput-2.0/output.txt diff --git a/test/declarationOutput/sub/dep.ts b/test/comparison-tests/declarationOutput/sub/dep.ts similarity index 100% rename from test/declarationOutput/sub/dep.ts rename to test/comparison-tests/declarationOutput/sub/dep.ts diff --git a/test/declarationOutput/tsconfig.json b/test/comparison-tests/declarationOutput/tsconfig.json similarity index 100% rename from test/declarationOutput/tsconfig.json rename to test/comparison-tests/declarationOutput/tsconfig.json diff --git a/test/declarationOutput/webpack.config.js b/test/comparison-tests/declarationOutput/webpack.config.js similarity index 100% rename from test/declarationOutput/webpack.config.js rename to test/comparison-tests/declarationOutput/webpack.config.js diff --git a/test/declarationWatch/app.ts b/test/comparison-tests/declarationWatch/app.ts similarity index 100% rename from test/declarationWatch/app.ts rename to test/comparison-tests/declarationWatch/app.ts diff --git a/test/declarationWatch/dep.ts b/test/comparison-tests/declarationWatch/dep.ts similarity index 100% rename from test/declarationWatch/dep.ts rename to test/comparison-tests/declarationWatch/dep.ts diff --git a/test/declarationWatch/expectedOutput-1.6/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-1.6/bundle.js similarity index 100% rename from test/declarationWatch/expectedOutput-1.6/bundle.js rename to test/comparison-tests/declarationWatch/expectedOutput-1.6/bundle.js diff --git a/test/declarationWatch/expectedOutput-1.6/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-1.6/output.txt similarity index 100% rename from test/declarationWatch/expectedOutput-1.6/output.txt rename to test/comparison-tests/declarationWatch/expectedOutput-1.6/output.txt diff --git a/test/declarationWatch/expectedOutput-1.6/patch0/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-1.6/patch0/bundle.js similarity index 100% rename from test/declarationWatch/expectedOutput-1.6/patch0/bundle.js rename to test/comparison-tests/declarationWatch/expectedOutput-1.6/patch0/bundle.js diff --git a/test/declarationWatch/expectedOutput-1.6/patch0/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-1.6/patch0/output.txt similarity index 100% rename from test/declarationWatch/expectedOutput-1.6/patch0/output.txt rename to test/comparison-tests/declarationWatch/expectedOutput-1.6/patch0/output.txt diff --git a/test/declarationWatch/expectedOutput-1.6/patch1/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-1.6/patch1/bundle.js similarity index 100% rename from test/declarationWatch/expectedOutput-1.6/patch1/bundle.js rename to test/comparison-tests/declarationWatch/expectedOutput-1.6/patch1/bundle.js diff --git a/test/declarationWatch/expectedOutput-1.6/patch1/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-1.6/patch1/output.txt similarity index 100% rename from test/declarationWatch/expectedOutput-1.6/patch1/output.txt rename to test/comparison-tests/declarationWatch/expectedOutput-1.6/patch1/output.txt diff --git a/test/declarationWatch/expectedOutput-1.7/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-1.7/bundle.js similarity index 100% rename from test/declarationWatch/expectedOutput-1.7/bundle.js rename to test/comparison-tests/declarationWatch/expectedOutput-1.7/bundle.js diff --git a/test/declarationWatch/expectedOutput-1.7/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-1.7/output.txt similarity index 100% rename from test/declarationWatch/expectedOutput-1.7/output.txt rename to test/comparison-tests/declarationWatch/expectedOutput-1.7/output.txt diff --git a/test/declarationWatch/expectedOutput-1.7/patch0/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-1.7/patch0/bundle.js similarity index 100% rename from test/declarationWatch/expectedOutput-1.7/patch0/bundle.js rename to test/comparison-tests/declarationWatch/expectedOutput-1.7/patch0/bundle.js diff --git a/test/declarationWatch/expectedOutput-1.7/patch0/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-1.7/patch0/output.txt similarity index 100% rename from test/declarationWatch/expectedOutput-1.7/patch0/output.txt rename to test/comparison-tests/declarationWatch/expectedOutput-1.7/patch0/output.txt diff --git a/test/declarationWatch/expectedOutput-1.7/patch1/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-1.7/patch1/bundle.js similarity index 100% rename from test/declarationWatch/expectedOutput-1.7/patch1/bundle.js rename to test/comparison-tests/declarationWatch/expectedOutput-1.7/patch1/bundle.js diff --git a/test/declarationWatch/expectedOutput-1.7/patch1/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-1.7/patch1/output.txt similarity index 100% rename from test/declarationWatch/expectedOutput-1.7/patch1/output.txt rename to test/comparison-tests/declarationWatch/expectedOutput-1.7/patch1/output.txt diff --git a/test/declarationWatch/expectedOutput-1.8/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-1.8/bundle.js similarity index 100% rename from test/declarationWatch/expectedOutput-1.8/bundle.js rename to test/comparison-tests/declarationWatch/expectedOutput-1.8/bundle.js diff --git a/test/declarationWatch/expectedOutput-1.8/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-1.8/output.txt similarity index 100% rename from test/declarationWatch/expectedOutput-1.8/output.txt rename to test/comparison-tests/declarationWatch/expectedOutput-1.8/output.txt diff --git a/test/declarationWatch/expectedOutput-1.8/patch0/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-1.8/patch0/bundle.js similarity index 100% rename from test/declarationWatch/expectedOutput-1.8/patch0/bundle.js rename to test/comparison-tests/declarationWatch/expectedOutput-1.8/patch0/bundle.js diff --git a/test/declarationWatch/expectedOutput-1.8/patch0/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-1.8/patch0/output.txt similarity index 100% rename from test/declarationWatch/expectedOutput-1.8/patch0/output.txt rename to test/comparison-tests/declarationWatch/expectedOutput-1.8/patch0/output.txt diff --git a/test/declarationWatch/expectedOutput-1.8/patch1/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-1.8/patch1/bundle.js similarity index 100% rename from test/declarationWatch/expectedOutput-1.8/patch1/bundle.js rename to test/comparison-tests/declarationWatch/expectedOutput-1.8/patch1/bundle.js diff --git a/test/declarationWatch/expectedOutput-1.8/patch1/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-1.8/patch1/output.txt similarity index 100% rename from test/declarationWatch/expectedOutput-1.8/patch1/output.txt rename to test/comparison-tests/declarationWatch/expectedOutput-1.8/patch1/output.txt diff --git a/test/declarationWatch/expectedOutput-2.0/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-2.0/bundle.js similarity index 100% rename from test/declarationWatch/expectedOutput-2.0/bundle.js rename to test/comparison-tests/declarationWatch/expectedOutput-2.0/bundle.js diff --git a/test/declarationWatch/expectedOutput-2.0/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-2.0/output.txt similarity index 100% rename from test/declarationWatch/expectedOutput-2.0/output.txt rename to test/comparison-tests/declarationWatch/expectedOutput-2.0/output.txt diff --git a/test/declarationWatch/expectedOutput-2.0/patch0/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-2.0/patch0/bundle.js similarity index 100% rename from test/declarationWatch/expectedOutput-2.0/patch0/bundle.js rename to test/comparison-tests/declarationWatch/expectedOutput-2.0/patch0/bundle.js diff --git a/test/declarationWatch/expectedOutput-2.0/patch0/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-2.0/patch0/output.txt similarity index 100% rename from test/declarationWatch/expectedOutput-2.0/patch0/output.txt rename to test/comparison-tests/declarationWatch/expectedOutput-2.0/patch0/output.txt diff --git a/test/declarationWatch/expectedOutput-2.0/patch1/bundle.js b/test/comparison-tests/declarationWatch/expectedOutput-2.0/patch1/bundle.js similarity index 100% rename from test/declarationWatch/expectedOutput-2.0/patch1/bundle.js rename to test/comparison-tests/declarationWatch/expectedOutput-2.0/patch1/bundle.js diff --git a/test/declarationWatch/expectedOutput-2.0/patch1/output.txt b/test/comparison-tests/declarationWatch/expectedOutput-2.0/patch1/output.txt similarity index 100% rename from test/declarationWatch/expectedOutput-2.0/patch1/output.txt rename to test/comparison-tests/declarationWatch/expectedOutput-2.0/patch1/output.txt diff --git a/test/declarationWatch/patch0/thing.d.ts b/test/comparison-tests/declarationWatch/patch0/thing.d.ts similarity index 100% rename from test/declarationWatch/patch0/thing.d.ts rename to test/comparison-tests/declarationWatch/patch0/thing.d.ts diff --git a/test/declarationWatch/patch1/thing.d.ts b/test/comparison-tests/declarationWatch/patch1/thing.d.ts similarity index 100% rename from test/declarationWatch/patch1/thing.d.ts rename to test/comparison-tests/declarationWatch/patch1/thing.d.ts diff --git a/test/declarationWatch/thing.d.ts b/test/comparison-tests/declarationWatch/thing.d.ts similarity index 100% rename from test/declarationWatch/thing.d.ts rename to test/comparison-tests/declarationWatch/thing.d.ts diff --git a/test/declarationWatch/tsconfig.json b/test/comparison-tests/declarationWatch/tsconfig.json similarity index 100% rename from test/declarationWatch/tsconfig.json rename to test/comparison-tests/declarationWatch/tsconfig.json diff --git a/test/declarationWatch/webpack.config.js b/test/comparison-tests/declarationWatch/webpack.config.js similarity index 100% rename from test/declarationWatch/webpack.config.js rename to test/comparison-tests/declarationWatch/webpack.config.js diff --git a/test/dependencyErrors/app.ts b/test/comparison-tests/dependencyErrors/app.ts similarity index 100% rename from test/dependencyErrors/app.ts rename to test/comparison-tests/dependencyErrors/app.ts diff --git a/test/dependencyErrors/dep1.ts b/test/comparison-tests/dependencyErrors/dep1.ts similarity index 100% rename from test/dependencyErrors/dep1.ts rename to test/comparison-tests/dependencyErrors/dep1.ts diff --git a/test/dependencyErrors/dep2.ts b/test/comparison-tests/dependencyErrors/dep2.ts similarity index 100% rename from test/dependencyErrors/dep2.ts rename to test/comparison-tests/dependencyErrors/dep2.ts diff --git a/test/dependencyErrors/expectedOutput-1.6/bundle.js b/test/comparison-tests/dependencyErrors/expectedOutput-1.6/bundle.js similarity index 100% rename from test/dependencyErrors/expectedOutput-1.6/bundle.js rename to test/comparison-tests/dependencyErrors/expectedOutput-1.6/bundle.js diff --git a/test/dependencyErrors/expectedOutput-1.6/output.transpiled.txt b/test/comparison-tests/dependencyErrors/expectedOutput-1.6/output.transpiled.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-1.6/output.transpiled.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-1.6/output.transpiled.txt diff --git a/test/dependencyErrors/expectedOutput-1.6/output.txt b/test/comparison-tests/dependencyErrors/expectedOutput-1.6/output.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-1.6/output.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-1.6/output.txt diff --git a/test/dependencyErrors/expectedOutput-1.6/patch0/bundle.js b/test/comparison-tests/dependencyErrors/expectedOutput-1.6/patch0/bundle.js similarity index 100% rename from test/dependencyErrors/expectedOutput-1.6/patch0/bundle.js rename to test/comparison-tests/dependencyErrors/expectedOutput-1.6/patch0/bundle.js diff --git a/test/dependencyErrors/expectedOutput-1.6/patch0/output.transpiled.txt b/test/comparison-tests/dependencyErrors/expectedOutput-1.6/patch0/output.transpiled.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-1.6/patch0/output.transpiled.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-1.6/patch0/output.transpiled.txt diff --git a/test/dependencyErrors/expectedOutput-1.6/patch0/output.txt b/test/comparison-tests/dependencyErrors/expectedOutput-1.6/patch0/output.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-1.6/patch0/output.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-1.6/patch0/output.txt diff --git a/test/dependencyErrors/expectedOutput-1.7/bundle.js b/test/comparison-tests/dependencyErrors/expectedOutput-1.7/bundle.js similarity index 100% rename from test/dependencyErrors/expectedOutput-1.7/bundle.js rename to test/comparison-tests/dependencyErrors/expectedOutput-1.7/bundle.js diff --git a/test/dependencyErrors/expectedOutput-1.7/output.transpiled.txt b/test/comparison-tests/dependencyErrors/expectedOutput-1.7/output.transpiled.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-1.7/output.transpiled.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-1.7/output.transpiled.txt diff --git a/test/dependencyErrors/expectedOutput-1.7/output.txt b/test/comparison-tests/dependencyErrors/expectedOutput-1.7/output.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-1.7/output.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-1.7/output.txt diff --git a/test/dependencyErrors/expectedOutput-1.7/patch0/bundle.js b/test/comparison-tests/dependencyErrors/expectedOutput-1.7/patch0/bundle.js similarity index 100% rename from test/dependencyErrors/expectedOutput-1.7/patch0/bundle.js rename to test/comparison-tests/dependencyErrors/expectedOutput-1.7/patch0/bundle.js diff --git a/test/dependencyErrors/expectedOutput-1.7/patch0/output.transpiled.txt b/test/comparison-tests/dependencyErrors/expectedOutput-1.7/patch0/output.transpiled.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-1.7/patch0/output.transpiled.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-1.7/patch0/output.transpiled.txt diff --git a/test/dependencyErrors/expectedOutput-1.7/patch0/output.txt b/test/comparison-tests/dependencyErrors/expectedOutput-1.7/patch0/output.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-1.7/patch0/output.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-1.7/patch0/output.txt diff --git a/test/dependencyErrors/expectedOutput-1.8/bundle.js b/test/comparison-tests/dependencyErrors/expectedOutput-1.8/bundle.js similarity index 100% rename from test/dependencyErrors/expectedOutput-1.8/bundle.js rename to test/comparison-tests/dependencyErrors/expectedOutput-1.8/bundle.js diff --git a/test/dependencyErrors/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/dependencyErrors/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-1.8/output.transpiled.txt diff --git a/test/dependencyErrors/expectedOutput-1.8/output.txt b/test/comparison-tests/dependencyErrors/expectedOutput-1.8/output.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-1.8/output.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-1.8/output.txt diff --git a/test/dependencyErrors/expectedOutput-1.8/patch0/bundle.js b/test/comparison-tests/dependencyErrors/expectedOutput-1.8/patch0/bundle.js similarity index 100% rename from test/dependencyErrors/expectedOutput-1.8/patch0/bundle.js rename to test/comparison-tests/dependencyErrors/expectedOutput-1.8/patch0/bundle.js diff --git a/test/dependencyErrors/expectedOutput-1.8/patch0/output.transpiled.txt b/test/comparison-tests/dependencyErrors/expectedOutput-1.8/patch0/output.transpiled.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-1.8/patch0/output.transpiled.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-1.8/patch0/output.transpiled.txt diff --git a/test/dependencyErrors/expectedOutput-1.8/patch0/output.txt b/test/comparison-tests/dependencyErrors/expectedOutput-1.8/patch0/output.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-1.8/patch0/output.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-1.8/patch0/output.txt diff --git a/test/dependencyErrors/expectedOutput-2.0/bundle.js b/test/comparison-tests/dependencyErrors/expectedOutput-2.0/bundle.js similarity index 100% rename from test/dependencyErrors/expectedOutput-2.0/bundle.js rename to test/comparison-tests/dependencyErrors/expectedOutput-2.0/bundle.js diff --git a/test/dependencyErrors/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/dependencyErrors/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-2.0/output.transpiled.txt diff --git a/test/dependencyErrors/expectedOutput-2.0/output.txt b/test/comparison-tests/dependencyErrors/expectedOutput-2.0/output.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-2.0/output.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-2.0/output.txt diff --git a/test/dependencyErrors/expectedOutput-2.0/patch0/bundle.js b/test/comparison-tests/dependencyErrors/expectedOutput-2.0/patch0/bundle.js similarity index 100% rename from test/dependencyErrors/expectedOutput-2.0/patch0/bundle.js rename to test/comparison-tests/dependencyErrors/expectedOutput-2.0/patch0/bundle.js diff --git a/test/dependencyErrors/expectedOutput-2.0/patch0/output.transpiled.txt b/test/comparison-tests/dependencyErrors/expectedOutput-2.0/patch0/output.transpiled.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-2.0/patch0/output.transpiled.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-2.0/patch0/output.transpiled.txt diff --git a/test/dependencyErrors/expectedOutput-2.0/patch0/output.txt b/test/comparison-tests/dependencyErrors/expectedOutput-2.0/patch0/output.txt similarity index 100% rename from test/dependencyErrors/expectedOutput-2.0/patch0/output.txt rename to test/comparison-tests/dependencyErrors/expectedOutput-2.0/patch0/output.txt diff --git a/test/dependencyErrors/patch0/dep1.ts b/test/comparison-tests/dependencyErrors/patch0/dep1.ts similarity index 100% rename from test/dependencyErrors/patch0/dep1.ts rename to test/comparison-tests/dependencyErrors/patch0/dep1.ts diff --git a/test/dependencyErrors/tsconfig.json b/test/comparison-tests/dependencyErrors/tsconfig.json similarity index 100% rename from test/dependencyErrors/tsconfig.json rename to test/comparison-tests/dependencyErrors/tsconfig.json diff --git a/test/dependencyErrors/webpack.config.js b/test/comparison-tests/dependencyErrors/webpack.config.js similarity index 100% rename from test/dependencyErrors/webpack.config.js rename to test/comparison-tests/dependencyErrors/webpack.config.js diff --git a/test/es3/app.ts b/test/comparison-tests/es3/app.ts similarity index 100% rename from test/es3/app.ts rename to test/comparison-tests/es3/app.ts diff --git a/test/es3/expectedOutput-1.6/bundle.js b/test/comparison-tests/es3/expectedOutput-1.6/bundle.js similarity index 100% rename from test/es3/expectedOutput-1.6/bundle.js rename to test/comparison-tests/es3/expectedOutput-1.6/bundle.js diff --git a/test/es3/expectedOutput-1.6/output.transpiled.txt b/test/comparison-tests/es3/expectedOutput-1.6/output.transpiled.txt similarity index 100% rename from test/es3/expectedOutput-1.6/output.transpiled.txt rename to test/comparison-tests/es3/expectedOutput-1.6/output.transpiled.txt diff --git a/test/es3/expectedOutput-1.6/output.txt b/test/comparison-tests/es3/expectedOutput-1.6/output.txt similarity index 100% rename from test/es3/expectedOutput-1.6/output.txt rename to test/comparison-tests/es3/expectedOutput-1.6/output.txt diff --git a/test/es3/expectedOutput-1.7/bundle.js b/test/comparison-tests/es3/expectedOutput-1.7/bundle.js similarity index 100% rename from test/es3/expectedOutput-1.7/bundle.js rename to test/comparison-tests/es3/expectedOutput-1.7/bundle.js diff --git a/test/es3/expectedOutput-1.7/output.transpiled.txt b/test/comparison-tests/es3/expectedOutput-1.7/output.transpiled.txt similarity index 100% rename from test/es3/expectedOutput-1.7/output.transpiled.txt rename to test/comparison-tests/es3/expectedOutput-1.7/output.transpiled.txt diff --git a/test/es3/expectedOutput-1.7/output.txt b/test/comparison-tests/es3/expectedOutput-1.7/output.txt similarity index 100% rename from test/es3/expectedOutput-1.7/output.txt rename to test/comparison-tests/es3/expectedOutput-1.7/output.txt diff --git a/test/es3/expectedOutput-1.8/bundle.js b/test/comparison-tests/es3/expectedOutput-1.8/bundle.js similarity index 100% rename from test/es3/expectedOutput-1.8/bundle.js rename to test/comparison-tests/es3/expectedOutput-1.8/bundle.js diff --git a/test/es3/expectedOutput-1.8/bundle.transpiled.js b/test/comparison-tests/es3/expectedOutput-1.8/bundle.transpiled.js similarity index 100% rename from test/es3/expectedOutput-1.8/bundle.transpiled.js rename to test/comparison-tests/es3/expectedOutput-1.8/bundle.transpiled.js diff --git a/test/es3/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/es3/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/es3/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/es3/expectedOutput-1.8/output.transpiled.txt diff --git a/test/es3/expectedOutput-1.8/output.txt b/test/comparison-tests/es3/expectedOutput-1.8/output.txt similarity index 100% rename from test/es3/expectedOutput-1.8/output.txt rename to test/comparison-tests/es3/expectedOutput-1.8/output.txt diff --git a/test/es3/expectedOutput-2.0/bundle.js b/test/comparison-tests/es3/expectedOutput-2.0/bundle.js similarity index 100% rename from test/es3/expectedOutput-2.0/bundle.js rename to test/comparison-tests/es3/expectedOutput-2.0/bundle.js diff --git a/test/es3/expectedOutput-2.0/bundle.transpiled.js b/test/comparison-tests/es3/expectedOutput-2.0/bundle.transpiled.js similarity index 100% rename from test/es3/expectedOutput-2.0/bundle.transpiled.js rename to test/comparison-tests/es3/expectedOutput-2.0/bundle.transpiled.js diff --git a/test/es3/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/es3/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/es3/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/es3/expectedOutput-2.0/output.transpiled.txt diff --git a/test/es3/expectedOutput-2.0/output.txt b/test/comparison-tests/es3/expectedOutput-2.0/output.txt similarity index 100% rename from test/es3/expectedOutput-2.0/output.txt rename to test/comparison-tests/es3/expectedOutput-2.0/output.txt diff --git a/test/es3/tsconfig.json b/test/comparison-tests/es3/tsconfig.json similarity index 100% rename from test/es3/tsconfig.json rename to test/comparison-tests/es3/tsconfig.json diff --git a/test/es3/webpack.config.js b/test/comparison-tests/es3/webpack.config.js similarity index 100% rename from test/es3/webpack.config.js rename to test/comparison-tests/es3/webpack.config.js diff --git a/test/es5/app.ts b/test/comparison-tests/es5/app.ts similarity index 100% rename from test/es5/app.ts rename to test/comparison-tests/es5/app.ts diff --git a/test/es5/expectedOutput-1.6/bundle.js b/test/comparison-tests/es5/expectedOutput-1.6/bundle.js similarity index 100% rename from test/es5/expectedOutput-1.6/bundle.js rename to test/comparison-tests/es5/expectedOutput-1.6/bundle.js diff --git a/test/es5/expectedOutput-1.6/output.transpiled.txt b/test/comparison-tests/es5/expectedOutput-1.6/output.transpiled.txt similarity index 100% rename from test/es5/expectedOutput-1.6/output.transpiled.txt rename to test/comparison-tests/es5/expectedOutput-1.6/output.transpiled.txt diff --git a/test/es5/expectedOutput-1.6/output.txt b/test/comparison-tests/es5/expectedOutput-1.6/output.txt similarity index 100% rename from test/es5/expectedOutput-1.6/output.txt rename to test/comparison-tests/es5/expectedOutput-1.6/output.txt diff --git a/test/es5/expectedOutput-1.7/bundle.js b/test/comparison-tests/es5/expectedOutput-1.7/bundle.js similarity index 100% rename from test/es5/expectedOutput-1.7/bundle.js rename to test/comparison-tests/es5/expectedOutput-1.7/bundle.js diff --git a/test/es5/expectedOutput-1.7/output.transpiled.txt b/test/comparison-tests/es5/expectedOutput-1.7/output.transpiled.txt similarity index 100% rename from test/es5/expectedOutput-1.7/output.transpiled.txt rename to test/comparison-tests/es5/expectedOutput-1.7/output.transpiled.txt diff --git a/test/es5/expectedOutput-1.7/output.txt b/test/comparison-tests/es5/expectedOutput-1.7/output.txt similarity index 100% rename from test/es5/expectedOutput-1.7/output.txt rename to test/comparison-tests/es5/expectedOutput-1.7/output.txt diff --git a/test/es5/expectedOutput-1.8/bundle.js b/test/comparison-tests/es5/expectedOutput-1.8/bundle.js similarity index 100% rename from test/es5/expectedOutput-1.8/bundle.js rename to test/comparison-tests/es5/expectedOutput-1.8/bundle.js diff --git a/test/es5/expectedOutput-1.8/bundle.transpiled.js b/test/comparison-tests/es5/expectedOutput-1.8/bundle.transpiled.js similarity index 100% rename from test/es5/expectedOutput-1.8/bundle.transpiled.js rename to test/comparison-tests/es5/expectedOutput-1.8/bundle.transpiled.js diff --git a/test/es5/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/es5/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/es5/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/es5/expectedOutput-1.8/output.transpiled.txt diff --git a/test/es5/expectedOutput-1.8/output.txt b/test/comparison-tests/es5/expectedOutput-1.8/output.txt similarity index 100% rename from test/es5/expectedOutput-1.8/output.txt rename to test/comparison-tests/es5/expectedOutput-1.8/output.txt diff --git a/test/es5/expectedOutput-2.0/bundle.js b/test/comparison-tests/es5/expectedOutput-2.0/bundle.js similarity index 100% rename from test/es5/expectedOutput-2.0/bundle.js rename to test/comparison-tests/es5/expectedOutput-2.0/bundle.js diff --git a/test/es5/expectedOutput-2.0/bundle.transpiled.js b/test/comparison-tests/es5/expectedOutput-2.0/bundle.transpiled.js similarity index 100% rename from test/es5/expectedOutput-2.0/bundle.transpiled.js rename to test/comparison-tests/es5/expectedOutput-2.0/bundle.transpiled.js diff --git a/test/es5/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/es5/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/es5/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/es5/expectedOutput-2.0/output.transpiled.txt diff --git a/test/es5/expectedOutput-2.0/output.txt b/test/comparison-tests/es5/expectedOutput-2.0/output.txt similarity index 100% rename from test/es5/expectedOutput-2.0/output.txt rename to test/comparison-tests/es5/expectedOutput-2.0/output.txt diff --git a/test/es5/tsconfig.json b/test/comparison-tests/es5/tsconfig.json similarity index 100% rename from test/es5/tsconfig.json rename to test/comparison-tests/es5/tsconfig.json diff --git a/test/es5/webpack.config.js b/test/comparison-tests/es5/webpack.config.js similarity index 100% rename from test/es5/webpack.config.js rename to test/comparison-tests/es5/webpack.config.js diff --git a/test/es6/app.ts b/test/comparison-tests/es6/app.ts similarity index 100% rename from test/es6/app.ts rename to test/comparison-tests/es6/app.ts diff --git a/test/es6/expectedOutput-1.6/bundle.js b/test/comparison-tests/es6/expectedOutput-1.6/bundle.js similarity index 100% rename from test/es6/expectedOutput-1.6/bundle.js rename to test/comparison-tests/es6/expectedOutput-1.6/bundle.js diff --git a/test/es6/expectedOutput-1.6/output.txt b/test/comparison-tests/es6/expectedOutput-1.6/output.txt similarity index 100% rename from test/es6/expectedOutput-1.6/output.txt rename to test/comparison-tests/es6/expectedOutput-1.6/output.txt diff --git a/test/es6/expectedOutput-1.7/bundle.js b/test/comparison-tests/es6/expectedOutput-1.7/bundle.js similarity index 100% rename from test/es6/expectedOutput-1.7/bundle.js rename to test/comparison-tests/es6/expectedOutput-1.7/bundle.js diff --git a/test/es6/expectedOutput-1.7/output.txt b/test/comparison-tests/es6/expectedOutput-1.7/output.txt similarity index 100% rename from test/es6/expectedOutput-1.7/output.txt rename to test/comparison-tests/es6/expectedOutput-1.7/output.txt diff --git a/test/es6/expectedOutput-1.8/bundle.js b/test/comparison-tests/es6/expectedOutput-1.8/bundle.js similarity index 100% rename from test/es6/expectedOutput-1.8/bundle.js rename to test/comparison-tests/es6/expectedOutput-1.8/bundle.js diff --git a/test/es6/expectedOutput-1.8/output.txt b/test/comparison-tests/es6/expectedOutput-1.8/output.txt similarity index 100% rename from test/es6/expectedOutput-1.8/output.txt rename to test/comparison-tests/es6/expectedOutput-1.8/output.txt diff --git a/test/es6/expectedOutput-2.0/bundle.js b/test/comparison-tests/es6/expectedOutput-2.0/bundle.js similarity index 100% rename from test/es6/expectedOutput-2.0/bundle.js rename to test/comparison-tests/es6/expectedOutput-2.0/bundle.js diff --git a/test/es6/expectedOutput-2.0/output.txt b/test/comparison-tests/es6/expectedOutput-2.0/output.txt similarity index 100% rename from test/es6/expectedOutput-2.0/output.txt rename to test/comparison-tests/es6/expectedOutput-2.0/output.txt diff --git a/test/es6/tsconfig.json b/test/comparison-tests/es6/tsconfig.json similarity index 100% rename from test/es6/tsconfig.json rename to test/comparison-tests/es6/tsconfig.json diff --git a/test/es6/webpack.config.js b/test/comparison-tests/es6/webpack.config.js similarity index 100% rename from test/es6/webpack.config.js rename to test/comparison-tests/es6/webpack.config.js diff --git a/test/es6codeSplitting/README.md b/test/comparison-tests/es6codeSplitting/README.md similarity index 100% rename from test/es6codeSplitting/README.md rename to test/comparison-tests/es6codeSplitting/README.md diff --git a/test/es6codeSplitting/a.ts b/test/comparison-tests/es6codeSplitting/a.ts similarity index 100% rename from test/es6codeSplitting/a.ts rename to test/comparison-tests/es6codeSplitting/a.ts diff --git a/test/es6codeSplitting/app.ts b/test/comparison-tests/es6codeSplitting/app.ts similarity index 100% rename from test/es6codeSplitting/app.ts rename to test/comparison-tests/es6codeSplitting/app.ts diff --git a/test/es6codeSplitting/b.ts b/test/comparison-tests/es6codeSplitting/b.ts similarity index 100% rename from test/es6codeSplitting/b.ts rename to test/comparison-tests/es6codeSplitting/b.ts diff --git a/test/es6codeSplitting/c.ts b/test/comparison-tests/es6codeSplitting/c.ts similarity index 100% rename from test/es6codeSplitting/c.ts rename to test/comparison-tests/es6codeSplitting/c.ts diff --git a/test/es6codeSplitting/d.ts b/test/comparison-tests/es6codeSplitting/d.ts similarity index 100% rename from test/es6codeSplitting/d.ts rename to test/comparison-tests/es6codeSplitting/d.ts diff --git a/test/es6codeSplitting/expectedOutput-1.6/1.bundle.js b/test/comparison-tests/es6codeSplitting/expectedOutput-1.6/1.bundle.js similarity index 100% rename from test/es6codeSplitting/expectedOutput-1.6/1.bundle.js rename to test/comparison-tests/es6codeSplitting/expectedOutput-1.6/1.bundle.js diff --git a/test/es6codeSplitting/expectedOutput-1.6/bundle.js b/test/comparison-tests/es6codeSplitting/expectedOutput-1.6/bundle.js similarity index 100% rename from test/es6codeSplitting/expectedOutput-1.6/bundle.js rename to test/comparison-tests/es6codeSplitting/expectedOutput-1.6/bundle.js diff --git a/test/es6codeSplitting/expectedOutput-1.6/output.txt b/test/comparison-tests/es6codeSplitting/expectedOutput-1.6/output.txt similarity index 100% rename from test/es6codeSplitting/expectedOutput-1.6/output.txt rename to test/comparison-tests/es6codeSplitting/expectedOutput-1.6/output.txt diff --git a/test/es6codeSplitting/expectedOutput-1.7/1.bundle.js b/test/comparison-tests/es6codeSplitting/expectedOutput-1.7/1.bundle.js similarity index 100% rename from test/es6codeSplitting/expectedOutput-1.7/1.bundle.js rename to test/comparison-tests/es6codeSplitting/expectedOutput-1.7/1.bundle.js diff --git a/test/es6codeSplitting/expectedOutput-1.7/bundle.js b/test/comparison-tests/es6codeSplitting/expectedOutput-1.7/bundle.js similarity index 100% rename from test/es6codeSplitting/expectedOutput-1.7/bundle.js rename to test/comparison-tests/es6codeSplitting/expectedOutput-1.7/bundle.js diff --git a/test/es6codeSplitting/expectedOutput-1.7/output.txt b/test/comparison-tests/es6codeSplitting/expectedOutput-1.7/output.txt similarity index 100% rename from test/es6codeSplitting/expectedOutput-1.7/output.txt rename to test/comparison-tests/es6codeSplitting/expectedOutput-1.7/output.txt diff --git a/test/es6codeSplitting/expectedOutput-1.8/1.bundle.js b/test/comparison-tests/es6codeSplitting/expectedOutput-1.8/1.bundle.js similarity index 100% rename from test/es6codeSplitting/expectedOutput-1.8/1.bundle.js rename to test/comparison-tests/es6codeSplitting/expectedOutput-1.8/1.bundle.js diff --git a/test/es6codeSplitting/expectedOutput-1.8/bundle.js b/test/comparison-tests/es6codeSplitting/expectedOutput-1.8/bundle.js similarity index 100% rename from test/es6codeSplitting/expectedOutput-1.8/bundle.js rename to test/comparison-tests/es6codeSplitting/expectedOutput-1.8/bundle.js diff --git a/test/es6codeSplitting/expectedOutput-1.8/output.txt b/test/comparison-tests/es6codeSplitting/expectedOutput-1.8/output.txt similarity index 100% rename from test/es6codeSplitting/expectedOutput-1.8/output.txt rename to test/comparison-tests/es6codeSplitting/expectedOutput-1.8/output.txt diff --git a/test/es6codeSplitting/expectedOutput-2.0/1.bundle.js b/test/comparison-tests/es6codeSplitting/expectedOutput-2.0/1.bundle.js similarity index 100% rename from test/es6codeSplitting/expectedOutput-2.0/1.bundle.js rename to test/comparison-tests/es6codeSplitting/expectedOutput-2.0/1.bundle.js diff --git a/test/es6codeSplitting/expectedOutput-2.0/bundle.js b/test/comparison-tests/es6codeSplitting/expectedOutput-2.0/bundle.js similarity index 100% rename from test/es6codeSplitting/expectedOutput-2.0/bundle.js rename to test/comparison-tests/es6codeSplitting/expectedOutput-2.0/bundle.js diff --git a/test/es6codeSplitting/expectedOutput-2.0/output.txt b/test/comparison-tests/es6codeSplitting/expectedOutput-2.0/output.txt similarity index 100% rename from test/es6codeSplitting/expectedOutput-2.0/output.txt rename to test/comparison-tests/es6codeSplitting/expectedOutput-2.0/output.txt diff --git a/test/es6codeSplitting/require.d.ts b/test/comparison-tests/es6codeSplitting/require.d.ts similarity index 100% rename from test/es6codeSplitting/require.d.ts rename to test/comparison-tests/es6codeSplitting/require.d.ts diff --git a/test/es6codeSplitting/tsconfig.json b/test/comparison-tests/es6codeSplitting/tsconfig.json similarity index 100% rename from test/es6codeSplitting/tsconfig.json rename to test/comparison-tests/es6codeSplitting/tsconfig.json diff --git a/test/es6codeSplitting/webpack.config.js b/test/comparison-tests/es6codeSplitting/webpack.config.js similarity index 100% rename from test/es6codeSplitting/webpack.config.js rename to test/comparison-tests/es6codeSplitting/webpack.config.js diff --git a/test/es6resolveParent/expectedOutput-1.6/bundle.js b/test/comparison-tests/es6resolveParent/expectedOutput-1.6/bundle.js similarity index 100% rename from test/es6resolveParent/expectedOutput-1.6/bundle.js rename to test/comparison-tests/es6resolveParent/expectedOutput-1.6/bundle.js diff --git a/test/es6resolveParent/expectedOutput-1.6/output.txt b/test/comparison-tests/es6resolveParent/expectedOutput-1.6/output.txt similarity index 100% rename from test/es6resolveParent/expectedOutput-1.6/output.txt rename to test/comparison-tests/es6resolveParent/expectedOutput-1.6/output.txt diff --git a/test/es6resolveParent/expectedOutput-1.7/bundle.js b/test/comparison-tests/es6resolveParent/expectedOutput-1.7/bundle.js similarity index 100% rename from test/es6resolveParent/expectedOutput-1.7/bundle.js rename to test/comparison-tests/es6resolveParent/expectedOutput-1.7/bundle.js diff --git a/test/es6resolveParent/expectedOutput-1.7/output.txt b/test/comparison-tests/es6resolveParent/expectedOutput-1.7/output.txt similarity index 100% rename from test/es6resolveParent/expectedOutput-1.7/output.txt rename to test/comparison-tests/es6resolveParent/expectedOutput-1.7/output.txt diff --git a/test/es6resolveParent/expectedOutput-1.8/bundle.js b/test/comparison-tests/es6resolveParent/expectedOutput-1.8/bundle.js similarity index 100% rename from test/es6resolveParent/expectedOutput-1.8/bundle.js rename to test/comparison-tests/es6resolveParent/expectedOutput-1.8/bundle.js diff --git a/test/es6resolveParent/expectedOutput-1.8/output.txt b/test/comparison-tests/es6resolveParent/expectedOutput-1.8/output.txt similarity index 100% rename from test/es6resolveParent/expectedOutput-1.8/output.txt rename to test/comparison-tests/es6resolveParent/expectedOutput-1.8/output.txt diff --git a/test/es6resolveParent/expectedOutput-2.0/bundle.js b/test/comparison-tests/es6resolveParent/expectedOutput-2.0/bundle.js similarity index 100% rename from test/es6resolveParent/expectedOutput-2.0/bundle.js rename to test/comparison-tests/es6resolveParent/expectedOutput-2.0/bundle.js diff --git a/test/es6resolveParent/expectedOutput-2.0/output.txt b/test/comparison-tests/es6resolveParent/expectedOutput-2.0/output.txt similarity index 100% rename from test/es6resolveParent/expectedOutput-2.0/output.txt rename to test/comparison-tests/es6resolveParent/expectedOutput-2.0/output.txt diff --git a/test/es6resolveParent/index.tsx b/test/comparison-tests/es6resolveParent/index.tsx similarity index 100% rename from test/es6resolveParent/index.tsx rename to test/comparison-tests/es6resolveParent/index.tsx diff --git a/test/es6resolveParent/submodule/index.tsx b/test/comparison-tests/es6resolveParent/submodule/index.tsx similarity index 100% rename from test/es6resolveParent/submodule/index.tsx rename to test/comparison-tests/es6resolveParent/submodule/index.tsx diff --git a/test/es6resolveParent/tsconfig.json b/test/comparison-tests/es6resolveParent/tsconfig.json similarity index 100% rename from test/es6resolveParent/tsconfig.json rename to test/comparison-tests/es6resolveParent/tsconfig.json diff --git a/test/es6resolveParent/webpack.config.js b/test/comparison-tests/es6resolveParent/webpack.config.js similarity index 100% rename from test/es6resolveParent/webpack.config.js rename to test/comparison-tests/es6resolveParent/webpack.config.js diff --git a/test/es6withCJS/app.ts b/test/comparison-tests/es6withCJS/app.ts similarity index 100% rename from test/es6withCJS/app.ts rename to test/comparison-tests/es6withCJS/app.ts diff --git a/test/es6withCJS/expectedOutput-1.6/output.txt b/test/comparison-tests/es6withCJS/expectedOutput-1.6/output.txt similarity index 100% rename from test/es6withCJS/expectedOutput-1.6/output.txt rename to test/comparison-tests/es6withCJS/expectedOutput-1.6/output.txt diff --git a/test/es6withCJS/expectedOutput-1.7/bundle.js b/test/comparison-tests/es6withCJS/expectedOutput-1.7/bundle.js similarity index 100% rename from test/es6withCJS/expectedOutput-1.7/bundle.js rename to test/comparison-tests/es6withCJS/expectedOutput-1.7/bundle.js diff --git a/test/es6withCJS/expectedOutput-1.7/output.txt b/test/comparison-tests/es6withCJS/expectedOutput-1.7/output.txt similarity index 100% rename from test/es6withCJS/expectedOutput-1.7/output.txt rename to test/comparison-tests/es6withCJS/expectedOutput-1.7/output.txt diff --git a/test/es6withCJS/expectedOutput-1.8/bundle.js b/test/comparison-tests/es6withCJS/expectedOutput-1.8/bundle.js similarity index 100% rename from test/es6withCJS/expectedOutput-1.8/bundle.js rename to test/comparison-tests/es6withCJS/expectedOutput-1.8/bundle.js diff --git a/test/es6withCJS/expectedOutput-1.8/output.txt b/test/comparison-tests/es6withCJS/expectedOutput-1.8/output.txt similarity index 100% rename from test/es6withCJS/expectedOutput-1.8/output.txt rename to test/comparison-tests/es6withCJS/expectedOutput-1.8/output.txt diff --git a/test/es6withCJS/expectedOutput-2.0/bundle.js b/test/comparison-tests/es6withCJS/expectedOutput-2.0/bundle.js similarity index 100% rename from test/es6withCJS/expectedOutput-2.0/bundle.js rename to test/comparison-tests/es6withCJS/expectedOutput-2.0/bundle.js diff --git a/test/es6withCJS/expectedOutput-2.0/output.txt b/test/comparison-tests/es6withCJS/expectedOutput-2.0/output.txt similarity index 100% rename from test/es6withCJS/expectedOutput-2.0/output.txt rename to test/comparison-tests/es6withCJS/expectedOutput-2.0/output.txt diff --git a/test/es6withCJS/tsconfig.json b/test/comparison-tests/es6withCJS/tsconfig.json similarity index 100% rename from test/es6withCJS/tsconfig.json rename to test/comparison-tests/es6withCJS/tsconfig.json diff --git a/test/es6withCJS/webpack.config.js b/test/comparison-tests/es6withCJS/webpack.config.js similarity index 100% rename from test/es6withCJS/webpack.config.js rename to test/comparison-tests/es6withCJS/webpack.config.js diff --git a/test/externals/app.ts b/test/comparison-tests/externals/app.ts similarity index 100% rename from test/externals/app.ts rename to test/comparison-tests/externals/app.ts diff --git a/test/externals/expectedOutput-1.6/bundle.js b/test/comparison-tests/externals/expectedOutput-1.6/bundle.js similarity index 100% rename from test/externals/expectedOutput-1.6/bundle.js rename to test/comparison-tests/externals/expectedOutput-1.6/bundle.js diff --git a/test/externals/expectedOutput-1.6/output.txt b/test/comparison-tests/externals/expectedOutput-1.6/output.txt similarity index 100% rename from test/externals/expectedOutput-1.6/output.txt rename to test/comparison-tests/externals/expectedOutput-1.6/output.txt diff --git a/test/externals/expectedOutput-1.7/bundle.js b/test/comparison-tests/externals/expectedOutput-1.7/bundle.js similarity index 100% rename from test/externals/expectedOutput-1.7/bundle.js rename to test/comparison-tests/externals/expectedOutput-1.7/bundle.js diff --git a/test/externals/expectedOutput-1.7/output.txt b/test/comparison-tests/externals/expectedOutput-1.7/output.txt similarity index 100% rename from test/externals/expectedOutput-1.7/output.txt rename to test/comparison-tests/externals/expectedOutput-1.7/output.txt diff --git a/test/externals/expectedOutput-1.8/bundle.js b/test/comparison-tests/externals/expectedOutput-1.8/bundle.js similarity index 100% rename from test/externals/expectedOutput-1.8/bundle.js rename to test/comparison-tests/externals/expectedOutput-1.8/bundle.js diff --git a/test/externals/expectedOutput-1.8/output.txt b/test/comparison-tests/externals/expectedOutput-1.8/output.txt similarity index 100% rename from test/externals/expectedOutput-1.8/output.txt rename to test/comparison-tests/externals/expectedOutput-1.8/output.txt diff --git a/test/externals/expectedOutput-2.0/bundle.js b/test/comparison-tests/externals/expectedOutput-2.0/bundle.js similarity index 100% rename from test/externals/expectedOutput-2.0/bundle.js rename to test/comparison-tests/externals/expectedOutput-2.0/bundle.js diff --git a/test/externals/expectedOutput-2.0/output.txt b/test/comparison-tests/externals/expectedOutput-2.0/output.txt similarity index 100% rename from test/externals/expectedOutput-2.0/output.txt rename to test/comparison-tests/externals/expectedOutput-2.0/output.txt diff --git a/test/externals/hello.d.ts b/test/comparison-tests/externals/hello.d.ts similarity index 100% rename from test/externals/hello.d.ts rename to test/comparison-tests/externals/hello.d.ts diff --git a/test/externals/tsconfig.json b/test/comparison-tests/externals/tsconfig.json similarity index 100% rename from test/externals/tsconfig.json rename to test/comparison-tests/externals/tsconfig.json diff --git a/test/externals/webpack.config.js b/test/comparison-tests/externals/webpack.config.js similarity index 100% rename from test/externals/webpack.config.js rename to test/comparison-tests/externals/webpack.config.js diff --git a/test/html-webpack-plugin/app.ts b/test/comparison-tests/html-webpack-plugin/app.ts similarity index 100% rename from test/html-webpack-plugin/app.ts rename to test/comparison-tests/html-webpack-plugin/app.ts diff --git a/test/html-webpack-plugin/expectedOutput-1.6/bundle.js b/test/comparison-tests/html-webpack-plugin/expectedOutput-1.6/bundle.js similarity index 100% rename from test/html-webpack-plugin/expectedOutput-1.6/bundle.js rename to test/comparison-tests/html-webpack-plugin/expectedOutput-1.6/bundle.js diff --git a/test/html-webpack-plugin/expectedOutput-1.6/index.html b/test/comparison-tests/html-webpack-plugin/expectedOutput-1.6/index.html similarity index 100% rename from test/html-webpack-plugin/expectedOutput-1.6/index.html rename to test/comparison-tests/html-webpack-plugin/expectedOutput-1.6/index.html diff --git a/test/html-webpack-plugin/expectedOutput-1.6/output.txt b/test/comparison-tests/html-webpack-plugin/expectedOutput-1.6/output.txt similarity index 100% rename from test/html-webpack-plugin/expectedOutput-1.6/output.txt rename to test/comparison-tests/html-webpack-plugin/expectedOutput-1.6/output.txt diff --git a/test/html-webpack-plugin/expectedOutput-1.7/bundle.js b/test/comparison-tests/html-webpack-plugin/expectedOutput-1.7/bundle.js similarity index 100% rename from test/html-webpack-plugin/expectedOutput-1.7/bundle.js rename to test/comparison-tests/html-webpack-plugin/expectedOutput-1.7/bundle.js diff --git a/test/html-webpack-plugin/expectedOutput-1.7/index.html b/test/comparison-tests/html-webpack-plugin/expectedOutput-1.7/index.html similarity index 100% rename from test/html-webpack-plugin/expectedOutput-1.7/index.html rename to test/comparison-tests/html-webpack-plugin/expectedOutput-1.7/index.html diff --git a/test/html-webpack-plugin/expectedOutput-1.7/output.txt b/test/comparison-tests/html-webpack-plugin/expectedOutput-1.7/output.txt similarity index 100% rename from test/html-webpack-plugin/expectedOutput-1.7/output.txt rename to test/comparison-tests/html-webpack-plugin/expectedOutput-1.7/output.txt diff --git a/test/html-webpack-plugin/expectedOutput-1.8/bundle.js b/test/comparison-tests/html-webpack-plugin/expectedOutput-1.8/bundle.js similarity index 100% rename from test/html-webpack-plugin/expectedOutput-1.8/bundle.js rename to test/comparison-tests/html-webpack-plugin/expectedOutput-1.8/bundle.js diff --git a/test/html-webpack-plugin/expectedOutput-1.8/bundle.transpiled.js b/test/comparison-tests/html-webpack-plugin/expectedOutput-1.8/bundle.transpiled.js similarity index 100% rename from test/html-webpack-plugin/expectedOutput-1.8/bundle.transpiled.js rename to test/comparison-tests/html-webpack-plugin/expectedOutput-1.8/bundle.transpiled.js diff --git a/test/html-webpack-plugin/expectedOutput-1.8/index.html b/test/comparison-tests/html-webpack-plugin/expectedOutput-1.8/index.html similarity index 100% rename from test/html-webpack-plugin/expectedOutput-1.8/index.html rename to test/comparison-tests/html-webpack-plugin/expectedOutput-1.8/index.html diff --git a/test/html-webpack-plugin/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/html-webpack-plugin/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/html-webpack-plugin/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/html-webpack-plugin/expectedOutput-1.8/output.transpiled.txt diff --git a/test/html-webpack-plugin/expectedOutput-1.8/output.txt b/test/comparison-tests/html-webpack-plugin/expectedOutput-1.8/output.txt similarity index 100% rename from test/html-webpack-plugin/expectedOutput-1.8/output.txt rename to test/comparison-tests/html-webpack-plugin/expectedOutput-1.8/output.txt diff --git a/test/html-webpack-plugin/expectedOutput-2.0/bundle.js b/test/comparison-tests/html-webpack-plugin/expectedOutput-2.0/bundle.js similarity index 100% rename from test/html-webpack-plugin/expectedOutput-2.0/bundle.js rename to test/comparison-tests/html-webpack-plugin/expectedOutput-2.0/bundle.js diff --git a/test/html-webpack-plugin/expectedOutput-2.0/bundle.transpiled.js b/test/comparison-tests/html-webpack-plugin/expectedOutput-2.0/bundle.transpiled.js similarity index 100% rename from test/html-webpack-plugin/expectedOutput-2.0/bundle.transpiled.js rename to test/comparison-tests/html-webpack-plugin/expectedOutput-2.0/bundle.transpiled.js diff --git a/test/html-webpack-plugin/expectedOutput-2.0/index.html b/test/comparison-tests/html-webpack-plugin/expectedOutput-2.0/index.html similarity index 100% rename from test/html-webpack-plugin/expectedOutput-2.0/index.html rename to test/comparison-tests/html-webpack-plugin/expectedOutput-2.0/index.html diff --git a/test/html-webpack-plugin/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/html-webpack-plugin/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/html-webpack-plugin/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/html-webpack-plugin/expectedOutput-2.0/output.transpiled.txt diff --git a/test/html-webpack-plugin/expectedOutput-2.0/output.txt b/test/comparison-tests/html-webpack-plugin/expectedOutput-2.0/output.txt similarity index 100% rename from test/html-webpack-plugin/expectedOutput-2.0/output.txt rename to test/comparison-tests/html-webpack-plugin/expectedOutput-2.0/output.txt diff --git a/test/html-webpack-plugin/index.html b/test/comparison-tests/html-webpack-plugin/index.html similarity index 100% rename from test/html-webpack-plugin/index.html rename to test/comparison-tests/html-webpack-plugin/index.html diff --git a/test/html-webpack-plugin/tsconfig.json b/test/comparison-tests/html-webpack-plugin/tsconfig.json similarity index 100% rename from test/html-webpack-plugin/tsconfig.json rename to test/comparison-tests/html-webpack-plugin/tsconfig.json diff --git a/test/html-webpack-plugin/webpack.config.js b/test/comparison-tests/html-webpack-plugin/webpack.config.js similarity index 100% rename from test/html-webpack-plugin/webpack.config.js rename to test/comparison-tests/html-webpack-plugin/webpack.config.js diff --git a/test/ignoreDiagnostics/app.ts b/test/comparison-tests/ignoreDiagnostics/app.ts similarity index 100% rename from test/ignoreDiagnostics/app.ts rename to test/comparison-tests/ignoreDiagnostics/app.ts diff --git a/test/ignoreDiagnostics/expectedOutput-1.6/bundle.js b/test/comparison-tests/ignoreDiagnostics/expectedOutput-1.6/bundle.js similarity index 100% rename from test/ignoreDiagnostics/expectedOutput-1.6/bundle.js rename to test/comparison-tests/ignoreDiagnostics/expectedOutput-1.6/bundle.js diff --git a/test/ignoreDiagnostics/expectedOutput-1.6/output.transpiled.txt b/test/comparison-tests/ignoreDiagnostics/expectedOutput-1.6/output.transpiled.txt similarity index 100% rename from test/ignoreDiagnostics/expectedOutput-1.6/output.transpiled.txt rename to test/comparison-tests/ignoreDiagnostics/expectedOutput-1.6/output.transpiled.txt diff --git a/test/ignoreDiagnostics/expectedOutput-1.6/output.txt b/test/comparison-tests/ignoreDiagnostics/expectedOutput-1.6/output.txt similarity index 100% rename from test/ignoreDiagnostics/expectedOutput-1.6/output.txt rename to test/comparison-tests/ignoreDiagnostics/expectedOutput-1.6/output.txt diff --git a/test/ignoreDiagnostics/expectedOutput-1.7/bundle.js b/test/comparison-tests/ignoreDiagnostics/expectedOutput-1.7/bundle.js similarity index 100% rename from test/ignoreDiagnostics/expectedOutput-1.7/bundle.js rename to test/comparison-tests/ignoreDiagnostics/expectedOutput-1.7/bundle.js diff --git a/test/ignoreDiagnostics/expectedOutput-1.7/output.transpiled.txt b/test/comparison-tests/ignoreDiagnostics/expectedOutput-1.7/output.transpiled.txt similarity index 100% rename from test/ignoreDiagnostics/expectedOutput-1.7/output.transpiled.txt rename to test/comparison-tests/ignoreDiagnostics/expectedOutput-1.7/output.transpiled.txt diff --git a/test/ignoreDiagnostics/expectedOutput-1.7/output.txt b/test/comparison-tests/ignoreDiagnostics/expectedOutput-1.7/output.txt similarity index 100% rename from test/ignoreDiagnostics/expectedOutput-1.7/output.txt rename to test/comparison-tests/ignoreDiagnostics/expectedOutput-1.7/output.txt diff --git a/test/ignoreDiagnostics/expectedOutput-1.8/bundle.js b/test/comparison-tests/ignoreDiagnostics/expectedOutput-1.8/bundle.js similarity index 100% rename from test/ignoreDiagnostics/expectedOutput-1.8/bundle.js rename to test/comparison-tests/ignoreDiagnostics/expectedOutput-1.8/bundle.js diff --git a/test/ignoreDiagnostics/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/ignoreDiagnostics/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/ignoreDiagnostics/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/ignoreDiagnostics/expectedOutput-1.8/output.transpiled.txt diff --git a/test/ignoreDiagnostics/expectedOutput-1.8/output.txt b/test/comparison-tests/ignoreDiagnostics/expectedOutput-1.8/output.txt similarity index 100% rename from test/ignoreDiagnostics/expectedOutput-1.8/output.txt rename to test/comparison-tests/ignoreDiagnostics/expectedOutput-1.8/output.txt diff --git a/test/ignoreDiagnostics/expectedOutput-2.0/bundle.js b/test/comparison-tests/ignoreDiagnostics/expectedOutput-2.0/bundle.js similarity index 100% rename from test/ignoreDiagnostics/expectedOutput-2.0/bundle.js rename to test/comparison-tests/ignoreDiagnostics/expectedOutput-2.0/bundle.js diff --git a/test/ignoreDiagnostics/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/ignoreDiagnostics/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/ignoreDiagnostics/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/ignoreDiagnostics/expectedOutput-2.0/output.transpiled.txt diff --git a/test/ignoreDiagnostics/expectedOutput-2.0/output.txt b/test/comparison-tests/ignoreDiagnostics/expectedOutput-2.0/output.txt similarity index 100% rename from test/ignoreDiagnostics/expectedOutput-2.0/output.txt rename to test/comparison-tests/ignoreDiagnostics/expectedOutput-2.0/output.txt diff --git a/test/ignoreDiagnostics/tsconfig.json b/test/comparison-tests/ignoreDiagnostics/tsconfig.json similarity index 100% rename from test/ignoreDiagnostics/tsconfig.json rename to test/comparison-tests/ignoreDiagnostics/tsconfig.json diff --git a/test/ignoreDiagnostics/webpack.config.js b/test/comparison-tests/ignoreDiagnostics/webpack.config.js similarity index 100% rename from test/ignoreDiagnostics/webpack.config.js rename to test/comparison-tests/ignoreDiagnostics/webpack.config.js diff --git a/test/instance/a.ts b/test/comparison-tests/instance/a.ts similarity index 100% rename from test/instance/a.ts rename to test/comparison-tests/instance/a.ts diff --git a/test/instance/b.ts b/test/comparison-tests/instance/b.ts similarity index 100% rename from test/instance/b.ts rename to test/comparison-tests/instance/b.ts diff --git a/test/instance/expectedOutput-1.6/bundle.js b/test/comparison-tests/instance/expectedOutput-1.6/bundle.js similarity index 100% rename from test/instance/expectedOutput-1.6/bundle.js rename to test/comparison-tests/instance/expectedOutput-1.6/bundle.js diff --git a/test/instance/expectedOutput-1.6/output.txt b/test/comparison-tests/instance/expectedOutput-1.6/output.txt similarity index 100% rename from test/instance/expectedOutput-1.6/output.txt rename to test/comparison-tests/instance/expectedOutput-1.6/output.txt diff --git a/test/instance/expectedOutput-1.7/bundle.js b/test/comparison-tests/instance/expectedOutput-1.7/bundle.js similarity index 100% rename from test/instance/expectedOutput-1.7/bundle.js rename to test/comparison-tests/instance/expectedOutput-1.7/bundle.js diff --git a/test/instance/expectedOutput-1.7/output.txt b/test/comparison-tests/instance/expectedOutput-1.7/output.txt similarity index 100% rename from test/instance/expectedOutput-1.7/output.txt rename to test/comparison-tests/instance/expectedOutput-1.7/output.txt diff --git a/test/instance/expectedOutput-1.8/bundle.js b/test/comparison-tests/instance/expectedOutput-1.8/bundle.js similarity index 100% rename from test/instance/expectedOutput-1.8/bundle.js rename to test/comparison-tests/instance/expectedOutput-1.8/bundle.js diff --git a/test/instance/expectedOutput-1.8/bundle.transpiled.js b/test/comparison-tests/instance/expectedOutput-1.8/bundle.transpiled.js similarity index 100% rename from test/instance/expectedOutput-1.8/bundle.transpiled.js rename to test/comparison-tests/instance/expectedOutput-1.8/bundle.transpiled.js diff --git a/test/instance/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/instance/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/instance/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/instance/expectedOutput-1.8/output.transpiled.txt diff --git a/test/instance/expectedOutput-1.8/output.txt b/test/comparison-tests/instance/expectedOutput-1.8/output.txt similarity index 100% rename from test/instance/expectedOutput-1.8/output.txt rename to test/comparison-tests/instance/expectedOutput-1.8/output.txt diff --git a/test/instance/expectedOutput-2.0/bundle.js b/test/comparison-tests/instance/expectedOutput-2.0/bundle.js similarity index 100% rename from test/instance/expectedOutput-2.0/bundle.js rename to test/comparison-tests/instance/expectedOutput-2.0/bundle.js diff --git a/test/instance/expectedOutput-2.0/bundle.transpiled.js b/test/comparison-tests/instance/expectedOutput-2.0/bundle.transpiled.js similarity index 100% rename from test/instance/expectedOutput-2.0/bundle.transpiled.js rename to test/comparison-tests/instance/expectedOutput-2.0/bundle.transpiled.js diff --git a/test/instance/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/instance/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/instance/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/instance/expectedOutput-2.0/output.transpiled.txt diff --git a/test/instance/expectedOutput-2.0/output.txt b/test/comparison-tests/instance/expectedOutput-2.0/output.txt similarity index 100% rename from test/instance/expectedOutput-2.0/output.txt rename to test/comparison-tests/instance/expectedOutput-2.0/output.txt diff --git a/test/instance/tsconfig.json b/test/comparison-tests/instance/tsconfig.json similarity index 100% rename from test/instance/tsconfig.json rename to test/comparison-tests/instance/tsconfig.json diff --git a/test/instance/webpack.config.js b/test/comparison-tests/instance/webpack.config.js similarity index 100% rename from test/instance/webpack.config.js rename to test/comparison-tests/instance/webpack.config.js diff --git a/test/issue71/app.ts b/test/comparison-tests/issue71/app.ts similarity index 100% rename from test/issue71/app.ts rename to test/comparison-tests/issue71/app.ts diff --git a/test/issue71/b.ts b/test/comparison-tests/issue71/b.ts similarity index 100% rename from test/issue71/b.ts rename to test/comparison-tests/issue71/b.ts diff --git a/test/issue71/expectedOutput-1.6/bundle.js b/test/comparison-tests/issue71/expectedOutput-1.6/bundle.js similarity index 100% rename from test/issue71/expectedOutput-1.6/bundle.js rename to test/comparison-tests/issue71/expectedOutput-1.6/bundle.js diff --git a/test/issue71/expectedOutput-1.6/output.txt b/test/comparison-tests/issue71/expectedOutput-1.6/output.txt similarity index 100% rename from test/issue71/expectedOutput-1.6/output.txt rename to test/comparison-tests/issue71/expectedOutput-1.6/output.txt diff --git a/test/issue71/expectedOutput-1.7/bundle.js b/test/comparison-tests/issue71/expectedOutput-1.7/bundle.js similarity index 100% rename from test/issue71/expectedOutput-1.7/bundle.js rename to test/comparison-tests/issue71/expectedOutput-1.7/bundle.js diff --git a/test/issue71/expectedOutput-1.7/output.txt b/test/comparison-tests/issue71/expectedOutput-1.7/output.txt similarity index 100% rename from test/issue71/expectedOutput-1.7/output.txt rename to test/comparison-tests/issue71/expectedOutput-1.7/output.txt diff --git a/test/issue71/expectedOutput-1.8/bundle.js b/test/comparison-tests/issue71/expectedOutput-1.8/bundle.js similarity index 100% rename from test/issue71/expectedOutput-1.8/bundle.js rename to test/comparison-tests/issue71/expectedOutput-1.8/bundle.js diff --git a/test/issue71/expectedOutput-1.8/output.txt b/test/comparison-tests/issue71/expectedOutput-1.8/output.txt similarity index 100% rename from test/issue71/expectedOutput-1.8/output.txt rename to test/comparison-tests/issue71/expectedOutput-1.8/output.txt diff --git a/test/issue71/expectedOutput-2.0/bundle.js b/test/comparison-tests/issue71/expectedOutput-2.0/bundle.js similarity index 100% rename from test/issue71/expectedOutput-2.0/bundle.js rename to test/comparison-tests/issue71/expectedOutput-2.0/bundle.js diff --git a/test/issue71/expectedOutput-2.0/output.txt b/test/comparison-tests/issue71/expectedOutput-2.0/output.txt similarity index 100% rename from test/issue71/expectedOutput-2.0/output.txt rename to test/comparison-tests/issue71/expectedOutput-2.0/output.txt diff --git a/test/issue71/node_modules/a/a.d.ts b/test/comparison-tests/issue71/node_modules/a/a.d.ts similarity index 100% rename from test/issue71/node_modules/a/a.d.ts rename to test/comparison-tests/issue71/node_modules/a/a.d.ts diff --git a/test/issue71/node_modules/a/index.js b/test/comparison-tests/issue71/node_modules/a/index.js similarity index 100% rename from test/issue71/node_modules/a/index.js rename to test/comparison-tests/issue71/node_modules/a/index.js diff --git a/test/issue71/node_modules/a/package.json b/test/comparison-tests/issue71/node_modules/a/package.json similarity index 100% rename from test/issue71/node_modules/a/package.json rename to test/comparison-tests/issue71/node_modules/a/package.json diff --git a/test/issue71/tsconfig.json b/test/comparison-tests/issue71/tsconfig.json similarity index 100% rename from test/issue71/tsconfig.json rename to test/comparison-tests/issue71/tsconfig.json diff --git a/test/issue71/webpack.config.js b/test/comparison-tests/issue71/webpack.config.js similarity index 100% rename from test/issue71/webpack.config.js rename to test/comparison-tests/issue71/webpack.config.js diff --git a/test/issue81/a.ts b/test/comparison-tests/issue81/a.ts similarity index 100% rename from test/issue81/a.ts rename to test/comparison-tests/issue81/a.ts diff --git a/test/issue81/expectedOutput-1.7/bundle.js b/test/comparison-tests/issue81/expectedOutput-1.7/bundle.js similarity index 100% rename from test/issue81/expectedOutput-1.7/bundle.js rename to test/comparison-tests/issue81/expectedOutput-1.7/bundle.js diff --git a/test/issue81/expectedOutput-1.7/bundle.js.map b/test/comparison-tests/issue81/expectedOutput-1.7/bundle.js.map similarity index 100% rename from test/issue81/expectedOutput-1.7/bundle.js.map rename to test/comparison-tests/issue81/expectedOutput-1.7/bundle.js.map diff --git a/test/issue81/expectedOutput-1.7/output.txt b/test/comparison-tests/issue81/expectedOutput-1.7/output.txt similarity index 100% rename from test/issue81/expectedOutput-1.7/output.txt rename to test/comparison-tests/issue81/expectedOutput-1.7/output.txt diff --git a/test/issue81/expectedOutput-1.8/bundle.js b/test/comparison-tests/issue81/expectedOutput-1.8/bundle.js similarity index 100% rename from test/issue81/expectedOutput-1.8/bundle.js rename to test/comparison-tests/issue81/expectedOutput-1.8/bundle.js diff --git a/test/issue81/expectedOutput-1.8/bundle.js.map b/test/comparison-tests/issue81/expectedOutput-1.8/bundle.js.map similarity index 100% rename from test/issue81/expectedOutput-1.8/bundle.js.map rename to test/comparison-tests/issue81/expectedOutput-1.8/bundle.js.map diff --git a/test/issue81/expectedOutput-1.8/output.txt b/test/comparison-tests/issue81/expectedOutput-1.8/output.txt similarity index 100% rename from test/issue81/expectedOutput-1.8/output.txt rename to test/comparison-tests/issue81/expectedOutput-1.8/output.txt diff --git a/test/issue81/expectedOutput-2.0/bundle.js b/test/comparison-tests/issue81/expectedOutput-2.0/bundle.js similarity index 100% rename from test/issue81/expectedOutput-2.0/bundle.js rename to test/comparison-tests/issue81/expectedOutput-2.0/bundle.js diff --git a/test/issue81/expectedOutput-2.0/bundle.js.map b/test/comparison-tests/issue81/expectedOutput-2.0/bundle.js.map similarity index 100% rename from test/issue81/expectedOutput-2.0/bundle.js.map rename to test/comparison-tests/issue81/expectedOutput-2.0/bundle.js.map diff --git a/test/issue81/expectedOutput-2.0/output.txt b/test/comparison-tests/issue81/expectedOutput-2.0/output.txt similarity index 100% rename from test/issue81/expectedOutput-2.0/output.txt rename to test/comparison-tests/issue81/expectedOutput-2.0/output.txt diff --git a/test/issue81/tsconfig.json b/test/comparison-tests/issue81/tsconfig.json similarity index 100% rename from test/issue81/tsconfig.json rename to test/comparison-tests/issue81/tsconfig.json diff --git a/test/issue81/webpack.config.js b/test/comparison-tests/issue81/webpack.config.js similarity index 100% rename from test/issue81/webpack.config.js rename to test/comparison-tests/issue81/webpack.config.js diff --git a/test/issue92/app.ts b/test/comparison-tests/issue92/app.ts similarity index 100% rename from test/issue92/app.ts rename to test/comparison-tests/issue92/app.ts diff --git a/test/issue92/expectedOutput-1.6/bundle.js b/test/comparison-tests/issue92/expectedOutput-1.6/bundle.js similarity index 100% rename from test/issue92/expectedOutput-1.6/bundle.js rename to test/comparison-tests/issue92/expectedOutput-1.6/bundle.js diff --git a/test/issue92/expectedOutput-1.6/output.txt b/test/comparison-tests/issue92/expectedOutput-1.6/output.txt similarity index 100% rename from test/issue92/expectedOutput-1.6/output.txt rename to test/comparison-tests/issue92/expectedOutput-1.6/output.txt diff --git a/test/issue92/expectedOutput-1.7/bundle.js b/test/comparison-tests/issue92/expectedOutput-1.7/bundle.js similarity index 100% rename from test/issue92/expectedOutput-1.7/bundle.js rename to test/comparison-tests/issue92/expectedOutput-1.7/bundle.js diff --git a/test/issue92/expectedOutput-1.7/output.txt b/test/comparison-tests/issue92/expectedOutput-1.7/output.txt similarity index 100% rename from test/issue92/expectedOutput-1.7/output.txt rename to test/comparison-tests/issue92/expectedOutput-1.7/output.txt diff --git a/test/issue92/expectedOutput-1.8/bundle.js b/test/comparison-tests/issue92/expectedOutput-1.8/bundle.js similarity index 100% rename from test/issue92/expectedOutput-1.8/bundle.js rename to test/comparison-tests/issue92/expectedOutput-1.8/bundle.js diff --git a/test/issue92/expectedOutput-1.8/output.txt b/test/comparison-tests/issue92/expectedOutput-1.8/output.txt similarity index 100% rename from test/issue92/expectedOutput-1.8/output.txt rename to test/comparison-tests/issue92/expectedOutput-1.8/output.txt diff --git a/test/issue92/expectedOutput-2.0/bundle.js b/test/comparison-tests/issue92/expectedOutput-2.0/bundle.js similarity index 100% rename from test/issue92/expectedOutput-2.0/bundle.js rename to test/comparison-tests/issue92/expectedOutput-2.0/bundle.js diff --git a/test/issue92/expectedOutput-2.0/output.txt b/test/comparison-tests/issue92/expectedOutput-2.0/output.txt similarity index 100% rename from test/issue92/expectedOutput-2.0/output.txt rename to test/comparison-tests/issue92/expectedOutput-2.0/output.txt diff --git a/test/issue92/submodule/submodule.tsx b/test/comparison-tests/issue92/submodule/submodule.tsx similarity index 100% rename from test/issue92/submodule/submodule.tsx rename to test/comparison-tests/issue92/submodule/submodule.tsx diff --git a/test/issue92/tsconfig.json b/test/comparison-tests/issue92/tsconfig.json similarity index 100% rename from test/issue92/tsconfig.json rename to test/comparison-tests/issue92/tsconfig.json diff --git a/test/issue92/webpack.config.js b/test/comparison-tests/issue92/webpack.config.js similarity index 100% rename from test/issue92/webpack.config.js rename to test/comparison-tests/issue92/webpack.config.js diff --git a/test/jsx/README.md b/test/comparison-tests/jsx/README.md similarity index 100% rename from test/jsx/README.md rename to test/comparison-tests/jsx/README.md diff --git a/test/jsx/app.tsx b/test/comparison-tests/jsx/app.tsx similarity index 100% rename from test/jsx/app.tsx rename to test/comparison-tests/jsx/app.tsx diff --git a/test/jsx/expectedOutput-1.6/bundle.js b/test/comparison-tests/jsx/expectedOutput-1.6/bundle.js similarity index 100% rename from test/jsx/expectedOutput-1.6/bundle.js rename to test/comparison-tests/jsx/expectedOutput-1.6/bundle.js diff --git a/test/jsx/expectedOutput-1.6/output.txt b/test/comparison-tests/jsx/expectedOutput-1.6/output.txt similarity index 100% rename from test/jsx/expectedOutput-1.6/output.txt rename to test/comparison-tests/jsx/expectedOutput-1.6/output.txt diff --git a/test/jsx/expectedOutput-1.7/bundle.js b/test/comparison-tests/jsx/expectedOutput-1.7/bundle.js similarity index 100% rename from test/jsx/expectedOutput-1.7/bundle.js rename to test/comparison-tests/jsx/expectedOutput-1.7/bundle.js diff --git a/test/jsx/expectedOutput-1.7/output.txt b/test/comparison-tests/jsx/expectedOutput-1.7/output.txt similarity index 100% rename from test/jsx/expectedOutput-1.7/output.txt rename to test/comparison-tests/jsx/expectedOutput-1.7/output.txt diff --git a/test/jsx/expectedOutput-1.8/bundle.js b/test/comparison-tests/jsx/expectedOutput-1.8/bundle.js similarity index 100% rename from test/jsx/expectedOutput-1.8/bundle.js rename to test/comparison-tests/jsx/expectedOutput-1.8/bundle.js diff --git a/test/jsx/expectedOutput-1.8/output.txt b/test/comparison-tests/jsx/expectedOutput-1.8/output.txt similarity index 100% rename from test/jsx/expectedOutput-1.8/output.txt rename to test/comparison-tests/jsx/expectedOutput-1.8/output.txt diff --git a/test/jsx/expectedOutput-2.0/bundle.js b/test/comparison-tests/jsx/expectedOutput-2.0/bundle.js similarity index 100% rename from test/jsx/expectedOutput-2.0/bundle.js rename to test/comparison-tests/jsx/expectedOutput-2.0/bundle.js diff --git a/test/jsx/expectedOutput-2.0/output.txt b/test/comparison-tests/jsx/expectedOutput-2.0/output.txt similarity index 100% rename from test/jsx/expectedOutput-2.0/output.txt rename to test/comparison-tests/jsx/expectedOutput-2.0/output.txt diff --git a/test/jsx/react.d.ts b/test/comparison-tests/jsx/react.d.ts similarity index 100% rename from test/jsx/react.d.ts rename to test/comparison-tests/jsx/react.d.ts diff --git a/test/jsx/tsconfig.json b/test/comparison-tests/jsx/tsconfig.json similarity index 100% rename from test/jsx/tsconfig.json rename to test/comparison-tests/jsx/tsconfig.json diff --git a/test/jsx/webpack.config.js b/test/comparison-tests/jsx/webpack.config.js similarity index 100% rename from test/jsx/webpack.config.js rename to test/comparison-tests/jsx/webpack.config.js diff --git a/test/jsxPreserve/README.md b/test/comparison-tests/jsxPreserve/README.md similarity index 100% rename from test/jsxPreserve/README.md rename to test/comparison-tests/jsxPreserve/README.md diff --git a/test/jsxPreserve/app.tsx b/test/comparison-tests/jsxPreserve/app.tsx similarity index 100% rename from test/jsxPreserve/app.tsx rename to test/comparison-tests/jsxPreserve/app.tsx diff --git a/test/jsxPreserve/expectedOutput-1.6/bundle.js b/test/comparison-tests/jsxPreserve/expectedOutput-1.6/bundle.js similarity index 100% rename from test/jsxPreserve/expectedOutput-1.6/bundle.js rename to test/comparison-tests/jsxPreserve/expectedOutput-1.6/bundle.js diff --git a/test/jsxPreserve/expectedOutput-1.6/output.txt b/test/comparison-tests/jsxPreserve/expectedOutput-1.6/output.txt similarity index 100% rename from test/jsxPreserve/expectedOutput-1.6/output.txt rename to test/comparison-tests/jsxPreserve/expectedOutput-1.6/output.txt diff --git a/test/jsxPreserve/expectedOutput-1.7/bundle.js b/test/comparison-tests/jsxPreserve/expectedOutput-1.7/bundle.js similarity index 100% rename from test/jsxPreserve/expectedOutput-1.7/bundle.js rename to test/comparison-tests/jsxPreserve/expectedOutput-1.7/bundle.js diff --git a/test/jsxPreserve/expectedOutput-1.7/output.txt b/test/comparison-tests/jsxPreserve/expectedOutput-1.7/output.txt similarity index 100% rename from test/jsxPreserve/expectedOutput-1.7/output.txt rename to test/comparison-tests/jsxPreserve/expectedOutput-1.7/output.txt diff --git a/test/jsxPreserve/expectedOutput-1.8/bundle.js b/test/comparison-tests/jsxPreserve/expectedOutput-1.8/bundle.js similarity index 100% rename from test/jsxPreserve/expectedOutput-1.8/bundle.js rename to test/comparison-tests/jsxPreserve/expectedOutput-1.8/bundle.js diff --git a/test/jsxPreserve/expectedOutput-1.8/output.txt b/test/comparison-tests/jsxPreserve/expectedOutput-1.8/output.txt similarity index 100% rename from test/jsxPreserve/expectedOutput-1.8/output.txt rename to test/comparison-tests/jsxPreserve/expectedOutput-1.8/output.txt diff --git a/test/jsxPreserve/expectedOutput-2.0/bundle.js b/test/comparison-tests/jsxPreserve/expectedOutput-2.0/bundle.js similarity index 100% rename from test/jsxPreserve/expectedOutput-2.0/bundle.js rename to test/comparison-tests/jsxPreserve/expectedOutput-2.0/bundle.js diff --git a/test/jsxPreserve/expectedOutput-2.0/output.txt b/test/comparison-tests/jsxPreserve/expectedOutput-2.0/output.txt similarity index 100% rename from test/jsxPreserve/expectedOutput-2.0/output.txt rename to test/comparison-tests/jsxPreserve/expectedOutput-2.0/output.txt diff --git a/test/jsxPreserve/react.d.ts b/test/comparison-tests/jsxPreserve/react.d.ts similarity index 100% rename from test/jsxPreserve/react.d.ts rename to test/comparison-tests/jsxPreserve/react.d.ts diff --git a/test/jsxPreserve/tsconfig.json b/test/comparison-tests/jsxPreserve/tsconfig.json similarity index 100% rename from test/jsxPreserve/tsconfig.json rename to test/comparison-tests/jsxPreserve/tsconfig.json diff --git a/test/jsxPreserve/webpack.config.js b/test/comparison-tests/jsxPreserve/webpack.config.js similarity index 100% rename from test/jsxPreserve/webpack.config.js rename to test/comparison-tests/jsxPreserve/webpack.config.js diff --git a/test/large/A.d.ts b/test/comparison-tests/large/A.d.ts similarity index 100% rename from test/large/A.d.ts rename to test/comparison-tests/large/A.d.ts diff --git a/test/large/B.d.ts b/test/comparison-tests/large/B.d.ts similarity index 100% rename from test/large/B.d.ts rename to test/comparison-tests/large/B.d.ts diff --git a/test/large/C.d.ts b/test/comparison-tests/large/C.d.ts similarity index 100% rename from test/large/C.d.ts rename to test/comparison-tests/large/C.d.ts diff --git a/test/large/D.d.ts b/test/comparison-tests/large/D.d.ts similarity index 100% rename from test/large/D.d.ts rename to test/comparison-tests/large/D.d.ts diff --git a/test/large/E.d.ts b/test/comparison-tests/large/E.d.ts similarity index 100% rename from test/large/E.d.ts rename to test/comparison-tests/large/E.d.ts diff --git a/test/large/F.d.ts b/test/comparison-tests/large/F.d.ts similarity index 100% rename from test/large/F.d.ts rename to test/comparison-tests/large/F.d.ts diff --git a/test/large/G.d.ts b/test/comparison-tests/large/G.d.ts similarity index 100% rename from test/large/G.d.ts rename to test/comparison-tests/large/G.d.ts diff --git a/test/large/H.d.ts b/test/comparison-tests/large/H.d.ts similarity index 100% rename from test/large/H.d.ts rename to test/comparison-tests/large/H.d.ts diff --git a/test/large/I.d.ts b/test/comparison-tests/large/I.d.ts similarity index 100% rename from test/large/I.d.ts rename to test/comparison-tests/large/I.d.ts diff --git a/test/large/J.d.ts b/test/comparison-tests/large/J.d.ts similarity index 100% rename from test/large/J.d.ts rename to test/comparison-tests/large/J.d.ts diff --git a/test/large/K.d.ts b/test/comparison-tests/large/K.d.ts similarity index 100% rename from test/large/K.d.ts rename to test/comparison-tests/large/K.d.ts diff --git a/test/large/L.d.ts b/test/comparison-tests/large/L.d.ts similarity index 100% rename from test/large/L.d.ts rename to test/comparison-tests/large/L.d.ts diff --git a/test/large/M.d.ts b/test/comparison-tests/large/M.d.ts similarity index 100% rename from test/large/M.d.ts rename to test/comparison-tests/large/M.d.ts diff --git a/test/large/N.d.ts b/test/comparison-tests/large/N.d.ts similarity index 100% rename from test/large/N.d.ts rename to test/comparison-tests/large/N.d.ts diff --git a/test/large/O.d.ts b/test/comparison-tests/large/O.d.ts similarity index 100% rename from test/large/O.d.ts rename to test/comparison-tests/large/O.d.ts diff --git a/test/large/P.d.ts b/test/comparison-tests/large/P.d.ts similarity index 100% rename from test/large/P.d.ts rename to test/comparison-tests/large/P.d.ts diff --git a/test/large/Q.d.ts b/test/comparison-tests/large/Q.d.ts similarity index 100% rename from test/large/Q.d.ts rename to test/comparison-tests/large/Q.d.ts diff --git a/test/large/R.d.ts b/test/comparison-tests/large/R.d.ts similarity index 100% rename from test/large/R.d.ts rename to test/comparison-tests/large/R.d.ts diff --git a/test/large/S.d.ts b/test/comparison-tests/large/S.d.ts similarity index 100% rename from test/large/S.d.ts rename to test/comparison-tests/large/S.d.ts diff --git a/test/large/T.d.ts b/test/comparison-tests/large/T.d.ts similarity index 100% rename from test/large/T.d.ts rename to test/comparison-tests/large/T.d.ts diff --git a/test/large/a.ts b/test/comparison-tests/large/a.ts similarity index 100% rename from test/large/a.ts rename to test/comparison-tests/large/a.ts diff --git a/test/large/b.ts b/test/comparison-tests/large/b.ts similarity index 100% rename from test/large/b.ts rename to test/comparison-tests/large/b.ts diff --git a/test/large/ba.ts b/test/comparison-tests/large/ba.ts similarity index 100% rename from test/large/ba.ts rename to test/comparison-tests/large/ba.ts diff --git a/test/large/bb.ts b/test/comparison-tests/large/bb.ts similarity index 100% rename from test/large/bb.ts rename to test/comparison-tests/large/bb.ts diff --git a/test/large/bc.ts b/test/comparison-tests/large/bc.ts similarity index 100% rename from test/large/bc.ts rename to test/comparison-tests/large/bc.ts diff --git a/test/large/bd.ts b/test/comparison-tests/large/bd.ts similarity index 100% rename from test/large/bd.ts rename to test/comparison-tests/large/bd.ts diff --git a/test/large/be.ts b/test/comparison-tests/large/be.ts similarity index 100% rename from test/large/be.ts rename to test/comparison-tests/large/be.ts diff --git a/test/large/bf.ts b/test/comparison-tests/large/bf.ts similarity index 100% rename from test/large/bf.ts rename to test/comparison-tests/large/bf.ts diff --git a/test/large/bg.ts b/test/comparison-tests/large/bg.ts similarity index 100% rename from test/large/bg.ts rename to test/comparison-tests/large/bg.ts diff --git a/test/large/bh.ts b/test/comparison-tests/large/bh.ts similarity index 100% rename from test/large/bh.ts rename to test/comparison-tests/large/bh.ts diff --git a/test/large/bi.ts b/test/comparison-tests/large/bi.ts similarity index 100% rename from test/large/bi.ts rename to test/comparison-tests/large/bi.ts diff --git a/test/large/bj.ts b/test/comparison-tests/large/bj.ts similarity index 100% rename from test/large/bj.ts rename to test/comparison-tests/large/bj.ts diff --git a/test/large/bk.ts b/test/comparison-tests/large/bk.ts similarity index 100% rename from test/large/bk.ts rename to test/comparison-tests/large/bk.ts diff --git a/test/large/bl.ts b/test/comparison-tests/large/bl.ts similarity index 100% rename from test/large/bl.ts rename to test/comparison-tests/large/bl.ts diff --git a/test/large/bm.ts b/test/comparison-tests/large/bm.ts similarity index 100% rename from test/large/bm.ts rename to test/comparison-tests/large/bm.ts diff --git a/test/large/bn.ts b/test/comparison-tests/large/bn.ts similarity index 100% rename from test/large/bn.ts rename to test/comparison-tests/large/bn.ts diff --git a/test/large/bo.ts b/test/comparison-tests/large/bo.ts similarity index 100% rename from test/large/bo.ts rename to test/comparison-tests/large/bo.ts diff --git a/test/large/bp.ts b/test/comparison-tests/large/bp.ts similarity index 100% rename from test/large/bp.ts rename to test/comparison-tests/large/bp.ts diff --git a/test/large/bq.ts b/test/comparison-tests/large/bq.ts similarity index 100% rename from test/large/bq.ts rename to test/comparison-tests/large/bq.ts diff --git a/test/large/br.ts b/test/comparison-tests/large/br.ts similarity index 100% rename from test/large/br.ts rename to test/comparison-tests/large/br.ts diff --git a/test/large/bs.ts b/test/comparison-tests/large/bs.ts similarity index 100% rename from test/large/bs.ts rename to test/comparison-tests/large/bs.ts diff --git a/test/large/bt.ts b/test/comparison-tests/large/bt.ts similarity index 100% rename from test/large/bt.ts rename to test/comparison-tests/large/bt.ts diff --git a/test/large/bu.ts b/test/comparison-tests/large/bu.ts similarity index 100% rename from test/large/bu.ts rename to test/comparison-tests/large/bu.ts diff --git a/test/large/bv.ts b/test/comparison-tests/large/bv.ts similarity index 100% rename from test/large/bv.ts rename to test/comparison-tests/large/bv.ts diff --git a/test/large/bw.ts b/test/comparison-tests/large/bw.ts similarity index 100% rename from test/large/bw.ts rename to test/comparison-tests/large/bw.ts diff --git a/test/large/bx.ts b/test/comparison-tests/large/bx.ts similarity index 100% rename from test/large/bx.ts rename to test/comparison-tests/large/bx.ts diff --git a/test/large/by.ts b/test/comparison-tests/large/by.ts similarity index 100% rename from test/large/by.ts rename to test/comparison-tests/large/by.ts diff --git a/test/large/bz.ts b/test/comparison-tests/large/bz.ts similarity index 100% rename from test/large/bz.ts rename to test/comparison-tests/large/bz.ts diff --git a/test/large/c.ts b/test/comparison-tests/large/c.ts similarity index 100% rename from test/large/c.ts rename to test/comparison-tests/large/c.ts diff --git a/test/large/ca.ts b/test/comparison-tests/large/ca.ts similarity index 100% rename from test/large/ca.ts rename to test/comparison-tests/large/ca.ts diff --git a/test/large/cb.ts b/test/comparison-tests/large/cb.ts similarity index 100% rename from test/large/cb.ts rename to test/comparison-tests/large/cb.ts diff --git a/test/large/cc.ts b/test/comparison-tests/large/cc.ts similarity index 100% rename from test/large/cc.ts rename to test/comparison-tests/large/cc.ts diff --git a/test/large/cd.ts b/test/comparison-tests/large/cd.ts similarity index 100% rename from test/large/cd.ts rename to test/comparison-tests/large/cd.ts diff --git a/test/large/ce.ts b/test/comparison-tests/large/ce.ts similarity index 100% rename from test/large/ce.ts rename to test/comparison-tests/large/ce.ts diff --git a/test/large/cf.ts b/test/comparison-tests/large/cf.ts similarity index 100% rename from test/large/cf.ts rename to test/comparison-tests/large/cf.ts diff --git a/test/large/cg.ts b/test/comparison-tests/large/cg.ts similarity index 100% rename from test/large/cg.ts rename to test/comparison-tests/large/cg.ts diff --git a/test/large/ch.ts b/test/comparison-tests/large/ch.ts similarity index 100% rename from test/large/ch.ts rename to test/comparison-tests/large/ch.ts diff --git a/test/large/ci.ts b/test/comparison-tests/large/ci.ts similarity index 100% rename from test/large/ci.ts rename to test/comparison-tests/large/ci.ts diff --git a/test/large/cj.ts b/test/comparison-tests/large/cj.ts similarity index 100% rename from test/large/cj.ts rename to test/comparison-tests/large/cj.ts diff --git a/test/large/ck.ts b/test/comparison-tests/large/ck.ts similarity index 100% rename from test/large/ck.ts rename to test/comparison-tests/large/ck.ts diff --git a/test/large/cl.ts b/test/comparison-tests/large/cl.ts similarity index 100% rename from test/large/cl.ts rename to test/comparison-tests/large/cl.ts diff --git a/test/large/cm.ts b/test/comparison-tests/large/cm.ts similarity index 100% rename from test/large/cm.ts rename to test/comparison-tests/large/cm.ts diff --git a/test/large/cn.ts b/test/comparison-tests/large/cn.ts similarity index 100% rename from test/large/cn.ts rename to test/comparison-tests/large/cn.ts diff --git a/test/large/co.ts b/test/comparison-tests/large/co.ts similarity index 100% rename from test/large/co.ts rename to test/comparison-tests/large/co.ts diff --git a/test/large/cp.ts b/test/comparison-tests/large/cp.ts similarity index 100% rename from test/large/cp.ts rename to test/comparison-tests/large/cp.ts diff --git a/test/large/cq.ts b/test/comparison-tests/large/cq.ts similarity index 100% rename from test/large/cq.ts rename to test/comparison-tests/large/cq.ts diff --git a/test/large/cr.ts b/test/comparison-tests/large/cr.ts similarity index 100% rename from test/large/cr.ts rename to test/comparison-tests/large/cr.ts diff --git a/test/large/cs.ts b/test/comparison-tests/large/cs.ts similarity index 100% rename from test/large/cs.ts rename to test/comparison-tests/large/cs.ts diff --git a/test/large/ct.ts b/test/comparison-tests/large/ct.ts similarity index 100% rename from test/large/ct.ts rename to test/comparison-tests/large/ct.ts diff --git a/test/large/cu.ts b/test/comparison-tests/large/cu.ts similarity index 100% rename from test/large/cu.ts rename to test/comparison-tests/large/cu.ts diff --git a/test/large/cv.ts b/test/comparison-tests/large/cv.ts similarity index 100% rename from test/large/cv.ts rename to test/comparison-tests/large/cv.ts diff --git a/test/large/cw.ts b/test/comparison-tests/large/cw.ts similarity index 100% rename from test/large/cw.ts rename to test/comparison-tests/large/cw.ts diff --git a/test/large/cx.ts b/test/comparison-tests/large/cx.ts similarity index 100% rename from test/large/cx.ts rename to test/comparison-tests/large/cx.ts diff --git a/test/large/cy.ts b/test/comparison-tests/large/cy.ts similarity index 100% rename from test/large/cy.ts rename to test/comparison-tests/large/cy.ts diff --git a/test/large/cz.ts b/test/comparison-tests/large/cz.ts similarity index 100% rename from test/large/cz.ts rename to test/comparison-tests/large/cz.ts diff --git a/test/large/d.ts b/test/comparison-tests/large/d.ts similarity index 100% rename from test/large/d.ts rename to test/comparison-tests/large/d.ts diff --git a/test/large/da.ts b/test/comparison-tests/large/da.ts similarity index 100% rename from test/large/da.ts rename to test/comparison-tests/large/da.ts diff --git a/test/large/db.ts b/test/comparison-tests/large/db.ts similarity index 100% rename from test/large/db.ts rename to test/comparison-tests/large/db.ts diff --git a/test/large/dc.ts b/test/comparison-tests/large/dc.ts similarity index 100% rename from test/large/dc.ts rename to test/comparison-tests/large/dc.ts diff --git a/test/large/dd.ts b/test/comparison-tests/large/dd.ts similarity index 100% rename from test/large/dd.ts rename to test/comparison-tests/large/dd.ts diff --git a/test/large/de.ts b/test/comparison-tests/large/de.ts similarity index 100% rename from test/large/de.ts rename to test/comparison-tests/large/de.ts diff --git a/test/large/df.ts b/test/comparison-tests/large/df.ts similarity index 100% rename from test/large/df.ts rename to test/comparison-tests/large/df.ts diff --git a/test/large/dg.ts b/test/comparison-tests/large/dg.ts similarity index 100% rename from test/large/dg.ts rename to test/comparison-tests/large/dg.ts diff --git a/test/large/dh.ts b/test/comparison-tests/large/dh.ts similarity index 100% rename from test/large/dh.ts rename to test/comparison-tests/large/dh.ts diff --git a/test/large/di.ts b/test/comparison-tests/large/di.ts similarity index 100% rename from test/large/di.ts rename to test/comparison-tests/large/di.ts diff --git a/test/large/dj.ts b/test/comparison-tests/large/dj.ts similarity index 100% rename from test/large/dj.ts rename to test/comparison-tests/large/dj.ts diff --git a/test/large/dk.ts b/test/comparison-tests/large/dk.ts similarity index 100% rename from test/large/dk.ts rename to test/comparison-tests/large/dk.ts diff --git a/test/large/dl.ts b/test/comparison-tests/large/dl.ts similarity index 100% rename from test/large/dl.ts rename to test/comparison-tests/large/dl.ts diff --git a/test/large/dm.ts b/test/comparison-tests/large/dm.ts similarity index 100% rename from test/large/dm.ts rename to test/comparison-tests/large/dm.ts diff --git a/test/large/dn.ts b/test/comparison-tests/large/dn.ts similarity index 100% rename from test/large/dn.ts rename to test/comparison-tests/large/dn.ts diff --git a/test/large/do.ts b/test/comparison-tests/large/do.ts similarity index 100% rename from test/large/do.ts rename to test/comparison-tests/large/do.ts diff --git a/test/large/dp.ts b/test/comparison-tests/large/dp.ts similarity index 100% rename from test/large/dp.ts rename to test/comparison-tests/large/dp.ts diff --git a/test/large/dq.ts b/test/comparison-tests/large/dq.ts similarity index 100% rename from test/large/dq.ts rename to test/comparison-tests/large/dq.ts diff --git a/test/large/dr.ts b/test/comparison-tests/large/dr.ts similarity index 100% rename from test/large/dr.ts rename to test/comparison-tests/large/dr.ts diff --git a/test/large/ds.ts b/test/comparison-tests/large/ds.ts similarity index 100% rename from test/large/ds.ts rename to test/comparison-tests/large/ds.ts diff --git a/test/large/dt.ts b/test/comparison-tests/large/dt.ts similarity index 100% rename from test/large/dt.ts rename to test/comparison-tests/large/dt.ts diff --git a/test/large/du.ts b/test/comparison-tests/large/du.ts similarity index 100% rename from test/large/du.ts rename to test/comparison-tests/large/du.ts diff --git a/test/large/dv.ts b/test/comparison-tests/large/dv.ts similarity index 100% rename from test/large/dv.ts rename to test/comparison-tests/large/dv.ts diff --git a/test/large/e.ts b/test/comparison-tests/large/e.ts similarity index 100% rename from test/large/e.ts rename to test/comparison-tests/large/e.ts diff --git a/test/large/expectedOutput-1.6/bundle.js b/test/comparison-tests/large/expectedOutput-1.6/bundle.js similarity index 100% rename from test/large/expectedOutput-1.6/bundle.js rename to test/comparison-tests/large/expectedOutput-1.6/bundle.js diff --git a/test/large/expectedOutput-1.6/output.txt b/test/comparison-tests/large/expectedOutput-1.6/output.txt similarity index 100% rename from test/large/expectedOutput-1.6/output.txt rename to test/comparison-tests/large/expectedOutput-1.6/output.txt diff --git a/test/large/expectedOutput-1.7/bundle.js b/test/comparison-tests/large/expectedOutput-1.7/bundle.js similarity index 100% rename from test/large/expectedOutput-1.7/bundle.js rename to test/comparison-tests/large/expectedOutput-1.7/bundle.js diff --git a/test/large/expectedOutput-1.7/output.txt b/test/comparison-tests/large/expectedOutput-1.7/output.txt similarity index 100% rename from test/large/expectedOutput-1.7/output.txt rename to test/comparison-tests/large/expectedOutput-1.7/output.txt diff --git a/test/large/expectedOutput-1.8/bundle.js b/test/comparison-tests/large/expectedOutput-1.8/bundle.js similarity index 100% rename from test/large/expectedOutput-1.8/bundle.js rename to test/comparison-tests/large/expectedOutput-1.8/bundle.js diff --git a/test/large/expectedOutput-1.8/output.txt b/test/comparison-tests/large/expectedOutput-1.8/output.txt similarity index 100% rename from test/large/expectedOutput-1.8/output.txt rename to test/comparison-tests/large/expectedOutput-1.8/output.txt diff --git a/test/large/expectedOutput-2.0/bundle.js b/test/comparison-tests/large/expectedOutput-2.0/bundle.js similarity index 100% rename from test/large/expectedOutput-2.0/bundle.js rename to test/comparison-tests/large/expectedOutput-2.0/bundle.js diff --git a/test/large/expectedOutput-2.0/output.txt b/test/comparison-tests/large/expectedOutput-2.0/output.txt similarity index 100% rename from test/large/expectedOutput-2.0/output.txt rename to test/comparison-tests/large/expectedOutput-2.0/output.txt diff --git a/test/large/f.ts b/test/comparison-tests/large/f.ts similarity index 100% rename from test/large/f.ts rename to test/comparison-tests/large/f.ts diff --git a/test/large/g.ts b/test/comparison-tests/large/g.ts similarity index 100% rename from test/large/g.ts rename to test/comparison-tests/large/g.ts diff --git a/test/large/generate.js b/test/comparison-tests/large/generate.js similarity index 100% rename from test/large/generate.js rename to test/comparison-tests/large/generate.js diff --git a/test/large/h.ts b/test/comparison-tests/large/h.ts similarity index 100% rename from test/large/h.ts rename to test/comparison-tests/large/h.ts diff --git a/test/large/i.ts b/test/comparison-tests/large/i.ts similarity index 100% rename from test/large/i.ts rename to test/comparison-tests/large/i.ts diff --git a/test/large/j.ts b/test/comparison-tests/large/j.ts similarity index 100% rename from test/large/j.ts rename to test/comparison-tests/large/j.ts diff --git a/test/large/k.ts b/test/comparison-tests/large/k.ts similarity index 100% rename from test/large/k.ts rename to test/comparison-tests/large/k.ts diff --git a/test/large/l.ts b/test/comparison-tests/large/l.ts similarity index 100% rename from test/large/l.ts rename to test/comparison-tests/large/l.ts diff --git a/test/large/m.ts b/test/comparison-tests/large/m.ts similarity index 100% rename from test/large/m.ts rename to test/comparison-tests/large/m.ts diff --git a/test/large/n.ts b/test/comparison-tests/large/n.ts similarity index 100% rename from test/large/n.ts rename to test/comparison-tests/large/n.ts diff --git a/test/large/o.ts b/test/comparison-tests/large/o.ts similarity index 100% rename from test/large/o.ts rename to test/comparison-tests/large/o.ts diff --git a/test/large/p.ts b/test/comparison-tests/large/p.ts similarity index 100% rename from test/large/p.ts rename to test/comparison-tests/large/p.ts diff --git a/test/large/q.ts b/test/comparison-tests/large/q.ts similarity index 100% rename from test/large/q.ts rename to test/comparison-tests/large/q.ts diff --git a/test/large/r.ts b/test/comparison-tests/large/r.ts similarity index 100% rename from test/large/r.ts rename to test/comparison-tests/large/r.ts diff --git a/test/large/s.ts b/test/comparison-tests/large/s.ts similarity index 100% rename from test/large/s.ts rename to test/comparison-tests/large/s.ts diff --git a/test/large/t.ts b/test/comparison-tests/large/t.ts similarity index 100% rename from test/large/t.ts rename to test/comparison-tests/large/t.ts diff --git a/test/large/tsconfig.json b/test/comparison-tests/large/tsconfig.json similarity index 100% rename from test/large/tsconfig.json rename to test/comparison-tests/large/tsconfig.json diff --git a/test/large/u.ts b/test/comparison-tests/large/u.ts similarity index 100% rename from test/large/u.ts rename to test/comparison-tests/large/u.ts diff --git a/test/large/v.ts b/test/comparison-tests/large/v.ts similarity index 100% rename from test/large/v.ts rename to test/comparison-tests/large/v.ts diff --git a/test/large/w.ts b/test/comparison-tests/large/w.ts similarity index 100% rename from test/large/w.ts rename to test/comparison-tests/large/w.ts diff --git a/test/large/webpack.config.js b/test/comparison-tests/large/webpack.config.js similarity index 100% rename from test/large/webpack.config.js rename to test/comparison-tests/large/webpack.config.js diff --git a/test/large/x.ts b/test/comparison-tests/large/x.ts similarity index 100% rename from test/large/x.ts rename to test/comparison-tests/large/x.ts diff --git a/test/large/y.ts b/test/comparison-tests/large/y.ts similarity index 100% rename from test/large/y.ts rename to test/comparison-tests/large/y.ts diff --git a/test/large/z.ts b/test/comparison-tests/large/z.ts similarity index 100% rename from test/large/z.ts rename to test/comparison-tests/large/z.ts diff --git a/test/newline.loader.js b/test/comparison-tests/newline.loader.js similarity index 100% rename from test/newline.loader.js rename to test/comparison-tests/newline.loader.js diff --git a/test/noErrorsPlugin/app.ts b/test/comparison-tests/noErrorsPlugin/app.ts similarity index 100% rename from test/noErrorsPlugin/app.ts rename to test/comparison-tests/noErrorsPlugin/app.ts diff --git a/test/noErrorsPlugin/expectedOutput-1.6/bundle.transpiled.js b/test/comparison-tests/noErrorsPlugin/expectedOutput-1.6/bundle.transpiled.js similarity index 100% rename from test/noErrorsPlugin/expectedOutput-1.6/bundle.transpiled.js rename to test/comparison-tests/noErrorsPlugin/expectedOutput-1.6/bundle.transpiled.js diff --git a/test/noErrorsPlugin/expectedOutput-1.6/output.transpiled.txt b/test/comparison-tests/noErrorsPlugin/expectedOutput-1.6/output.transpiled.txt similarity index 100% rename from test/noErrorsPlugin/expectedOutput-1.6/output.transpiled.txt rename to test/comparison-tests/noErrorsPlugin/expectedOutput-1.6/output.transpiled.txt diff --git a/test/noErrorsPlugin/expectedOutput-1.6/output.txt b/test/comparison-tests/noErrorsPlugin/expectedOutput-1.6/output.txt similarity index 100% rename from test/noErrorsPlugin/expectedOutput-1.6/output.txt rename to test/comparison-tests/noErrorsPlugin/expectedOutput-1.6/output.txt diff --git a/test/noErrorsPlugin/expectedOutput-1.7/bundle.transpiled.js b/test/comparison-tests/noErrorsPlugin/expectedOutput-1.7/bundle.transpiled.js similarity index 100% rename from test/noErrorsPlugin/expectedOutput-1.7/bundle.transpiled.js rename to test/comparison-tests/noErrorsPlugin/expectedOutput-1.7/bundle.transpiled.js diff --git a/test/noErrorsPlugin/expectedOutput-1.7/output.transpiled.txt b/test/comparison-tests/noErrorsPlugin/expectedOutput-1.7/output.transpiled.txt similarity index 100% rename from test/noErrorsPlugin/expectedOutput-1.7/output.transpiled.txt rename to test/comparison-tests/noErrorsPlugin/expectedOutput-1.7/output.transpiled.txt diff --git a/test/noErrorsPlugin/expectedOutput-1.7/output.txt b/test/comparison-tests/noErrorsPlugin/expectedOutput-1.7/output.txt similarity index 100% rename from test/noErrorsPlugin/expectedOutput-1.7/output.txt rename to test/comparison-tests/noErrorsPlugin/expectedOutput-1.7/output.txt diff --git a/test/noErrorsPlugin/expectedOutput-1.8/bundle.transpiled.js b/test/comparison-tests/noErrorsPlugin/expectedOutput-1.8/bundle.transpiled.js similarity index 100% rename from test/noErrorsPlugin/expectedOutput-1.8/bundle.transpiled.js rename to test/comparison-tests/noErrorsPlugin/expectedOutput-1.8/bundle.transpiled.js diff --git a/test/noErrorsPlugin/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/noErrorsPlugin/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/noErrorsPlugin/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/noErrorsPlugin/expectedOutput-1.8/output.transpiled.txt diff --git a/test/noErrorsPlugin/expectedOutput-1.8/output.txt b/test/comparison-tests/noErrorsPlugin/expectedOutput-1.8/output.txt similarity index 100% rename from test/noErrorsPlugin/expectedOutput-1.8/output.txt rename to test/comparison-tests/noErrorsPlugin/expectedOutput-1.8/output.txt diff --git a/test/noErrorsPlugin/expectedOutput-2.0/bundle.transpiled.js b/test/comparison-tests/noErrorsPlugin/expectedOutput-2.0/bundle.transpiled.js similarity index 100% rename from test/noErrorsPlugin/expectedOutput-2.0/bundle.transpiled.js rename to test/comparison-tests/noErrorsPlugin/expectedOutput-2.0/bundle.transpiled.js diff --git a/test/noErrorsPlugin/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/noErrorsPlugin/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/noErrorsPlugin/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/noErrorsPlugin/expectedOutput-2.0/output.transpiled.txt diff --git a/test/noErrorsPlugin/expectedOutput-2.0/output.txt b/test/comparison-tests/noErrorsPlugin/expectedOutput-2.0/output.txt similarity index 100% rename from test/noErrorsPlugin/expectedOutput-2.0/output.txt rename to test/comparison-tests/noErrorsPlugin/expectedOutput-2.0/output.txt diff --git a/test/noErrorsPlugin/tsconfig.json b/test/comparison-tests/noErrorsPlugin/tsconfig.json similarity index 100% rename from test/noErrorsPlugin/tsconfig.json rename to test/comparison-tests/noErrorsPlugin/tsconfig.json diff --git a/test/noErrorsPlugin/webpack.config.js b/test/comparison-tests/noErrorsPlugin/webpack.config.js similarity index 100% rename from test/noErrorsPlugin/webpack.config.js rename to test/comparison-tests/noErrorsPlugin/webpack.config.js diff --git a/test/node/app.ts b/test/comparison-tests/node/app.ts similarity index 100% rename from test/node/app.ts rename to test/comparison-tests/node/app.ts diff --git a/test/node/expectedOutput-1.6/bundle.js b/test/comparison-tests/node/expectedOutput-1.6/bundle.js similarity index 100% rename from test/node/expectedOutput-1.6/bundle.js rename to test/comparison-tests/node/expectedOutput-1.6/bundle.js diff --git a/test/node/expectedOutput-1.6/output.txt b/test/comparison-tests/node/expectedOutput-1.6/output.txt similarity index 100% rename from test/node/expectedOutput-1.6/output.txt rename to test/comparison-tests/node/expectedOutput-1.6/output.txt diff --git a/test/node/expectedOutput-1.7/bundle.js b/test/comparison-tests/node/expectedOutput-1.7/bundle.js similarity index 100% rename from test/node/expectedOutput-1.7/bundle.js rename to test/comparison-tests/node/expectedOutput-1.7/bundle.js diff --git a/test/node/expectedOutput-1.7/output.txt b/test/comparison-tests/node/expectedOutput-1.7/output.txt similarity index 100% rename from test/node/expectedOutput-1.7/output.txt rename to test/comparison-tests/node/expectedOutput-1.7/output.txt diff --git a/test/node/expectedOutput-1.8/bundle.js b/test/comparison-tests/node/expectedOutput-1.8/bundle.js similarity index 100% rename from test/node/expectedOutput-1.8/bundle.js rename to test/comparison-tests/node/expectedOutput-1.8/bundle.js diff --git a/test/node/expectedOutput-1.8/bundle.transpiled.js b/test/comparison-tests/node/expectedOutput-1.8/bundle.transpiled.js similarity index 100% rename from test/node/expectedOutput-1.8/bundle.transpiled.js rename to test/comparison-tests/node/expectedOutput-1.8/bundle.transpiled.js diff --git a/test/node/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/node/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/node/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/node/expectedOutput-1.8/output.transpiled.txt diff --git a/test/node/expectedOutput-1.8/output.txt b/test/comparison-tests/node/expectedOutput-1.8/output.txt similarity index 100% rename from test/node/expectedOutput-1.8/output.txt rename to test/comparison-tests/node/expectedOutput-1.8/output.txt diff --git a/test/node/expectedOutput-2.0/bundle.js b/test/comparison-tests/node/expectedOutput-2.0/bundle.js similarity index 100% rename from test/node/expectedOutput-2.0/bundle.js rename to test/comparison-tests/node/expectedOutput-2.0/bundle.js diff --git a/test/node/expectedOutput-2.0/bundle.transpiled.js b/test/comparison-tests/node/expectedOutput-2.0/bundle.transpiled.js similarity index 100% rename from test/node/expectedOutput-2.0/bundle.transpiled.js rename to test/comparison-tests/node/expectedOutput-2.0/bundle.transpiled.js diff --git a/test/node/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/node/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/node/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/node/expectedOutput-2.0/output.transpiled.txt diff --git a/test/node/expectedOutput-2.0/output.txt b/test/comparison-tests/node/expectedOutput-2.0/output.txt similarity index 100% rename from test/node/expectedOutput-2.0/output.txt rename to test/comparison-tests/node/expectedOutput-2.0/output.txt diff --git a/test/node/tsconfig.json b/test/comparison-tests/node/tsconfig.json similarity index 100% rename from test/node/tsconfig.json rename to test/comparison-tests/node/tsconfig.json diff --git a/test/node/webpack.config.js b/test/comparison-tests/node/webpack.config.js similarity index 100% rename from test/node/webpack.config.js rename to test/comparison-tests/node/webpack.config.js diff --git a/test/nodeResolution/app.ts b/test/comparison-tests/nodeResolution/app.ts similarity index 100% rename from test/nodeResolution/app.ts rename to test/comparison-tests/nodeResolution/app.ts diff --git a/test/nodeResolution/expectedOutput-1.6/bundle.js b/test/comparison-tests/nodeResolution/expectedOutput-1.6/bundle.js similarity index 100% rename from test/nodeResolution/expectedOutput-1.6/bundle.js rename to test/comparison-tests/nodeResolution/expectedOutput-1.6/bundle.js diff --git a/test/nodeResolution/expectedOutput-1.6/output.txt b/test/comparison-tests/nodeResolution/expectedOutput-1.6/output.txt similarity index 100% rename from test/nodeResolution/expectedOutput-1.6/output.txt rename to test/comparison-tests/nodeResolution/expectedOutput-1.6/output.txt diff --git a/test/nodeResolution/expectedOutput-1.7/bundle.js b/test/comparison-tests/nodeResolution/expectedOutput-1.7/bundle.js similarity index 100% rename from test/nodeResolution/expectedOutput-1.7/bundle.js rename to test/comparison-tests/nodeResolution/expectedOutput-1.7/bundle.js diff --git a/test/nodeResolution/expectedOutput-1.7/output.txt b/test/comparison-tests/nodeResolution/expectedOutput-1.7/output.txt similarity index 100% rename from test/nodeResolution/expectedOutput-1.7/output.txt rename to test/comparison-tests/nodeResolution/expectedOutput-1.7/output.txt diff --git a/test/nodeResolution/expectedOutput-1.8/bundle.js b/test/comparison-tests/nodeResolution/expectedOutput-1.8/bundle.js similarity index 100% rename from test/nodeResolution/expectedOutput-1.8/bundle.js rename to test/comparison-tests/nodeResolution/expectedOutput-1.8/bundle.js diff --git a/test/nodeResolution/expectedOutput-1.8/output.txt b/test/comparison-tests/nodeResolution/expectedOutput-1.8/output.txt similarity index 100% rename from test/nodeResolution/expectedOutput-1.8/output.txt rename to test/comparison-tests/nodeResolution/expectedOutput-1.8/output.txt diff --git a/test/nodeResolution/expectedOutput-2.0/bundle.js b/test/comparison-tests/nodeResolution/expectedOutput-2.0/bundle.js similarity index 100% rename from test/nodeResolution/expectedOutput-2.0/bundle.js rename to test/comparison-tests/nodeResolution/expectedOutput-2.0/bundle.js diff --git a/test/nodeResolution/expectedOutput-2.0/output.txt b/test/comparison-tests/nodeResolution/expectedOutput-2.0/output.txt similarity index 100% rename from test/nodeResolution/expectedOutput-2.0/output.txt rename to test/comparison-tests/nodeResolution/expectedOutput-2.0/output.txt diff --git a/test/nodeResolution/node_modules/a/a.d.ts b/test/comparison-tests/nodeResolution/node_modules/a/a.d.ts similarity index 100% rename from test/nodeResolution/node_modules/a/a.d.ts rename to test/comparison-tests/nodeResolution/node_modules/a/a.d.ts diff --git a/test/nodeResolution/node_modules/a/index.js b/test/comparison-tests/nodeResolution/node_modules/a/index.js similarity index 100% rename from test/nodeResolution/node_modules/a/index.js rename to test/comparison-tests/nodeResolution/node_modules/a/index.js diff --git a/test/nodeResolution/node_modules/a/package.json b/test/comparison-tests/nodeResolution/node_modules/a/package.json similarity index 100% rename from test/nodeResolution/node_modules/a/package.json rename to test/comparison-tests/nodeResolution/node_modules/a/package.json diff --git a/test/nodeResolution/tsconfig.json b/test/comparison-tests/nodeResolution/tsconfig.json similarity index 100% rename from test/nodeResolution/tsconfig.json rename to test/comparison-tests/nodeResolution/tsconfig.json diff --git a/test/nodeResolution/webpack.config.js b/test/comparison-tests/nodeResolution/webpack.config.js similarity index 100% rename from test/nodeResolution/webpack.config.js rename to test/comparison-tests/nodeResolution/webpack.config.js diff --git a/test/nolib/app.ts b/test/comparison-tests/nolib/app.ts similarity index 100% rename from test/nolib/app.ts rename to test/comparison-tests/nolib/app.ts diff --git a/test/nolib/expectedOutput-1.6/bundle.js b/test/comparison-tests/nolib/expectedOutput-1.6/bundle.js similarity index 100% rename from test/nolib/expectedOutput-1.6/bundle.js rename to test/comparison-tests/nolib/expectedOutput-1.6/bundle.js diff --git a/test/nolib/expectedOutput-1.6/output.transpiled.txt b/test/comparison-tests/nolib/expectedOutput-1.6/output.transpiled.txt similarity index 100% rename from test/nolib/expectedOutput-1.6/output.transpiled.txt rename to test/comparison-tests/nolib/expectedOutput-1.6/output.transpiled.txt diff --git a/test/nolib/expectedOutput-1.6/output.txt b/test/comparison-tests/nolib/expectedOutput-1.6/output.txt similarity index 100% rename from test/nolib/expectedOutput-1.6/output.txt rename to test/comparison-tests/nolib/expectedOutput-1.6/output.txt diff --git a/test/nolib/expectedOutput-1.7/bundle.js b/test/comparison-tests/nolib/expectedOutput-1.7/bundle.js similarity index 100% rename from test/nolib/expectedOutput-1.7/bundle.js rename to test/comparison-tests/nolib/expectedOutput-1.7/bundle.js diff --git a/test/nolib/expectedOutput-1.7/output.transpiled.txt b/test/comparison-tests/nolib/expectedOutput-1.7/output.transpiled.txt similarity index 100% rename from test/nolib/expectedOutput-1.7/output.transpiled.txt rename to test/comparison-tests/nolib/expectedOutput-1.7/output.transpiled.txt diff --git a/test/nolib/expectedOutput-1.7/output.txt b/test/comparison-tests/nolib/expectedOutput-1.7/output.txt similarity index 100% rename from test/nolib/expectedOutput-1.7/output.txt rename to test/comparison-tests/nolib/expectedOutput-1.7/output.txt diff --git a/test/nolib/expectedOutput-1.8/bundle.js b/test/comparison-tests/nolib/expectedOutput-1.8/bundle.js similarity index 100% rename from test/nolib/expectedOutput-1.8/bundle.js rename to test/comparison-tests/nolib/expectedOutput-1.8/bundle.js diff --git a/test/nolib/expectedOutput-1.8/bundle.transpiled.js b/test/comparison-tests/nolib/expectedOutput-1.8/bundle.transpiled.js similarity index 100% rename from test/nolib/expectedOutput-1.8/bundle.transpiled.js rename to test/comparison-tests/nolib/expectedOutput-1.8/bundle.transpiled.js diff --git a/test/nolib/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/nolib/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/nolib/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/nolib/expectedOutput-1.8/output.transpiled.txt diff --git a/test/nolib/expectedOutput-1.8/output.txt b/test/comparison-tests/nolib/expectedOutput-1.8/output.txt similarity index 100% rename from test/nolib/expectedOutput-1.8/output.txt rename to test/comparison-tests/nolib/expectedOutput-1.8/output.txt diff --git a/test/nolib/expectedOutput-2.0/bundle.js b/test/comparison-tests/nolib/expectedOutput-2.0/bundle.js similarity index 100% rename from test/nolib/expectedOutput-2.0/bundle.js rename to test/comparison-tests/nolib/expectedOutput-2.0/bundle.js diff --git a/test/nolib/expectedOutput-2.0/bundle.transpiled.js b/test/comparison-tests/nolib/expectedOutput-2.0/bundle.transpiled.js similarity index 100% rename from test/nolib/expectedOutput-2.0/bundle.transpiled.js rename to test/comparison-tests/nolib/expectedOutput-2.0/bundle.transpiled.js diff --git a/test/nolib/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/nolib/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/nolib/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/nolib/expectedOutput-2.0/output.transpiled.txt diff --git a/test/nolib/expectedOutput-2.0/output.txt b/test/comparison-tests/nolib/expectedOutput-2.0/output.txt similarity index 100% rename from test/nolib/expectedOutput-2.0/output.txt rename to test/comparison-tests/nolib/expectedOutput-2.0/output.txt diff --git a/test/nolib/tsconfig.json b/test/comparison-tests/nolib/tsconfig.json similarity index 100% rename from test/nolib/tsconfig.json rename to test/comparison-tests/nolib/tsconfig.json diff --git a/test/nolib/webpack.config.js b/test/comparison-tests/nolib/webpack.config.js similarity index 100% rename from test/nolib/webpack.config.js rename to test/comparison-tests/nolib/webpack.config.js diff --git a/test/npmLink/app.ts b/test/comparison-tests/npmLink/app.ts similarity index 100% rename from test/npmLink/app.ts rename to test/comparison-tests/npmLink/app.ts diff --git a/test/npmLink/expectedOutput-1.6/bundle.js b/test/comparison-tests/npmLink/expectedOutput-1.6/bundle.js similarity index 100% rename from test/npmLink/expectedOutput-1.6/bundle.js rename to test/comparison-tests/npmLink/expectedOutput-1.6/bundle.js diff --git a/test/npmLink/expectedOutput-1.6/output.txt b/test/comparison-tests/npmLink/expectedOutput-1.6/output.txt similarity index 100% rename from test/npmLink/expectedOutput-1.6/output.txt rename to test/comparison-tests/npmLink/expectedOutput-1.6/output.txt diff --git a/test/npmLink/expectedOutput-1.7/bundle.js b/test/comparison-tests/npmLink/expectedOutput-1.7/bundle.js similarity index 100% rename from test/npmLink/expectedOutput-1.7/bundle.js rename to test/comparison-tests/npmLink/expectedOutput-1.7/bundle.js diff --git a/test/npmLink/expectedOutput-1.7/output.txt b/test/comparison-tests/npmLink/expectedOutput-1.7/output.txt similarity index 100% rename from test/npmLink/expectedOutput-1.7/output.txt rename to test/comparison-tests/npmLink/expectedOutput-1.7/output.txt diff --git a/test/npmLink/expectedOutput-1.8/bundle.js b/test/comparison-tests/npmLink/expectedOutput-1.8/bundle.js similarity index 100% rename from test/npmLink/expectedOutput-1.8/bundle.js rename to test/comparison-tests/npmLink/expectedOutput-1.8/bundle.js diff --git a/test/npmLink/expectedOutput-1.8/output.txt b/test/comparison-tests/npmLink/expectedOutput-1.8/output.txt similarity index 100% rename from test/npmLink/expectedOutput-1.8/output.txt rename to test/comparison-tests/npmLink/expectedOutput-1.8/output.txt diff --git a/test/npmLink/expectedOutput-2.0/bundle.js b/test/comparison-tests/npmLink/expectedOutput-2.0/bundle.js similarity index 100% rename from test/npmLink/expectedOutput-2.0/bundle.js rename to test/comparison-tests/npmLink/expectedOutput-2.0/bundle.js diff --git a/test/npmLink/expectedOutput-2.0/output.txt b/test/comparison-tests/npmLink/expectedOutput-2.0/output.txt similarity index 74% rename from test/npmLink/expectedOutput-2.0/output.txt rename to test/comparison-tests/npmLink/expectedOutput-2.0/output.txt index ec351c279..5e97def3e 100644 --- a/test/npmLink/expectedOutput-2.0/output.txt +++ b/test/comparison-tests/npmLink/expectedOutput-2.0/output.txt @@ -2,4 +2,4 @@ bundle.js 1.62 kB 0 [emitted] main chunk {0} bundle.js (main) 146 bytes [rendered] [0] ./.test/npmLink/app.ts 77 bytes {0} [built] - [1] ./test/testLib/foo.ts 69 bytes {0} [built] \ No newline at end of file + [1] ./test/comparison-tests/testLib/foo.ts 69 bytes {0} [built] \ No newline at end of file diff --git a/test/npmLink/tsconfig.json b/test/comparison-tests/npmLink/tsconfig.json similarity index 100% rename from test/npmLink/tsconfig.json rename to test/comparison-tests/npmLink/tsconfig.json diff --git a/test/npmLink/webpack.config.js b/test/comparison-tests/npmLink/webpack.config.js similarity index 100% rename from test/npmLink/webpack.config.js rename to test/comparison-tests/npmLink/webpack.config.js diff --git a/test/replacement/a.ts b/test/comparison-tests/replacement/a.ts similarity index 100% rename from test/replacement/a.ts rename to test/comparison-tests/replacement/a.ts diff --git a/test/replacement/app.ts b/test/comparison-tests/replacement/app.ts similarity index 100% rename from test/replacement/app.ts rename to test/comparison-tests/replacement/app.ts diff --git a/test/replacement/expectedOutput-1.6/bundle.js b/test/comparison-tests/replacement/expectedOutput-1.6/bundle.js similarity index 100% rename from test/replacement/expectedOutput-1.6/bundle.js rename to test/comparison-tests/replacement/expectedOutput-1.6/bundle.js diff --git a/test/replacement/expectedOutput-1.6/output.txt b/test/comparison-tests/replacement/expectedOutput-1.6/output.txt similarity index 100% rename from test/replacement/expectedOutput-1.6/output.txt rename to test/comparison-tests/replacement/expectedOutput-1.6/output.txt diff --git a/test/replacement/expectedOutput-1.7/bundle.js b/test/comparison-tests/replacement/expectedOutput-1.7/bundle.js similarity index 100% rename from test/replacement/expectedOutput-1.7/bundle.js rename to test/comparison-tests/replacement/expectedOutput-1.7/bundle.js diff --git a/test/replacement/expectedOutput-1.7/output.txt b/test/comparison-tests/replacement/expectedOutput-1.7/output.txt similarity index 100% rename from test/replacement/expectedOutput-1.7/output.txt rename to test/comparison-tests/replacement/expectedOutput-1.7/output.txt diff --git a/test/replacement/expectedOutput-1.8/bundle.js b/test/comparison-tests/replacement/expectedOutput-1.8/bundle.js similarity index 100% rename from test/replacement/expectedOutput-1.8/bundle.js rename to test/comparison-tests/replacement/expectedOutput-1.8/bundle.js diff --git a/test/replacement/expectedOutput-1.8/output.txt b/test/comparison-tests/replacement/expectedOutput-1.8/output.txt similarity index 100% rename from test/replacement/expectedOutput-1.8/output.txt rename to test/comparison-tests/replacement/expectedOutput-1.8/output.txt diff --git a/test/replacement/expectedOutput-2.0/bundle.js b/test/comparison-tests/replacement/expectedOutput-2.0/bundle.js similarity index 100% rename from test/replacement/expectedOutput-2.0/bundle.js rename to test/comparison-tests/replacement/expectedOutput-2.0/bundle.js diff --git a/test/replacement/expectedOutput-2.0/output.txt b/test/comparison-tests/replacement/expectedOutput-2.0/output.txt similarity index 100% rename from test/replacement/expectedOutput-2.0/output.txt rename to test/comparison-tests/replacement/expectedOutput-2.0/output.txt diff --git a/test/replacement/sub/a.ts b/test/comparison-tests/replacement/sub/a.ts similarity index 100% rename from test/replacement/sub/a.ts rename to test/comparison-tests/replacement/sub/a.ts diff --git a/test/replacement/sub/dep.ts b/test/comparison-tests/replacement/sub/dep.ts similarity index 100% rename from test/replacement/sub/dep.ts rename to test/comparison-tests/replacement/sub/dep.ts diff --git a/test/replacement/tsconfig.json b/test/comparison-tests/replacement/tsconfig.json similarity index 100% rename from test/replacement/tsconfig.json rename to test/comparison-tests/replacement/tsconfig.json diff --git a/test/replacement/webpack.config.js b/test/comparison-tests/replacement/webpack.config.js similarity index 100% rename from test/replacement/webpack.config.js rename to test/comparison-tests/replacement/webpack.config.js diff --git a/test/run-tests-as-child.js b/test/comparison-tests/run-tests.js similarity index 69% rename from test/run-tests-as-child.js rename to test/comparison-tests/run-tests.js index 342a6ab6a..321d5b03a 100644 --- a/test/run-tests-as-child.js +++ b/test/comparison-tests/run-tests.js @@ -1,7 +1,14 @@ var fs = require('fs-extra'); var path = require('path'); +var rimraf = require('rimraf'); +var typescript = require('typescript'); +var semver = require('semver'); var execSync = require('child_process').execSync; +// Don't run the tests if using a version of typescript lower than 2.0 +var typescriptVersion = semver.major(typescript.version) + '.' + semver.minor(typescript.version); +if (semver.lt(typescript.version, '2.0.0')) return; + // Parse command line arguments var saveOutputMode = process.argv.indexOf('--save-output') !== -1; var indexOfSingleTest = process.argv.indexOf('--single-test'); @@ -10,38 +17,29 @@ var singleTestToRun = indexOfSingleTest !== -1 && process.argv[indexOfSingleTest var passingTests = []; var failingTests = []; +// set up new empty staging area +var stagingPath = path.resolve(__dirname, '../../.test'); +rimraf.sync(stagingPath); + var start = new Date().getTime(); console.log('Starting to run test suites...\n'); var versionsHaveBeenReported = false; +var testDir = __dirname; + if (singleTestToRun) { runTestAsChildProcess(singleTestToRun); } else { // loop through each test directory triggering a test run as child process - fs.readdirSync(__dirname) + fs.readdirSync(testDir) .filter(function (testName) { - var testPath = path.join(__dirname, testName); + var testPath = path.join(testDir, testName); return fs.statSync(testPath).isDirectory(); }) .forEach(runTestAsChildProcess); } -function runTestAsChildProcess(testName) { - // console.log('Running ' + testName + ' as a child_process') - try { - // var testOutput = execSync('npm test -- --single-test ' + testName, { stdio: 'inherit' }); - var excludeVersions = versionsHaveBeenReported ? ' --exclude-versions' : ''; - var saveOutput = saveOutputMode ? ' --save-output' : ''; - versionsHaveBeenReported = true; - var testOutput = execSync('mocha --reporter spec test/run.js --single-test ' + testName + excludeVersions + saveOutput, { stdio: 'inherit' }); - passingTests.push(testName); - } - catch (err) { - failingTests.push(testName); - } -} - var end = new Date().getTime(); console.log('\n-------------------------------------------------------------------------\n'); console.log((passingTests.length + failingTests.length) + ' test suites took ' + ((end - start) / 1000) + ' seconds to run.\n'); @@ -56,3 +54,21 @@ if (failingTests.length > 0) { else { console.log('No tests failed; congratulations!'); } + +// -------------------------------------------------------------- + +function runTestAsChildProcess(testName) { + // console.log('Running ' + testName + ' as a child_process') + try { + var excludeVersions = versionsHaveBeenReported ? ' --exclude-versions' : ''; + var saveOutput = saveOutputMode ? ' --save-output' : ''; + versionsHaveBeenReported = true; + + var testOutput = execSync('mocha --reporter spec test/comparison-tests/create-and-execute-test.js --test-to-run ' + testName + excludeVersions + saveOutput, { stdio: 'inherit' }); + + passingTests.push(testName); + } + catch (err) { + failingTests.push(testName); + } +} diff --git a/test/simpleDependency/app.ts b/test/comparison-tests/simpleDependency/app.ts similarity index 100% rename from test/simpleDependency/app.ts rename to test/comparison-tests/simpleDependency/app.ts diff --git a/test/simpleDependency/deeperDep.ts b/test/comparison-tests/simpleDependency/deeperDep.ts similarity index 100% rename from test/simpleDependency/deeperDep.ts rename to test/comparison-tests/simpleDependency/deeperDep.ts diff --git a/test/simpleDependency/dep.ts b/test/comparison-tests/simpleDependency/dep.ts similarity index 100% rename from test/simpleDependency/dep.ts rename to test/comparison-tests/simpleDependency/dep.ts diff --git a/test/simpleDependency/expectedOutput-1.6/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-1.6/bundle.js similarity index 100% rename from test/simpleDependency/expectedOutput-1.6/bundle.js rename to test/comparison-tests/simpleDependency/expectedOutput-1.6/bundle.js diff --git a/test/simpleDependency/expectedOutput-1.6/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.6/output.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.6/output.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.6/output.txt diff --git a/test/simpleDependency/expectedOutput-1.6/patch0/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-1.6/patch0/bundle.js similarity index 100% rename from test/simpleDependency/expectedOutput-1.6/patch0/bundle.js rename to test/comparison-tests/simpleDependency/expectedOutput-1.6/patch0/bundle.js diff --git a/test/simpleDependency/expectedOutput-1.6/patch0/output.transpiled.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.6/patch0/output.transpiled.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.6/patch0/output.transpiled.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.6/patch0/output.transpiled.txt diff --git a/test/simpleDependency/expectedOutput-1.6/patch0/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.6/patch0/output.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.6/patch0/output.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.6/patch0/output.txt diff --git a/test/simpleDependency/expectedOutput-1.6/patch1/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-1.6/patch1/bundle.js similarity index 100% rename from test/simpleDependency/expectedOutput-1.6/patch1/bundle.js rename to test/comparison-tests/simpleDependency/expectedOutput-1.6/patch1/bundle.js diff --git a/test/simpleDependency/expectedOutput-1.6/patch1/output.transpiled.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.6/patch1/output.transpiled.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.6/patch1/output.transpiled.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.6/patch1/output.transpiled.txt diff --git a/test/simpleDependency/expectedOutput-1.6/patch1/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.6/patch1/output.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.6/patch1/output.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.6/patch1/output.txt diff --git a/test/simpleDependency/expectedOutput-1.7/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-1.7/bundle.js similarity index 100% rename from test/simpleDependency/expectedOutput-1.7/bundle.js rename to test/comparison-tests/simpleDependency/expectedOutput-1.7/bundle.js diff --git a/test/simpleDependency/expectedOutput-1.7/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.7/output.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.7/output.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.7/output.txt diff --git a/test/simpleDependency/expectedOutput-1.7/patch0/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-1.7/patch0/bundle.js similarity index 100% rename from test/simpleDependency/expectedOutput-1.7/patch0/bundle.js rename to test/comparison-tests/simpleDependency/expectedOutput-1.7/patch0/bundle.js diff --git a/test/simpleDependency/expectedOutput-1.7/patch0/output.transpiled.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.7/patch0/output.transpiled.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.7/patch0/output.transpiled.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.7/patch0/output.transpiled.txt diff --git a/test/simpleDependency/expectedOutput-1.7/patch0/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.7/patch0/output.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.7/patch0/output.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.7/patch0/output.txt diff --git a/test/simpleDependency/expectedOutput-1.7/patch1/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-1.7/patch1/bundle.js similarity index 100% rename from test/simpleDependency/expectedOutput-1.7/patch1/bundle.js rename to test/comparison-tests/simpleDependency/expectedOutput-1.7/patch1/bundle.js diff --git a/test/simpleDependency/expectedOutput-1.7/patch1/output.transpiled.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.7/patch1/output.transpiled.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.7/patch1/output.transpiled.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.7/patch1/output.transpiled.txt diff --git a/test/simpleDependency/expectedOutput-1.7/patch1/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.7/patch1/output.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.7/patch1/output.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.7/patch1/output.txt diff --git a/test/simpleDependency/expectedOutput-1.8/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-1.8/bundle.js similarity index 100% rename from test/simpleDependency/expectedOutput-1.8/bundle.js rename to test/comparison-tests/simpleDependency/expectedOutput-1.8/bundle.js diff --git a/test/simpleDependency/expectedOutput-1.8/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.8/output.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.8/output.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.8/output.txt diff --git a/test/simpleDependency/expectedOutput-1.8/patch0/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-1.8/patch0/bundle.js similarity index 100% rename from test/simpleDependency/expectedOutput-1.8/patch0/bundle.js rename to test/comparison-tests/simpleDependency/expectedOutput-1.8/patch0/bundle.js diff --git a/test/simpleDependency/expectedOutput-1.8/patch0/output.transpiled.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.8/patch0/output.transpiled.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.8/patch0/output.transpiled.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.8/patch0/output.transpiled.txt diff --git a/test/simpleDependency/expectedOutput-1.8/patch0/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.8/patch0/output.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.8/patch0/output.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.8/patch0/output.txt diff --git a/test/simpleDependency/expectedOutput-1.8/patch1/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-1.8/patch1/bundle.js similarity index 100% rename from test/simpleDependency/expectedOutput-1.8/patch1/bundle.js rename to test/comparison-tests/simpleDependency/expectedOutput-1.8/patch1/bundle.js diff --git a/test/simpleDependency/expectedOutput-1.8/patch1/output.transpiled.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.8/patch1/output.transpiled.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.8/patch1/output.transpiled.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.8/patch1/output.transpiled.txt diff --git a/test/simpleDependency/expectedOutput-1.8/patch1/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-1.8/patch1/output.txt similarity index 100% rename from test/simpleDependency/expectedOutput-1.8/patch1/output.txt rename to test/comparison-tests/simpleDependency/expectedOutput-1.8/patch1/output.txt diff --git a/test/simpleDependency/expectedOutput-2.0/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-2.0/bundle.js similarity index 100% rename from test/simpleDependency/expectedOutput-2.0/bundle.js rename to test/comparison-tests/simpleDependency/expectedOutput-2.0/bundle.js diff --git a/test/simpleDependency/expectedOutput-2.0/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-2.0/output.txt similarity index 100% rename from test/simpleDependency/expectedOutput-2.0/output.txt rename to test/comparison-tests/simpleDependency/expectedOutput-2.0/output.txt diff --git a/test/simpleDependency/expectedOutput-2.0/patch0/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-2.0/patch0/bundle.js similarity index 100% rename from test/simpleDependency/expectedOutput-2.0/patch0/bundle.js rename to test/comparison-tests/simpleDependency/expectedOutput-2.0/patch0/bundle.js diff --git a/test/simpleDependency/expectedOutput-2.0/patch0/output.transpiled.txt b/test/comparison-tests/simpleDependency/expectedOutput-2.0/patch0/output.transpiled.txt similarity index 100% rename from test/simpleDependency/expectedOutput-2.0/patch0/output.transpiled.txt rename to test/comparison-tests/simpleDependency/expectedOutput-2.0/patch0/output.transpiled.txt diff --git a/test/simpleDependency/expectedOutput-2.0/patch0/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-2.0/patch0/output.txt similarity index 100% rename from test/simpleDependency/expectedOutput-2.0/patch0/output.txt rename to test/comparison-tests/simpleDependency/expectedOutput-2.0/patch0/output.txt diff --git a/test/simpleDependency/expectedOutput-2.0/patch1/bundle.js b/test/comparison-tests/simpleDependency/expectedOutput-2.0/patch1/bundle.js similarity index 100% rename from test/simpleDependency/expectedOutput-2.0/patch1/bundle.js rename to test/comparison-tests/simpleDependency/expectedOutput-2.0/patch1/bundle.js diff --git a/test/simpleDependency/expectedOutput-2.0/patch1/output.txt b/test/comparison-tests/simpleDependency/expectedOutput-2.0/patch1/output.txt similarity index 100% rename from test/simpleDependency/expectedOutput-2.0/patch1/output.txt rename to test/comparison-tests/simpleDependency/expectedOutput-2.0/patch1/output.txt diff --git a/test/simpleDependency/patch0/deeperDep.ts b/test/comparison-tests/simpleDependency/patch0/deeperDep.ts similarity index 100% rename from test/simpleDependency/patch0/deeperDep.ts rename to test/comparison-tests/simpleDependency/patch0/deeperDep.ts diff --git a/test/simpleDependency/patch1/deeperDep.ts b/test/comparison-tests/simpleDependency/patch1/deeperDep.ts similarity index 100% rename from test/simpleDependency/patch1/deeperDep.ts rename to test/comparison-tests/simpleDependency/patch1/deeperDep.ts diff --git a/test/simpleDependency/tsconfig.json b/test/comparison-tests/simpleDependency/tsconfig.json similarity index 100% rename from test/simpleDependency/tsconfig.json rename to test/comparison-tests/simpleDependency/tsconfig.json diff --git a/test/simpleDependency/webpack.config.js b/test/comparison-tests/simpleDependency/webpack.config.js similarity index 100% rename from test/simpleDependency/webpack.config.js rename to test/comparison-tests/simpleDependency/webpack.config.js diff --git a/test/sourceMaps/a.ts b/test/comparison-tests/sourceMaps/a.ts similarity index 100% rename from test/sourceMaps/a.ts rename to test/comparison-tests/sourceMaps/a.ts diff --git a/test/sourceMaps/expectedOutput-1.6/bundle.js b/test/comparison-tests/sourceMaps/expectedOutput-1.6/bundle.js similarity index 100% rename from test/sourceMaps/expectedOutput-1.6/bundle.js rename to test/comparison-tests/sourceMaps/expectedOutput-1.6/bundle.js diff --git a/test/sourceMaps/expectedOutput-1.6/bundle.js.map b/test/comparison-tests/sourceMaps/expectedOutput-1.6/bundle.js.map similarity index 100% rename from test/sourceMaps/expectedOutput-1.6/bundle.js.map rename to test/comparison-tests/sourceMaps/expectedOutput-1.6/bundle.js.map diff --git a/test/sourceMaps/expectedOutput-1.6/output.txt b/test/comparison-tests/sourceMaps/expectedOutput-1.6/output.txt similarity index 100% rename from test/sourceMaps/expectedOutput-1.6/output.txt rename to test/comparison-tests/sourceMaps/expectedOutput-1.6/output.txt diff --git a/test/sourceMaps/expectedOutput-1.7/bundle.js b/test/comparison-tests/sourceMaps/expectedOutput-1.7/bundle.js similarity index 100% rename from test/sourceMaps/expectedOutput-1.7/bundle.js rename to test/comparison-tests/sourceMaps/expectedOutput-1.7/bundle.js diff --git a/test/sourceMaps/expectedOutput-1.7/bundle.js.map b/test/comparison-tests/sourceMaps/expectedOutput-1.7/bundle.js.map similarity index 100% rename from test/sourceMaps/expectedOutput-1.7/bundle.js.map rename to test/comparison-tests/sourceMaps/expectedOutput-1.7/bundle.js.map diff --git a/test/sourceMaps/expectedOutput-1.7/output.txt b/test/comparison-tests/sourceMaps/expectedOutput-1.7/output.txt similarity index 100% rename from test/sourceMaps/expectedOutput-1.7/output.txt rename to test/comparison-tests/sourceMaps/expectedOutput-1.7/output.txt diff --git a/test/sourceMaps/expectedOutput-1.8/bundle.js b/test/comparison-tests/sourceMaps/expectedOutput-1.8/bundle.js similarity index 100% rename from test/sourceMaps/expectedOutput-1.8/bundle.js rename to test/comparison-tests/sourceMaps/expectedOutput-1.8/bundle.js diff --git a/test/sourceMaps/expectedOutput-1.8/bundle.js.map b/test/comparison-tests/sourceMaps/expectedOutput-1.8/bundle.js.map similarity index 100% rename from test/sourceMaps/expectedOutput-1.8/bundle.js.map rename to test/comparison-tests/sourceMaps/expectedOutput-1.8/bundle.js.map diff --git a/test/sourceMaps/expectedOutput-1.8/bundle.js.transpiled.map b/test/comparison-tests/sourceMaps/expectedOutput-1.8/bundle.js.transpiled.map similarity index 100% rename from test/sourceMaps/expectedOutput-1.8/bundle.js.transpiled.map rename to test/comparison-tests/sourceMaps/expectedOutput-1.8/bundle.js.transpiled.map diff --git a/test/sourceMaps/expectedOutput-1.8/bundle.transpiled.js b/test/comparison-tests/sourceMaps/expectedOutput-1.8/bundle.transpiled.js similarity index 100% rename from test/sourceMaps/expectedOutput-1.8/bundle.transpiled.js rename to test/comparison-tests/sourceMaps/expectedOutput-1.8/bundle.transpiled.js diff --git a/test/sourceMaps/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/sourceMaps/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/sourceMaps/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/sourceMaps/expectedOutput-1.8/output.transpiled.txt diff --git a/test/sourceMaps/expectedOutput-1.8/output.txt b/test/comparison-tests/sourceMaps/expectedOutput-1.8/output.txt similarity index 100% rename from test/sourceMaps/expectedOutput-1.8/output.txt rename to test/comparison-tests/sourceMaps/expectedOutput-1.8/output.txt diff --git a/test/sourceMaps/expectedOutput-2.0/bundle.js b/test/comparison-tests/sourceMaps/expectedOutput-2.0/bundle.js similarity index 100% rename from test/sourceMaps/expectedOutput-2.0/bundle.js rename to test/comparison-tests/sourceMaps/expectedOutput-2.0/bundle.js diff --git a/test/sourceMaps/expectedOutput-2.0/bundle.js.map b/test/comparison-tests/sourceMaps/expectedOutput-2.0/bundle.js.map similarity index 100% rename from test/sourceMaps/expectedOutput-2.0/bundle.js.map rename to test/comparison-tests/sourceMaps/expectedOutput-2.0/bundle.js.map diff --git a/test/sourceMaps/expectedOutput-2.0/bundle.js.transpiled.map b/test/comparison-tests/sourceMaps/expectedOutput-2.0/bundle.js.transpiled.map similarity index 100% rename from test/sourceMaps/expectedOutput-2.0/bundle.js.transpiled.map rename to test/comparison-tests/sourceMaps/expectedOutput-2.0/bundle.js.transpiled.map diff --git a/test/sourceMaps/expectedOutput-2.0/bundle.transpiled.js b/test/comparison-tests/sourceMaps/expectedOutput-2.0/bundle.transpiled.js similarity index 100% rename from test/sourceMaps/expectedOutput-2.0/bundle.transpiled.js rename to test/comparison-tests/sourceMaps/expectedOutput-2.0/bundle.transpiled.js diff --git a/test/sourceMaps/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/sourceMaps/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/sourceMaps/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/sourceMaps/expectedOutput-2.0/output.transpiled.txt diff --git a/test/sourceMaps/expectedOutput-2.0/output.txt b/test/comparison-tests/sourceMaps/expectedOutput-2.0/output.txt similarity index 100% rename from test/sourceMaps/expectedOutput-2.0/output.txt rename to test/comparison-tests/sourceMaps/expectedOutput-2.0/output.txt diff --git a/test/sourceMaps/tsconfig.json b/test/comparison-tests/sourceMaps/tsconfig.json similarity index 100% rename from test/sourceMaps/tsconfig.json rename to test/comparison-tests/sourceMaps/tsconfig.json diff --git a/test/sourceMaps/webpack.config.js b/test/comparison-tests/sourceMaps/webpack.config.js similarity index 100% rename from test/sourceMaps/webpack.config.js rename to test/comparison-tests/sourceMaps/webpack.config.js diff --git a/test/stub-new-version.js b/test/comparison-tests/stub-new-version.js similarity index 100% rename from test/stub-new-version.js rename to test/comparison-tests/stub-new-version.js diff --git a/test/testLib/foo.ts b/test/comparison-tests/testLib/foo.ts similarity index 100% rename from test/testLib/foo.ts rename to test/comparison-tests/testLib/foo.ts diff --git a/test/testLib/package.json b/test/comparison-tests/testLib/package.json similarity index 100% rename from test/testLib/package.json rename to test/comparison-tests/testLib/package.json diff --git a/test/tsconfigInvalid/app.ts b/test/comparison-tests/tsconfigInvalid/app.ts similarity index 100% rename from test/tsconfigInvalid/app.ts rename to test/comparison-tests/tsconfigInvalid/app.ts diff --git a/test/tsconfigInvalid/expectedOutput-1.6/output.txt b/test/comparison-tests/tsconfigInvalid/expectedOutput-1.6/output.txt similarity index 100% rename from test/tsconfigInvalid/expectedOutput-1.6/output.txt rename to test/comparison-tests/tsconfigInvalid/expectedOutput-1.6/output.txt diff --git a/test/tsconfigInvalid/expectedOutput-1.7/output.txt b/test/comparison-tests/tsconfigInvalid/expectedOutput-1.7/output.txt similarity index 100% rename from test/tsconfigInvalid/expectedOutput-1.7/output.txt rename to test/comparison-tests/tsconfigInvalid/expectedOutput-1.7/output.txt diff --git a/test/tsconfigInvalid/expectedOutput-1.8/output.txt b/test/comparison-tests/tsconfigInvalid/expectedOutput-1.8/output.txt similarity index 100% rename from test/tsconfigInvalid/expectedOutput-1.8/output.txt rename to test/comparison-tests/tsconfigInvalid/expectedOutput-1.8/output.txt diff --git a/test/tsconfigInvalid/expectedOutput-2.0/output.txt b/test/comparison-tests/tsconfigInvalid/expectedOutput-2.0/output.txt similarity index 100% rename from test/tsconfigInvalid/expectedOutput-2.0/output.txt rename to test/comparison-tests/tsconfigInvalid/expectedOutput-2.0/output.txt diff --git a/test/tsconfigInvalid/tsconfig.json b/test/comparison-tests/tsconfigInvalid/tsconfig.json similarity index 100% rename from test/tsconfigInvalid/tsconfig.json rename to test/comparison-tests/tsconfigInvalid/tsconfig.json diff --git a/test/tsconfigInvalid/webpack.config.js b/test/comparison-tests/tsconfigInvalid/webpack.config.js similarity index 100% rename from test/tsconfigInvalid/webpack.config.js rename to test/comparison-tests/tsconfigInvalid/webpack.config.js diff --git a/test/tsconfigInvalidFile/app.ts b/test/comparison-tests/tsconfigInvalidFile/app.ts similarity index 100% rename from test/tsconfigInvalidFile/app.ts rename to test/comparison-tests/tsconfigInvalidFile/app.ts diff --git a/test/tsconfigInvalidFile/expectedOutput-1.6/bundle.transpiled.js b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.6/bundle.transpiled.js similarity index 100% rename from test/tsconfigInvalidFile/expectedOutput-1.6/bundle.transpiled.js rename to test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.6/bundle.transpiled.js diff --git a/test/tsconfigInvalidFile/expectedOutput-1.6/output.transpiled.txt b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.6/output.transpiled.txt similarity index 100% rename from test/tsconfigInvalidFile/expectedOutput-1.6/output.transpiled.txt rename to test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.6/output.transpiled.txt diff --git a/test/tsconfigInvalidFile/expectedOutput-1.6/output.txt b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.6/output.txt similarity index 100% rename from test/tsconfigInvalidFile/expectedOutput-1.6/output.txt rename to test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.6/output.txt diff --git a/test/tsconfigInvalidFile/expectedOutput-1.7/bundle.transpiled.js b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.7/bundle.transpiled.js similarity index 100% rename from test/tsconfigInvalidFile/expectedOutput-1.7/bundle.transpiled.js rename to test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.7/bundle.transpiled.js diff --git a/test/tsconfigInvalidFile/expectedOutput-1.7/output.transpiled.txt b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.7/output.transpiled.txt similarity index 100% rename from test/tsconfigInvalidFile/expectedOutput-1.7/output.transpiled.txt rename to test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.7/output.transpiled.txt diff --git a/test/tsconfigInvalidFile/expectedOutput-1.7/output.txt b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.7/output.txt similarity index 100% rename from test/tsconfigInvalidFile/expectedOutput-1.7/output.txt rename to test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.7/output.txt diff --git a/test/tsconfigInvalidFile/expectedOutput-1.8/bundle.transpiled.js b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.8/bundle.transpiled.js similarity index 100% rename from test/tsconfigInvalidFile/expectedOutput-1.8/bundle.transpiled.js rename to test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.8/bundle.transpiled.js diff --git a/test/tsconfigInvalidFile/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/tsconfigInvalidFile/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.8/output.transpiled.txt diff --git a/test/tsconfigInvalidFile/expectedOutput-1.8/output.txt b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.8/output.txt similarity index 100% rename from test/tsconfigInvalidFile/expectedOutput-1.8/output.txt rename to test/comparison-tests/tsconfigInvalidFile/expectedOutput-1.8/output.txt diff --git a/test/tsconfigInvalidFile/expectedOutput-2.0/bundle.transpiled.js b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.0/bundle.transpiled.js similarity index 100% rename from test/tsconfigInvalidFile/expectedOutput-2.0/bundle.transpiled.js rename to test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.0/bundle.transpiled.js diff --git a/test/tsconfigInvalidFile/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/tsconfigInvalidFile/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.0/output.transpiled.txt diff --git a/test/tsconfigInvalidFile/expectedOutput-2.0/output.txt b/test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.0/output.txt similarity index 100% rename from test/tsconfigInvalidFile/expectedOutput-2.0/output.txt rename to test/comparison-tests/tsconfigInvalidFile/expectedOutput-2.0/output.txt diff --git a/test/tsconfigInvalidFile/tsconfig.json b/test/comparison-tests/tsconfigInvalidFile/tsconfig.json similarity index 100% rename from test/tsconfigInvalidFile/tsconfig.json rename to test/comparison-tests/tsconfigInvalidFile/tsconfig.json diff --git a/test/tsconfigInvalidFile/webpack.config.js b/test/comparison-tests/tsconfigInvalidFile/webpack.config.js similarity index 100% rename from test/tsconfigInvalidFile/webpack.config.js rename to test/comparison-tests/tsconfigInvalidFile/webpack.config.js diff --git a/test/tsconfigSearch/expectedOutput-1.6/bundle.js b/test/comparison-tests/tsconfigSearch/expectedOutput-1.6/bundle.js similarity index 100% rename from test/tsconfigSearch/expectedOutput-1.6/bundle.js rename to test/comparison-tests/tsconfigSearch/expectedOutput-1.6/bundle.js diff --git a/test/tsconfigSearch/expectedOutput-1.6/output.txt b/test/comparison-tests/tsconfigSearch/expectedOutput-1.6/output.txt similarity index 100% rename from test/tsconfigSearch/expectedOutput-1.6/output.txt rename to test/comparison-tests/tsconfigSearch/expectedOutput-1.6/output.txt diff --git a/test/tsconfigSearch/expectedOutput-1.7/bundle.js b/test/comparison-tests/tsconfigSearch/expectedOutput-1.7/bundle.js similarity index 100% rename from test/tsconfigSearch/expectedOutput-1.7/bundle.js rename to test/comparison-tests/tsconfigSearch/expectedOutput-1.7/bundle.js diff --git a/test/tsconfigSearch/expectedOutput-1.7/output.txt b/test/comparison-tests/tsconfigSearch/expectedOutput-1.7/output.txt similarity index 100% rename from test/tsconfigSearch/expectedOutput-1.7/output.txt rename to test/comparison-tests/tsconfigSearch/expectedOutput-1.7/output.txt diff --git a/test/tsconfigSearch/expectedOutput-1.8/bundle.js b/test/comparison-tests/tsconfigSearch/expectedOutput-1.8/bundle.js similarity index 100% rename from test/tsconfigSearch/expectedOutput-1.8/bundle.js rename to test/comparison-tests/tsconfigSearch/expectedOutput-1.8/bundle.js diff --git a/test/tsconfigSearch/expectedOutput-1.8/output.txt b/test/comparison-tests/tsconfigSearch/expectedOutput-1.8/output.txt similarity index 100% rename from test/tsconfigSearch/expectedOutput-1.8/output.txt rename to test/comparison-tests/tsconfigSearch/expectedOutput-1.8/output.txt diff --git a/test/tsconfigSearch/expectedOutput-2.0/bundle.js b/test/comparison-tests/tsconfigSearch/expectedOutput-2.0/bundle.js similarity index 100% rename from test/tsconfigSearch/expectedOutput-2.0/bundle.js rename to test/comparison-tests/tsconfigSearch/expectedOutput-2.0/bundle.js diff --git a/test/tsconfigSearch/expectedOutput-2.0/output.txt b/test/comparison-tests/tsconfigSearch/expectedOutput-2.0/output.txt similarity index 100% rename from test/tsconfigSearch/expectedOutput-2.0/output.txt rename to test/comparison-tests/tsconfigSearch/expectedOutput-2.0/output.txt diff --git a/test/tsconfigSearch/lib/externalLib.d.ts b/test/comparison-tests/tsconfigSearch/lib/externalLib.d.ts similarity index 100% rename from test/tsconfigSearch/lib/externalLib.d.ts rename to test/comparison-tests/tsconfigSearch/lib/externalLib.d.ts diff --git a/test/tsconfigSearch/lib/externalLib.js b/test/comparison-tests/tsconfigSearch/lib/externalLib.js similarity index 100% rename from test/tsconfigSearch/lib/externalLib.js rename to test/comparison-tests/tsconfigSearch/lib/externalLib.js diff --git a/test/tsconfigSearch/src/app.ts b/test/comparison-tests/tsconfigSearch/src/app.ts similarity index 100% rename from test/tsconfigSearch/src/app.ts rename to test/comparison-tests/tsconfigSearch/src/app.ts diff --git a/test/tsconfigSearch/tsconfig.json b/test/comparison-tests/tsconfigSearch/tsconfig.json similarity index 100% rename from test/tsconfigSearch/tsconfig.json rename to test/comparison-tests/tsconfigSearch/tsconfig.json diff --git a/test/tsconfigSearch/webpack.config.js b/test/comparison-tests/tsconfigSearch/webpack.config.js similarity index 100% rename from test/tsconfigSearch/webpack.config.js rename to test/comparison-tests/tsconfigSearch/webpack.config.js diff --git a/test/typeSystemWatch/app.ts b/test/comparison-tests/typeSystemWatch/app.ts similarity index 100% rename from test/typeSystemWatch/app.ts rename to test/comparison-tests/typeSystemWatch/app.ts diff --git a/test/typeSystemWatch/expectedOutput-1.6/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-1.6/bundle.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.6/bundle.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.6/bundle.js diff --git a/test/typeSystemWatch/expectedOutput-1.6/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.6/output.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.6/output.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.6/output.txt diff --git a/test/typeSystemWatch/expectedOutput-1.6/patch0/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-1.6/patch0/bundle.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.6/patch0/bundle.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.6/patch0/bundle.js diff --git a/test/typeSystemWatch/expectedOutput-1.6/patch0/output.transpiled.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.6/patch0/output.transpiled.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.6/patch0/output.transpiled.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.6/patch0/output.transpiled.txt diff --git a/test/typeSystemWatch/expectedOutput-1.6/patch0/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.6/patch0/output.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.6/patch0/output.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.6/patch0/output.txt diff --git a/test/typeSystemWatch/expectedOutput-1.6/patch1/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-1.6/patch1/bundle.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.6/patch1/bundle.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.6/patch1/bundle.js diff --git a/test/typeSystemWatch/expectedOutput-1.6/patch1/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.6/patch1/output.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.6/patch1/output.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.6/patch1/output.txt diff --git a/test/typeSystemWatch/expectedOutput-1.7/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-1.7/bundle.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.7/bundle.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.7/bundle.js diff --git a/test/typeSystemWatch/expectedOutput-1.7/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.7/output.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.7/output.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.7/output.txt diff --git a/test/typeSystemWatch/expectedOutput-1.7/patch0/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-1.7/patch0/bundle.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.7/patch0/bundle.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.7/patch0/bundle.js diff --git a/test/typeSystemWatch/expectedOutput-1.7/patch0/output.transpiled.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.7/patch0/output.transpiled.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.7/patch0/output.transpiled.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.7/patch0/output.transpiled.txt diff --git a/test/typeSystemWatch/expectedOutput-1.7/patch0/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.7/patch0/output.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.7/patch0/output.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.7/patch0/output.txt diff --git a/test/typeSystemWatch/expectedOutput-1.7/patch1/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-1.7/patch1/bundle.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.7/patch1/bundle.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.7/patch1/bundle.js diff --git a/test/typeSystemWatch/expectedOutput-1.7/patch1/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.7/patch1/output.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.7/patch1/output.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.7/patch1/output.txt diff --git a/test/typeSystemWatch/expectedOutput-1.8/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-1.8/bundle.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.8/bundle.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.8/bundle.js diff --git a/test/typeSystemWatch/expectedOutput-1.8/bundle.transpiled.js b/test/comparison-tests/typeSystemWatch/expectedOutput-1.8/bundle.transpiled.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.8/bundle.transpiled.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.8/bundle.transpiled.js diff --git a/test/typeSystemWatch/expectedOutput-1.8/output.transpiled.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.8/output.transpiled.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.8/output.transpiled.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.8/output.transpiled.txt diff --git a/test/typeSystemWatch/expectedOutput-1.8/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.8/output.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.8/output.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.8/output.txt diff --git a/test/typeSystemWatch/expectedOutput-1.8/patch0/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch0/bundle.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.8/patch0/bundle.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch0/bundle.js diff --git a/test/typeSystemWatch/expectedOutput-1.8/patch0/bundle.transpiled.js b/test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch0/bundle.transpiled.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.8/patch0/bundle.transpiled.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch0/bundle.transpiled.js diff --git a/test/typeSystemWatch/expectedOutput-1.8/patch0/output.transpiled.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch0/output.transpiled.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.8/patch0/output.transpiled.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch0/output.transpiled.txt diff --git a/test/typeSystemWatch/expectedOutput-1.8/patch0/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch0/output.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.8/patch0/output.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch0/output.txt diff --git a/test/typeSystemWatch/expectedOutput-1.8/patch1/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch1/bundle.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.8/patch1/bundle.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch1/bundle.js diff --git a/test/typeSystemWatch/expectedOutput-1.8/patch1/bundle.transpiled.js b/test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch1/bundle.transpiled.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.8/patch1/bundle.transpiled.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch1/bundle.transpiled.js diff --git a/test/typeSystemWatch/expectedOutput-1.8/patch1/output.transpiled.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch1/output.transpiled.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.8/patch1/output.transpiled.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch1/output.transpiled.txt diff --git a/test/typeSystemWatch/expectedOutput-1.8/patch1/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch1/output.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-1.8/patch1/output.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-1.8/patch1/output.txt diff --git a/test/typeSystemWatch/expectedOutput-2.0/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-2.0/bundle.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-2.0/bundle.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-2.0/bundle.js diff --git a/test/typeSystemWatch/expectedOutput-2.0/bundle.transpiled.js b/test/comparison-tests/typeSystemWatch/expectedOutput-2.0/bundle.transpiled.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-2.0/bundle.transpiled.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-2.0/bundle.transpiled.js diff --git a/test/typeSystemWatch/expectedOutput-2.0/output.transpiled.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-2.0/output.transpiled.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-2.0/output.transpiled.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-2.0/output.transpiled.txt diff --git a/test/typeSystemWatch/expectedOutput-2.0/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-2.0/output.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-2.0/output.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-2.0/output.txt diff --git a/test/typeSystemWatch/expectedOutput-2.0/patch0/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch0/bundle.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-2.0/patch0/bundle.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch0/bundle.js diff --git a/test/typeSystemWatch/expectedOutput-2.0/patch0/bundle.transpiled.js b/test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch0/bundle.transpiled.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-2.0/patch0/bundle.transpiled.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch0/bundle.transpiled.js diff --git a/test/typeSystemWatch/expectedOutput-2.0/patch0/output.transpiled.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch0/output.transpiled.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-2.0/patch0/output.transpiled.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch0/output.transpiled.txt diff --git a/test/typeSystemWatch/expectedOutput-2.0/patch0/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch0/output.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-2.0/patch0/output.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch0/output.txt diff --git a/test/typeSystemWatch/expectedOutput-2.0/patch1/bundle.js b/test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch1/bundle.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-2.0/patch1/bundle.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch1/bundle.js diff --git a/test/typeSystemWatch/expectedOutput-2.0/patch1/bundle.transpiled.js b/test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch1/bundle.transpiled.js similarity index 100% rename from test/typeSystemWatch/expectedOutput-2.0/patch1/bundle.transpiled.js rename to test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch1/bundle.transpiled.js diff --git a/test/typeSystemWatch/expectedOutput-2.0/patch1/output.transpiled.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch1/output.transpiled.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-2.0/patch1/output.transpiled.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch1/output.transpiled.txt diff --git a/test/typeSystemWatch/expectedOutput-2.0/patch1/output.txt b/test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch1/output.txt similarity index 100% rename from test/typeSystemWatch/expectedOutput-2.0/patch1/output.txt rename to test/comparison-tests/typeSystemWatch/expectedOutput-2.0/patch1/output.txt diff --git a/test/typeSystemWatch/patch0/app.ts b/test/comparison-tests/typeSystemWatch/patch0/app.ts similarity index 100% rename from test/typeSystemWatch/patch0/app.ts rename to test/comparison-tests/typeSystemWatch/patch0/app.ts diff --git a/test/typeSystemWatch/patch1/app.ts b/test/comparison-tests/typeSystemWatch/patch1/app.ts similarity index 100% rename from test/typeSystemWatch/patch1/app.ts rename to test/comparison-tests/typeSystemWatch/patch1/app.ts diff --git a/test/typeSystemWatch/tsconfig.json b/test/comparison-tests/typeSystemWatch/tsconfig.json similarity index 100% rename from test/typeSystemWatch/tsconfig.json rename to test/comparison-tests/typeSystemWatch/tsconfig.json diff --git a/test/typeSystemWatch/webpack.config.js b/test/comparison-tests/typeSystemWatch/webpack.config.js similarity index 100% rename from test/typeSystemWatch/webpack.config.js rename to test/comparison-tests/typeSystemWatch/webpack.config.js diff --git a/test/execution-tests/2.0.3_es2016/karma.conf.js b/test/execution-tests/2.0.3_es2016/karma.conf.js new file mode 100644 index 000000000..903ae52cd --- /dev/null +++ b/test/execution-tests/2.0.3_es2016/karma.conf.js @@ -0,0 +1,55 @@ +/* eslint-disable no-var, strict */ +'use strict'; +var path = require('path'); +var webpack = require('webpack'); +var webpackConfig = require('./webpack.config.js'); + +module.exports = function(config) { + config.set({ + browsers: [ 'PhantomJS' ], + + files: [ + // This ensures we have the es6 shims in place from babel and then loads all the tests + 'main.js' + ], + + port: 9876, + + frameworks: [ 'jasmine' ], + + logLevel: config.LOG_INFO, //config.LOG_DEBUG + + preprocessors: { + 'main.js': [ 'webpack', 'sourcemap' ] + }, + + webpack: { + devtool: 'inline-source-map', + debug: true, + module: { + loaders: webpackConfig.module.loaders + }, + resolve: webpackConfig.resolve, + + // for test harness purposes only, you would not need this in a normal project + resolveLoader: webpackConfig.resolveLoader + }, + + webpackMiddleware: { + quiet: true, + stats: { + colors: true + } + }, + + // reporter options + mochaReporter: { + colors: { + success: 'bgGreen', + info: 'cyan', + warning: 'bgBlue', + error: 'bgRed' + } + } + }); +}; diff --git a/test/execution-tests/2.0.3_es2016/main.js b/test/execution-tests/2.0.3_es2016/main.js new file mode 100644 index 000000000..b295c4ef2 --- /dev/null +++ b/test/execution-tests/2.0.3_es2016/main.js @@ -0,0 +1,4 @@ +import 'babel-polyfill'; + +const testsContext = require.context('./', true, /\.tests\.ts(x?)$/); +testsContext.keys().forEach(testsContext); diff --git a/test/execution-tests/2.0.3_es2016/src/simple.ts b/test/execution-tests/2.0.3_es2016/src/simple.ts new file mode 100644 index 000000000..9fa293c4c --- /dev/null +++ b/test/execution-tests/2.0.3_es2016/src/simple.ts @@ -0,0 +1,3 @@ +export function adder(num1: number, num2: number) { + return num1 + num2; +} diff --git a/test/execution-tests/2.0.3_es2016/test/simple.tests.ts b/test/execution-tests/2.0.3_es2016/test/simple.tests.ts new file mode 100644 index 000000000..498a7a60a --- /dev/null +++ b/test/execution-tests/2.0.3_es2016/test/simple.tests.ts @@ -0,0 +1,16 @@ +import { adder } from "../src/simple"; + +describe("simple", () => { + it("adder can add 2 numbers", () => { + expect(adder(1, 4)).toBe(5); + }); + + it("Array.prototype.includes works", () => { + const result = [1, 2, 3].includes(2); + expect(result).toBe(true); + }); + + it("Exponentiation operator works", () => { + expect(1 ** 2 === Math.pow(1, 2)).toBe(true); + }); +}); diff --git a/test/execution-tests/2.0.3_es2016/tsconfig.json b/test/execution-tests/2.0.3_es2016/tsconfig.json new file mode 100644 index 000000000..efd9c8a64 --- /dev/null +++ b/test/execution-tests/2.0.3_es2016/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "allowSyntheticDefaultImports": true, + "lib": ["dom", "es2015", "es2016"], + "module": "es2015", + "moduleResolution": "node", + "noEmitOnError": false, + "noImplicitAny": true, + "preserveConstEnums": true, + "removeComments": false, + "suppressImplicitAnyIndexErrors": true, + "target": "es2015" + } +} \ No newline at end of file diff --git a/test/execution-tests/2.0.3_es2016/typings.json b/test/execution-tests/2.0.3_es2016/typings.json new file mode 100644 index 000000000..29937d345 --- /dev/null +++ b/test/execution-tests/2.0.3_es2016/typings.json @@ -0,0 +1,7 @@ +{ + "name": "simple", + "version": false, + "globalDependencies": { + "jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#fe563dff3428bac1260d1794e2c2ecf8f097535a" + } +} diff --git a/test/execution-tests/2.0.3_es2016/typings/globals/jasmine/index.d.ts b/test/execution-tests/2.0.3_es2016/typings/globals/jasmine/index.d.ts new file mode 100644 index 000000000..610b7ecd4 --- /dev/null +++ b/test/execution-tests/2.0.3_es2016/typings/globals/jasmine/index.d.ts @@ -0,0 +1,489 @@ +// Generated by typings +// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/fe563dff3428bac1260d1794e2c2ecf8f097535a/jasmine/jasmine.d.ts +declare function describe(description: string, specDefinitions: () => void): void; +declare function fdescribe(description: string, specDefinitions: () => void): void; +declare function xdescribe(description: string, specDefinitions: () => void): void; + +declare function it(expectation: string, assertion?: () => void, timeout?: number): void; +declare function it(expectation: string, assertion?: (done: () => void) => void, timeout?: number): void; +declare function fit(expectation: string, assertion?: () => void, timeout?: number): void; +declare function fit(expectation: string, assertion?: (done: () => void) => void, timeout?: number): void; +declare function xit(expectation: string, assertion?: () => void, timeout?: number): void; +declare function xit(expectation: string, assertion?: (done: () => void) => void, timeout?: number): void; + +/** If you call the function pending anywhere in the spec body, no matter the expectations, the spec will be marked pending. */ +declare function pending(reason?: string): void; + +declare function beforeEach(action: () => void, timeout?: number): void; +declare function beforeEach(action: (done: () => void) => void, timeout?: number): void; +declare function afterEach(action: () => void, timeout?: number): void; +declare function afterEach(action: (done: () => void) => void, timeout?: number): void; + +declare function beforeAll(action: () => void, timeout?: number): void; +declare function beforeAll(action: (done: () => void) => void, timeout?: number): void; +declare function afterAll(action: () => void, timeout?: number): void; +declare function afterAll(action: (done: () => void) => void, timeout?: number): void; + +declare function expect(spy: Function): jasmine.Matchers; +declare function expect(actual: any): jasmine.Matchers; + +declare function fail(e?: any): void; + +declare function spyOn(object: any, method: string): jasmine.Spy; + +declare function runs(asyncMethod: Function): void; +declare function waitsFor(latchMethod: () => boolean, failureMessage?: string, timeout?: number): void; +declare function waits(timeout?: number): void; + +declare module jasmine { + + var clock: () => Clock; + + function any(aclass: any): Any; + function anything(): Any; + function arrayContaining(sample: any[]): ArrayContaining; + function objectContaining(sample: any): ObjectContaining; + function createSpy(name: string, originalFn?: Function): Spy; + function createSpyObj(baseName: string, methodNames: any[]): any; + function createSpyObj(baseName: string, methodNames: any[]): T; + function pp(value: any): string; + function getEnv(): Env; + function addCustomEqualityTester(equalityTester: CustomEqualityTester): void; + function addMatchers(matchers: CustomMatcherFactories): void; + function stringMatching(str: string): Any; + function stringMatching(str: RegExp): Any; + + interface Any { + + new (expectedClass: any): any; + + jasmineMatches(other: any): boolean; + jasmineToString(): string; + } + + // taken from TypeScript lib.core.es6.d.ts, applicable to CustomMatchers.contains() + interface ArrayLike { + length: number; + [n: number]: T; + } + + interface ArrayContaining { + new (sample: any[]): any; + + asymmetricMatch(other: any): boolean; + jasmineToString(): string; + } + + interface ObjectContaining { + new (sample: any): any; + + jasmineMatches(other: any, mismatchKeys: any[], mismatchValues: any[]): boolean; + jasmineToString(): string; + } + + interface Block { + + new (env: Env, func: SpecFunction, spec: Spec): any; + + execute(onComplete: () => void): void; + } + + interface WaitsBlock extends Block { + new (env: Env, timeout: number, spec: Spec): any; + } + + interface WaitsForBlock extends Block { + new (env: Env, timeout: number, latchFunction: SpecFunction, message: string, spec: Spec): any; + } + + interface Clock { + install(): void; + uninstall(): void; + /** Calls to any registered callback are triggered when the clock is ticked forward via the jasmine.clock().tick function, which takes a number of milliseconds. */ + tick(ms: number): void; + mockDate(date?: Date): void; + } + + interface CustomEqualityTester { + (first: any, second: any): boolean; + } + + interface CustomMatcher { + compare(actual: T, expected: T): CustomMatcherResult; + compare(actual: any, expected: any): CustomMatcherResult; + } + + interface CustomMatcherFactory { + (util: MatchersUtil, customEqualityTesters: Array): CustomMatcher; + } + + interface CustomMatcherFactories { + [index: string]: CustomMatcherFactory; + } + + interface CustomMatcherResult { + pass: boolean; + message?: string; + } + + interface MatchersUtil { + equals(a: any, b: any, customTesters?: Array): boolean; + contains(haystack: ArrayLike | string, needle: any, customTesters?: Array): boolean; + buildFailureMessage(matcherName: string, isNot: boolean, actual: any, ...expected: Array): string; + } + + interface Env { + setTimeout: any; + clearTimeout: void; + setInterval: any; + clearInterval: void; + updateInterval: number; + + currentSpec: Spec; + + matchersClass: Matchers; + + version(): any; + versionString(): string; + nextSpecId(): number; + addReporter(reporter: Reporter): void; + execute(): void; + describe(description: string, specDefinitions: () => void): Suite; + // ddescribe(description: string, specDefinitions: () => void): Suite; Not a part of jasmine. Angular team adds these + beforeEach(beforeEachFunction: () => void): void; + beforeAll(beforeAllFunction: () => void): void; + currentRunner(): Runner; + afterEach(afterEachFunction: () => void): void; + afterAll(afterAllFunction: () => void): void; + xdescribe(desc: string, specDefinitions: () => void): XSuite; + it(description: string, func: () => void): Spec; + // iit(description: string, func: () => void): Spec; Not a part of jasmine. Angular team adds these + xit(desc: string, func: () => void): XSpec; + compareRegExps_(a: RegExp, b: RegExp, mismatchKeys: string[], mismatchValues: string[]): boolean; + compareObjects_(a: any, b: any, mismatchKeys: string[], mismatchValues: string[]): boolean; + equals_(a: any, b: any, mismatchKeys: string[], mismatchValues: string[]): boolean; + contains_(haystack: any, needle: any): boolean; + addCustomEqualityTester(equalityTester: CustomEqualityTester): void; + addMatchers(matchers: CustomMatcherFactories): void; + specFilter(spec: Spec): boolean; + } + + interface FakeTimer { + + new (): any; + + reset(): void; + tick(millis: number): void; + runFunctionsWithinRange(oldMillis: number, nowMillis: number): void; + scheduleFunction(timeoutKey: any, funcToCall: () => void, millis: number, recurring: boolean): void; + } + + interface HtmlReporter { + new (): any; + } + + interface HtmlSpecFilter { + new (): any; + } + + interface Result { + type: string; + } + + interface NestedResults extends Result { + description: string; + + totalCount: number; + passedCount: number; + failedCount: number; + + skipped: boolean; + + rollupCounts(result: NestedResults): void; + log(values: any): void; + getItems(): Result[]; + addResult(result: Result): void; + passed(): boolean; + } + + interface MessageResult extends Result { + values: any; + trace: Trace; + } + + interface ExpectationResult extends Result { + matcherName: string; + passed(): boolean; + expected: any; + actual: any; + message: string; + trace: Trace; + } + + interface Trace { + name: string; + message: string; + stack: any; + } + + interface PrettyPrinter { + + new (): any; + + format(value: any): void; + iterateObject(obj: any, fn: (property: string, isGetter: boolean) => void): void; + emitScalar(value: any): void; + emitString(value: string): void; + emitArray(array: any[]): void; + emitObject(obj: any): void; + append(value: any): void; + } + + interface StringPrettyPrinter extends PrettyPrinter { + } + + interface Queue { + + new (env: any): any; + + env: Env; + ensured: boolean[]; + blocks: Block[]; + running: boolean; + index: number; + offset: number; + abort: boolean; + + addBefore(block: Block, ensure?: boolean): void; + add(block: any, ensure?: boolean): void; + insertNext(block: any, ensure?: boolean): void; + start(onComplete?: () => void): void; + isRunning(): boolean; + next_(): void; + results(): NestedResults; + } + + interface Matchers { + + new (env: Env, actual: any, spec: Env, isNot?: boolean): any; + + env: Env; + actual: any; + spec: Env; + isNot?: boolean; + message(): any; + + toBe(expected: any, expectationFailOutput?: any): boolean; + toEqual(expected: any, expectationFailOutput?: any): boolean; + toMatch(expected: string | RegExp, expectationFailOutput?: any): boolean; + toBeDefined(expectationFailOutput?: any): boolean; + toBeUndefined(expectationFailOutput?: any): boolean; + toBeNull(expectationFailOutput?: any): boolean; + toBeNaN(): boolean; + toBeTruthy(expectationFailOutput?: any): boolean; + toBeFalsy(expectationFailOutput?: any): boolean; + toHaveBeenCalled(): boolean; + toHaveBeenCalledWith(...params: any[]): boolean; + toContain(expected: any, expectationFailOutput?: any): boolean; + toBeLessThan(expected: number, expectationFailOutput?: any): boolean; + toBeGreaterThan(expected: number, expectationFailOutput?: any): boolean; + toBeCloseTo(expected: number, precision: any, expectationFailOutput?: any): boolean; + toThrow(expected?: any): boolean; + toThrowError(message?: string | RegExp): boolean; + toThrowError(expected?: Error, message?: string | RegExp): boolean; + not: Matchers; + + Any: Any; + } + + interface Reporter { + reportRunnerStarting(runner: Runner): void; + reportRunnerResults(runner: Runner): void; + reportSuiteResults(suite: Suite): void; + reportSpecStarting(spec: Spec): void; + reportSpecResults(spec: Spec): void; + log(str: string): void; + } + + interface MultiReporter extends Reporter { + addReporter(reporter: Reporter): void; + } + + interface Runner { + + new (env: Env): any; + + execute(): void; + beforeEach(beforeEachFunction: SpecFunction): void; + afterEach(afterEachFunction: SpecFunction): void; + beforeAll(beforeAllFunction: SpecFunction): void; + afterAll(afterAllFunction: SpecFunction): void; + finishCallback(): void; + addSuite(suite: Suite): void; + add(block: Block): void; + specs(): Spec[]; + suites(): Suite[]; + topLevelSuites(): Suite[]; + results(): NestedResults; + } + + interface SpecFunction { + (spec?: Spec): void; + } + + interface SuiteOrSpec { + id: number; + env: Env; + description: string; + queue: Queue; + } + + interface Spec extends SuiteOrSpec { + + new (env: Env, suite: Suite, description: string): any; + + suite: Suite; + + afterCallbacks: SpecFunction[]; + spies_: Spy[]; + + results_: NestedResults; + matchersClass: Matchers; + + getFullName(): string; + results(): NestedResults; + log(arguments: any): any; + runs(func: SpecFunction): Spec; + addToQueue(block: Block): void; + addMatcherResult(result: Result): void; + expect(actual: any): any; + waits(timeout: number): Spec; + waitsFor(latchFunction: SpecFunction, timeoutMessage?: string, timeout?: number): Spec; + fail(e?: any): void; + getMatchersClass_(): Matchers; + addMatchers(matchersPrototype: CustomMatcherFactories): void; + finishCallback(): void; + finish(onComplete?: () => void): void; + after(doAfter: SpecFunction): void; + execute(onComplete?: () => void): any; + addBeforesAndAftersToQueue(): void; + explodes(): void; + spyOn(obj: any, methodName: string, ignoreMethodDoesntExist: boolean): Spy; + removeAllSpies(): void; + } + + interface XSpec { + id: number; + runs(): void; + } + + interface Suite extends SuiteOrSpec { + + new (env: Env, description: string, specDefinitions: () => void, parentSuite: Suite): any; + + parentSuite: Suite; + + getFullName(): string; + finish(onComplete?: () => void): void; + beforeEach(beforeEachFunction: SpecFunction): void; + afterEach(afterEachFunction: SpecFunction): void; + beforeAll(beforeAllFunction: SpecFunction): void; + afterAll(afterAllFunction: SpecFunction): void; + results(): NestedResults; + add(suiteOrSpec: SuiteOrSpec): void; + specs(): Spec[]; + suites(): Suite[]; + children(): any[]; + execute(onComplete?: () => void): void; + } + + interface XSuite { + execute(): void; + } + + interface Spy { + (...params: any[]): any; + + identity: string; + and: SpyAnd; + calls: Calls; + mostRecentCall: { args: any[]; }; + argsForCall: any[]; + wasCalled: boolean; + } + + interface SpyAnd { + /** By chaining the spy with and.callThrough, the spy will still track all calls to it but in addition it will delegate to the actual implementation. */ + callThrough(): Spy; + /** By chaining the spy with and.returnValue, all calls to the function will return a specific value. */ + returnValue(val: any): void; + /** By chaining the spy with and.callFake, all calls to the spy will delegate to the supplied function. */ + callFake(fn: Function): Spy; + /** By chaining the spy with and.throwError, all calls to the spy will throw the specified value. */ + throwError(msg: string): void; + /** When a calling strategy is used for a spy, the original stubbing behavior can be returned at any time with and.stub. */ + stub(): Spy; + } + + interface Calls { + /** By chaining the spy with calls.any(), will return false if the spy has not been called at all, and then true once at least one call happens. **/ + any(): boolean; + /** By chaining the spy with calls.count(), will return the number of times the spy was called **/ + count(): number; + /** By chaining the spy with calls.argsFor(), will return the arguments passed to call number index **/ + argsFor(index: number): any[]; + /** By chaining the spy with calls.allArgs(), will return the arguments to all calls **/ + allArgs(): any[]; + /** By chaining the spy with calls.all(), will return the context (the this) and arguments passed all calls **/ + all(): CallInfo[]; + /** By chaining the spy with calls.mostRecent(), will return the context (the this) and arguments for the most recent call **/ + mostRecent(): CallInfo; + /** By chaining the spy with calls.first(), will return the context (the this) and arguments for the first call **/ + first(): CallInfo; + /** By chaining the spy with calls.reset(), will clears all tracking for a spy **/ + reset(): void; + } + + interface CallInfo { + /** The context (the this) for the call */ + object: any; + /** All arguments passed to the call */ + args: any[]; + } + + interface Util { + inherit(childClass: Function, parentClass: Function): any; + formatException(e: any): any; + htmlEscape(str: string): string; + argsToArray(args: any): any; + extend(destination: any, source: any): any; + } + + interface JsApiReporter extends Reporter { + + started: boolean; + finished: boolean; + result: any; + messages: any; + + new (): any; + + suites(): Suite[]; + summarize_(suiteOrSpec: SuiteOrSpec): any; + results(): any; + resultsForSpec(specId: any): any; + log(str: any): any; + resultsForSpecs(specIds: any): any; + summarizeResult_(result: any): any; + } + + interface Jasmine { + Spec: Spec; + clock: Clock; + util: Util; + } + + export var HtmlReporter: HtmlReporter; + export var HtmlSpecFilter: HtmlSpecFilter; + export var DEFAULT_TIMEOUT_INTERVAL: number; +} diff --git a/test/execution-tests/2.0.3_es2016/typings/globals/jasmine/typings.json b/test/execution-tests/2.0.3_es2016/typings/globals/jasmine/typings.json new file mode 100644 index 000000000..769ffe339 --- /dev/null +++ b/test/execution-tests/2.0.3_es2016/typings/globals/jasmine/typings.json @@ -0,0 +1,8 @@ +{ + "resolution": "main", + "tree": { + "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/fe563dff3428bac1260d1794e2c2ecf8f097535a/jasmine/jasmine.d.ts", + "raw": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#fe563dff3428bac1260d1794e2c2ecf8f097535a", + "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/fe563dff3428bac1260d1794e2c2ecf8f097535a/jasmine/jasmine.d.ts" + } +} diff --git a/test/execution-tests/2.0.3_es2016/typings/index.d.ts b/test/execution-tests/2.0.3_es2016/typings/index.d.ts new file mode 100644 index 000000000..7cf8a3f75 --- /dev/null +++ b/test/execution-tests/2.0.3_es2016/typings/index.d.ts @@ -0,0 +1 @@ +/// diff --git a/test/execution-tests/2.0.3_es2016/webpack.config.js b/test/execution-tests/2.0.3_es2016/webpack.config.js new file mode 100644 index 000000000..1cf7e6798 --- /dev/null +++ b/test/execution-tests/2.0.3_es2016/webpack.config.js @@ -0,0 +1,33 @@ +/* eslint-disable no-var, strict, prefer-arrow-callback */ +'use strict'; + +var path = require('path'); +var webpack = require('webpack'); + +module.exports = { + entry: './src/simple.ts', + output: { + filename: 'bundle.js' + }, + module: { + loaders: [{ + test: /\.ts(x?)$/, + exclude: /node_modules/, + loader: 'babel-loader?presets[]=es2016&presets[]=es2015!ts-loader' + }, { + test: /\.js$/, + exclude: /node_modules/, + loader: 'babel', + query: { + presets: ['es2016', 'es2015'] + } + }] + }, + resolve: { + // Add `.ts` and `.tsx` as a resolvable extension. + extensions: ['', '.ts', '.tsx', '.js'] + }, +}; + +// for test harness purposes only, you would not need this in a normal project +module.exports.resolveLoader = { alias: { 'ts-loader': path.join(__dirname, "../../../index.js") } } \ No newline at end of file diff --git a/test/execution-tests/es2015/karma.conf.js b/test/execution-tests/es2015/karma.conf.js new file mode 100644 index 000000000..903ae52cd --- /dev/null +++ b/test/execution-tests/es2015/karma.conf.js @@ -0,0 +1,55 @@ +/* eslint-disable no-var, strict */ +'use strict'; +var path = require('path'); +var webpack = require('webpack'); +var webpackConfig = require('./webpack.config.js'); + +module.exports = function(config) { + config.set({ + browsers: [ 'PhantomJS' ], + + files: [ + // This ensures we have the es6 shims in place from babel and then loads all the tests + 'main.js' + ], + + port: 9876, + + frameworks: [ 'jasmine' ], + + logLevel: config.LOG_INFO, //config.LOG_DEBUG + + preprocessors: { + 'main.js': [ 'webpack', 'sourcemap' ] + }, + + webpack: { + devtool: 'inline-source-map', + debug: true, + module: { + loaders: webpackConfig.module.loaders + }, + resolve: webpackConfig.resolve, + + // for test harness purposes only, you would not need this in a normal project + resolveLoader: webpackConfig.resolveLoader + }, + + webpackMiddleware: { + quiet: true, + stats: { + colors: true + } + }, + + // reporter options + mochaReporter: { + colors: { + success: 'bgGreen', + info: 'cyan', + warning: 'bgBlue', + error: 'bgRed' + } + } + }); +}; diff --git a/test/execution-tests/es2015/main.js b/test/execution-tests/es2015/main.js new file mode 100644 index 000000000..b295c4ef2 --- /dev/null +++ b/test/execution-tests/es2015/main.js @@ -0,0 +1,4 @@ +import 'babel-polyfill'; + +const testsContext = require.context('./', true, /\.tests\.ts(x?)$/); +testsContext.keys().forEach(testsContext); diff --git a/test/execution-tests/es2015/src/simple.ts b/test/execution-tests/es2015/src/simple.ts new file mode 100644 index 000000000..9fa293c4c --- /dev/null +++ b/test/execution-tests/es2015/src/simple.ts @@ -0,0 +1,3 @@ +export function adder(num1: number, num2: number) { + return num1 + num2; +} diff --git a/test/execution-tests/es2015/test/simple.tests.ts b/test/execution-tests/es2015/test/simple.tests.ts new file mode 100644 index 000000000..167e5545a --- /dev/null +++ b/test/execution-tests/es2015/test/simple.tests.ts @@ -0,0 +1,16 @@ +import { adder } from "../src/simple"; + +describe("simple", () => { + it("adder can add 2 numbers", () => { + expect(adder(1, 4)).toBe(5); + }); + + // it("Array.prototype.includes works", () => { + // const result = [1, 2, 3].includes(2); + // expect(result).toBe(true); + // }); + + // it("Exponentiation operator works", () => { + // expect(1 ** 2 === Math.pow(1, 2)).toBe(true); + // }); +}); diff --git a/test/execution-tests/es2015/tsconfig.json b/test/execution-tests/es2015/tsconfig.json new file mode 100644 index 000000000..ff81829d6 --- /dev/null +++ b/test/execution-tests/es2015/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "noEmitOnError": false, + "noImplicitAny": true, + "preserveConstEnums": true, + "removeComments": false, + "suppressImplicitAnyIndexErrors": true, + "target": "es6" + } +} \ No newline at end of file diff --git a/test/execution-tests/es2015/typings.json b/test/execution-tests/es2015/typings.json new file mode 100644 index 000000000..29937d345 --- /dev/null +++ b/test/execution-tests/es2015/typings.json @@ -0,0 +1,7 @@ +{ + "name": "simple", + "version": false, + "globalDependencies": { + "jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#fe563dff3428bac1260d1794e2c2ecf8f097535a" + } +} diff --git a/test/execution-tests/es2015/typings/globals/jasmine/index.d.ts b/test/execution-tests/es2015/typings/globals/jasmine/index.d.ts new file mode 100644 index 000000000..610b7ecd4 --- /dev/null +++ b/test/execution-tests/es2015/typings/globals/jasmine/index.d.ts @@ -0,0 +1,489 @@ +// Generated by typings +// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/fe563dff3428bac1260d1794e2c2ecf8f097535a/jasmine/jasmine.d.ts +declare function describe(description: string, specDefinitions: () => void): void; +declare function fdescribe(description: string, specDefinitions: () => void): void; +declare function xdescribe(description: string, specDefinitions: () => void): void; + +declare function it(expectation: string, assertion?: () => void, timeout?: number): void; +declare function it(expectation: string, assertion?: (done: () => void) => void, timeout?: number): void; +declare function fit(expectation: string, assertion?: () => void, timeout?: number): void; +declare function fit(expectation: string, assertion?: (done: () => void) => void, timeout?: number): void; +declare function xit(expectation: string, assertion?: () => void, timeout?: number): void; +declare function xit(expectation: string, assertion?: (done: () => void) => void, timeout?: number): void; + +/** If you call the function pending anywhere in the spec body, no matter the expectations, the spec will be marked pending. */ +declare function pending(reason?: string): void; + +declare function beforeEach(action: () => void, timeout?: number): void; +declare function beforeEach(action: (done: () => void) => void, timeout?: number): void; +declare function afterEach(action: () => void, timeout?: number): void; +declare function afterEach(action: (done: () => void) => void, timeout?: number): void; + +declare function beforeAll(action: () => void, timeout?: number): void; +declare function beforeAll(action: (done: () => void) => void, timeout?: number): void; +declare function afterAll(action: () => void, timeout?: number): void; +declare function afterAll(action: (done: () => void) => void, timeout?: number): void; + +declare function expect(spy: Function): jasmine.Matchers; +declare function expect(actual: any): jasmine.Matchers; + +declare function fail(e?: any): void; + +declare function spyOn(object: any, method: string): jasmine.Spy; + +declare function runs(asyncMethod: Function): void; +declare function waitsFor(latchMethod: () => boolean, failureMessage?: string, timeout?: number): void; +declare function waits(timeout?: number): void; + +declare module jasmine { + + var clock: () => Clock; + + function any(aclass: any): Any; + function anything(): Any; + function arrayContaining(sample: any[]): ArrayContaining; + function objectContaining(sample: any): ObjectContaining; + function createSpy(name: string, originalFn?: Function): Spy; + function createSpyObj(baseName: string, methodNames: any[]): any; + function createSpyObj(baseName: string, methodNames: any[]): T; + function pp(value: any): string; + function getEnv(): Env; + function addCustomEqualityTester(equalityTester: CustomEqualityTester): void; + function addMatchers(matchers: CustomMatcherFactories): void; + function stringMatching(str: string): Any; + function stringMatching(str: RegExp): Any; + + interface Any { + + new (expectedClass: any): any; + + jasmineMatches(other: any): boolean; + jasmineToString(): string; + } + + // taken from TypeScript lib.core.es6.d.ts, applicable to CustomMatchers.contains() + interface ArrayLike { + length: number; + [n: number]: T; + } + + interface ArrayContaining { + new (sample: any[]): any; + + asymmetricMatch(other: any): boolean; + jasmineToString(): string; + } + + interface ObjectContaining { + new (sample: any): any; + + jasmineMatches(other: any, mismatchKeys: any[], mismatchValues: any[]): boolean; + jasmineToString(): string; + } + + interface Block { + + new (env: Env, func: SpecFunction, spec: Spec): any; + + execute(onComplete: () => void): void; + } + + interface WaitsBlock extends Block { + new (env: Env, timeout: number, spec: Spec): any; + } + + interface WaitsForBlock extends Block { + new (env: Env, timeout: number, latchFunction: SpecFunction, message: string, spec: Spec): any; + } + + interface Clock { + install(): void; + uninstall(): void; + /** Calls to any registered callback are triggered when the clock is ticked forward via the jasmine.clock().tick function, which takes a number of milliseconds. */ + tick(ms: number): void; + mockDate(date?: Date): void; + } + + interface CustomEqualityTester { + (first: any, second: any): boolean; + } + + interface CustomMatcher { + compare(actual: T, expected: T): CustomMatcherResult; + compare(actual: any, expected: any): CustomMatcherResult; + } + + interface CustomMatcherFactory { + (util: MatchersUtil, customEqualityTesters: Array): CustomMatcher; + } + + interface CustomMatcherFactories { + [index: string]: CustomMatcherFactory; + } + + interface CustomMatcherResult { + pass: boolean; + message?: string; + } + + interface MatchersUtil { + equals(a: any, b: any, customTesters?: Array): boolean; + contains(haystack: ArrayLike | string, needle: any, customTesters?: Array): boolean; + buildFailureMessage(matcherName: string, isNot: boolean, actual: any, ...expected: Array): string; + } + + interface Env { + setTimeout: any; + clearTimeout: void; + setInterval: any; + clearInterval: void; + updateInterval: number; + + currentSpec: Spec; + + matchersClass: Matchers; + + version(): any; + versionString(): string; + nextSpecId(): number; + addReporter(reporter: Reporter): void; + execute(): void; + describe(description: string, specDefinitions: () => void): Suite; + // ddescribe(description: string, specDefinitions: () => void): Suite; Not a part of jasmine. Angular team adds these + beforeEach(beforeEachFunction: () => void): void; + beforeAll(beforeAllFunction: () => void): void; + currentRunner(): Runner; + afterEach(afterEachFunction: () => void): void; + afterAll(afterAllFunction: () => void): void; + xdescribe(desc: string, specDefinitions: () => void): XSuite; + it(description: string, func: () => void): Spec; + // iit(description: string, func: () => void): Spec; Not a part of jasmine. Angular team adds these + xit(desc: string, func: () => void): XSpec; + compareRegExps_(a: RegExp, b: RegExp, mismatchKeys: string[], mismatchValues: string[]): boolean; + compareObjects_(a: any, b: any, mismatchKeys: string[], mismatchValues: string[]): boolean; + equals_(a: any, b: any, mismatchKeys: string[], mismatchValues: string[]): boolean; + contains_(haystack: any, needle: any): boolean; + addCustomEqualityTester(equalityTester: CustomEqualityTester): void; + addMatchers(matchers: CustomMatcherFactories): void; + specFilter(spec: Spec): boolean; + } + + interface FakeTimer { + + new (): any; + + reset(): void; + tick(millis: number): void; + runFunctionsWithinRange(oldMillis: number, nowMillis: number): void; + scheduleFunction(timeoutKey: any, funcToCall: () => void, millis: number, recurring: boolean): void; + } + + interface HtmlReporter { + new (): any; + } + + interface HtmlSpecFilter { + new (): any; + } + + interface Result { + type: string; + } + + interface NestedResults extends Result { + description: string; + + totalCount: number; + passedCount: number; + failedCount: number; + + skipped: boolean; + + rollupCounts(result: NestedResults): void; + log(values: any): void; + getItems(): Result[]; + addResult(result: Result): void; + passed(): boolean; + } + + interface MessageResult extends Result { + values: any; + trace: Trace; + } + + interface ExpectationResult extends Result { + matcherName: string; + passed(): boolean; + expected: any; + actual: any; + message: string; + trace: Trace; + } + + interface Trace { + name: string; + message: string; + stack: any; + } + + interface PrettyPrinter { + + new (): any; + + format(value: any): void; + iterateObject(obj: any, fn: (property: string, isGetter: boolean) => void): void; + emitScalar(value: any): void; + emitString(value: string): void; + emitArray(array: any[]): void; + emitObject(obj: any): void; + append(value: any): void; + } + + interface StringPrettyPrinter extends PrettyPrinter { + } + + interface Queue { + + new (env: any): any; + + env: Env; + ensured: boolean[]; + blocks: Block[]; + running: boolean; + index: number; + offset: number; + abort: boolean; + + addBefore(block: Block, ensure?: boolean): void; + add(block: any, ensure?: boolean): void; + insertNext(block: any, ensure?: boolean): void; + start(onComplete?: () => void): void; + isRunning(): boolean; + next_(): void; + results(): NestedResults; + } + + interface Matchers { + + new (env: Env, actual: any, spec: Env, isNot?: boolean): any; + + env: Env; + actual: any; + spec: Env; + isNot?: boolean; + message(): any; + + toBe(expected: any, expectationFailOutput?: any): boolean; + toEqual(expected: any, expectationFailOutput?: any): boolean; + toMatch(expected: string | RegExp, expectationFailOutput?: any): boolean; + toBeDefined(expectationFailOutput?: any): boolean; + toBeUndefined(expectationFailOutput?: any): boolean; + toBeNull(expectationFailOutput?: any): boolean; + toBeNaN(): boolean; + toBeTruthy(expectationFailOutput?: any): boolean; + toBeFalsy(expectationFailOutput?: any): boolean; + toHaveBeenCalled(): boolean; + toHaveBeenCalledWith(...params: any[]): boolean; + toContain(expected: any, expectationFailOutput?: any): boolean; + toBeLessThan(expected: number, expectationFailOutput?: any): boolean; + toBeGreaterThan(expected: number, expectationFailOutput?: any): boolean; + toBeCloseTo(expected: number, precision: any, expectationFailOutput?: any): boolean; + toThrow(expected?: any): boolean; + toThrowError(message?: string | RegExp): boolean; + toThrowError(expected?: Error, message?: string | RegExp): boolean; + not: Matchers; + + Any: Any; + } + + interface Reporter { + reportRunnerStarting(runner: Runner): void; + reportRunnerResults(runner: Runner): void; + reportSuiteResults(suite: Suite): void; + reportSpecStarting(spec: Spec): void; + reportSpecResults(spec: Spec): void; + log(str: string): void; + } + + interface MultiReporter extends Reporter { + addReporter(reporter: Reporter): void; + } + + interface Runner { + + new (env: Env): any; + + execute(): void; + beforeEach(beforeEachFunction: SpecFunction): void; + afterEach(afterEachFunction: SpecFunction): void; + beforeAll(beforeAllFunction: SpecFunction): void; + afterAll(afterAllFunction: SpecFunction): void; + finishCallback(): void; + addSuite(suite: Suite): void; + add(block: Block): void; + specs(): Spec[]; + suites(): Suite[]; + topLevelSuites(): Suite[]; + results(): NestedResults; + } + + interface SpecFunction { + (spec?: Spec): void; + } + + interface SuiteOrSpec { + id: number; + env: Env; + description: string; + queue: Queue; + } + + interface Spec extends SuiteOrSpec { + + new (env: Env, suite: Suite, description: string): any; + + suite: Suite; + + afterCallbacks: SpecFunction[]; + spies_: Spy[]; + + results_: NestedResults; + matchersClass: Matchers; + + getFullName(): string; + results(): NestedResults; + log(arguments: any): any; + runs(func: SpecFunction): Spec; + addToQueue(block: Block): void; + addMatcherResult(result: Result): void; + expect(actual: any): any; + waits(timeout: number): Spec; + waitsFor(latchFunction: SpecFunction, timeoutMessage?: string, timeout?: number): Spec; + fail(e?: any): void; + getMatchersClass_(): Matchers; + addMatchers(matchersPrototype: CustomMatcherFactories): void; + finishCallback(): void; + finish(onComplete?: () => void): void; + after(doAfter: SpecFunction): void; + execute(onComplete?: () => void): any; + addBeforesAndAftersToQueue(): void; + explodes(): void; + spyOn(obj: any, methodName: string, ignoreMethodDoesntExist: boolean): Spy; + removeAllSpies(): void; + } + + interface XSpec { + id: number; + runs(): void; + } + + interface Suite extends SuiteOrSpec { + + new (env: Env, description: string, specDefinitions: () => void, parentSuite: Suite): any; + + parentSuite: Suite; + + getFullName(): string; + finish(onComplete?: () => void): void; + beforeEach(beforeEachFunction: SpecFunction): void; + afterEach(afterEachFunction: SpecFunction): void; + beforeAll(beforeAllFunction: SpecFunction): void; + afterAll(afterAllFunction: SpecFunction): void; + results(): NestedResults; + add(suiteOrSpec: SuiteOrSpec): void; + specs(): Spec[]; + suites(): Suite[]; + children(): any[]; + execute(onComplete?: () => void): void; + } + + interface XSuite { + execute(): void; + } + + interface Spy { + (...params: any[]): any; + + identity: string; + and: SpyAnd; + calls: Calls; + mostRecentCall: { args: any[]; }; + argsForCall: any[]; + wasCalled: boolean; + } + + interface SpyAnd { + /** By chaining the spy with and.callThrough, the spy will still track all calls to it but in addition it will delegate to the actual implementation. */ + callThrough(): Spy; + /** By chaining the spy with and.returnValue, all calls to the function will return a specific value. */ + returnValue(val: any): void; + /** By chaining the spy with and.callFake, all calls to the spy will delegate to the supplied function. */ + callFake(fn: Function): Spy; + /** By chaining the spy with and.throwError, all calls to the spy will throw the specified value. */ + throwError(msg: string): void; + /** When a calling strategy is used for a spy, the original stubbing behavior can be returned at any time with and.stub. */ + stub(): Spy; + } + + interface Calls { + /** By chaining the spy with calls.any(), will return false if the spy has not been called at all, and then true once at least one call happens. **/ + any(): boolean; + /** By chaining the spy with calls.count(), will return the number of times the spy was called **/ + count(): number; + /** By chaining the spy with calls.argsFor(), will return the arguments passed to call number index **/ + argsFor(index: number): any[]; + /** By chaining the spy with calls.allArgs(), will return the arguments to all calls **/ + allArgs(): any[]; + /** By chaining the spy with calls.all(), will return the context (the this) and arguments passed all calls **/ + all(): CallInfo[]; + /** By chaining the spy with calls.mostRecent(), will return the context (the this) and arguments for the most recent call **/ + mostRecent(): CallInfo; + /** By chaining the spy with calls.first(), will return the context (the this) and arguments for the first call **/ + first(): CallInfo; + /** By chaining the spy with calls.reset(), will clears all tracking for a spy **/ + reset(): void; + } + + interface CallInfo { + /** The context (the this) for the call */ + object: any; + /** All arguments passed to the call */ + args: any[]; + } + + interface Util { + inherit(childClass: Function, parentClass: Function): any; + formatException(e: any): any; + htmlEscape(str: string): string; + argsToArray(args: any): any; + extend(destination: any, source: any): any; + } + + interface JsApiReporter extends Reporter { + + started: boolean; + finished: boolean; + result: any; + messages: any; + + new (): any; + + suites(): Suite[]; + summarize_(suiteOrSpec: SuiteOrSpec): any; + results(): any; + resultsForSpec(specId: any): any; + log(str: any): any; + resultsForSpecs(specIds: any): any; + summarizeResult_(result: any): any; + } + + interface Jasmine { + Spec: Spec; + clock: Clock; + util: Util; + } + + export var HtmlReporter: HtmlReporter; + export var HtmlSpecFilter: HtmlSpecFilter; + export var DEFAULT_TIMEOUT_INTERVAL: number; +} diff --git a/test/execution-tests/es2015/typings/globals/jasmine/typings.json b/test/execution-tests/es2015/typings/globals/jasmine/typings.json new file mode 100644 index 000000000..769ffe339 --- /dev/null +++ b/test/execution-tests/es2015/typings/globals/jasmine/typings.json @@ -0,0 +1,8 @@ +{ + "resolution": "main", + "tree": { + "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/fe563dff3428bac1260d1794e2c2ecf8f097535a/jasmine/jasmine.d.ts", + "raw": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#fe563dff3428bac1260d1794e2c2ecf8f097535a", + "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/fe563dff3428bac1260d1794e2c2ecf8f097535a/jasmine/jasmine.d.ts" + } +} diff --git a/test/execution-tests/es2015/typings/index.d.ts b/test/execution-tests/es2015/typings/index.d.ts new file mode 100644 index 000000000..7cf8a3f75 --- /dev/null +++ b/test/execution-tests/es2015/typings/index.d.ts @@ -0,0 +1 @@ +/// diff --git a/test/execution-tests/es2015/webpack.config.js b/test/execution-tests/es2015/webpack.config.js new file mode 100644 index 000000000..ef21756bc --- /dev/null +++ b/test/execution-tests/es2015/webpack.config.js @@ -0,0 +1,33 @@ +/* eslint-disable no-var, strict, prefer-arrow-callback */ +'use strict'; + +var path = require('path'); +var webpack = require('webpack'); + +module.exports = { + entry: './src/simple.ts', + output: { + filename: 'bundle.js' + }, + module: { + loaders: [{ + test: /\.ts(x?)$/, + exclude: /node_modules/, + loader: 'babel-loader?presets[]=es2015!ts-loader' + }, { + test: /\.js$/, + exclude: /node_modules/, + loader: 'babel', + query: { + presets: ['es2015'] + } + }] + }, + resolve: { + // Add `.ts` and `.tsx` as a resolvable extension. + extensions: ['', '.ts', '.tsx', '.js'] + }, +}; + +// for test harness purposes only, you would not need this in a normal project +module.exports.resolveLoader = { alias: { 'ts-loader': path.join(__dirname, "../../../index.js") } } \ No newline at end of file diff --git a/test/execution-tests/run-tests.js b/test/execution-tests/run-tests.js new file mode 100644 index 000000000..6bda68299 --- /dev/null +++ b/test/execution-tests/run-tests.js @@ -0,0 +1,87 @@ +'use strict'; + +// var Server = require('karma').Server; +var fs = require('fs-extra'); +var path = require('path'); +var execSync = require('child_process').execSync; +var typescript = require('typescript'); +var semver = require('semver'); + +// Parse command line arguments +var indexOfSingleTest = process.argv.indexOf('--single-test'); +var singleTestToRun = indexOfSingleTest !== -1 && process.argv[indexOfSingleTest + 1]; +var watch = process.argv.indexOf('--watch') !== -1 && !!singleTestToRun; + +var passingTests = []; +var failingTests = []; + +var start = new Date().getTime(); +console.log('Starting to run test suites...\n'); +var versionsHaveBeenReported = false; + +var testDir = __dirname; + +if (singleTestToRun) { + runTests(singleTestToRun); +} +else { + // loop through each test directory triggering a test run as child process + fs.readdirSync(testDir) + .filter(isTestDirectory) + .filter(isHighEnoughTypeScriptVersion) + .forEach(runTests); +} + +var end = new Date().getTime(); +console.log('\n-------------------------------------------------------------------------\n'); +console.log((passingTests.length + failingTests.length) + ' test suites took ' + ((end - start) / 1000) + ' seconds to run.\n'); +if (passingTests.length > 0) { + console.log(passingTests.length + ' test suite(s) passed.\n\n - ' + passingTests.join('\n - ') + '\n'); +} + +if (failingTests.length > 0) { + console.log(failingTests.length + ' test suite(s) failed.\n\n - ' + failingTests.join('\n - ') + '\n'); + process.exit(1); +} +else { + console.log('No tests failed; congratulations!'); +} + +// -------------------------------------------------------------- + +function isTestDirectory (testName) { + var testPath = path.join(testDir, testName); + return fs.statSync(testPath).isDirectory(); +} + +function isHighEnoughTypeScriptVersion (testName) { + var minTsVersionAndTestName = testName.split('_'); + if (minTsVersionAndTestName.length === 2) { + var minTsVersion = minTsVersionAndTestName[0]; + if (semver.lt(typescript.version, minTsVersion)) { + console.log('Skipping test ' + testName + ' as its minimum version of ' + minTsVersion + ' is greater than our current version of TypeScript: ' + typescript.version); + return false; + } + } + return true; +} + +function runTests(testName) { + console.log('RUNNING: ' + testName); + + var testPath = path.join(testDir, testName); + var karmaConfPath = path.join(testPath, 'karma.conf.js'); + + console.log('Installing typings into ' + testPath); + execSync('typings install', { cwd: testPath, stdio: 'inherit' }); + + try { + var singleRunOrWatch = watch ? '' : ' --single-run'; + execSync('karma start --reporters mocha' + singleRunOrWatch + ' --browsers PhantomJS', { cwd: testPath, stdio: 'inherit' }); + + passingTests.push(testName); + } + catch (err) { + failingTests.push(testName); + } +} diff --git a/test/execution-tests/simpleDependency/karma.conf.js b/test/execution-tests/simpleDependency/karma.conf.js new file mode 100644 index 000000000..903ae52cd --- /dev/null +++ b/test/execution-tests/simpleDependency/karma.conf.js @@ -0,0 +1,55 @@ +/* eslint-disable no-var, strict */ +'use strict'; +var path = require('path'); +var webpack = require('webpack'); +var webpackConfig = require('./webpack.config.js'); + +module.exports = function(config) { + config.set({ + browsers: [ 'PhantomJS' ], + + files: [ + // This ensures we have the es6 shims in place from babel and then loads all the tests + 'main.js' + ], + + port: 9876, + + frameworks: [ 'jasmine' ], + + logLevel: config.LOG_INFO, //config.LOG_DEBUG + + preprocessors: { + 'main.js': [ 'webpack', 'sourcemap' ] + }, + + webpack: { + devtool: 'inline-source-map', + debug: true, + module: { + loaders: webpackConfig.module.loaders + }, + resolve: webpackConfig.resolve, + + // for test harness purposes only, you would not need this in a normal project + resolveLoader: webpackConfig.resolveLoader + }, + + webpackMiddleware: { + quiet: true, + stats: { + colors: true + } + }, + + // reporter options + mochaReporter: { + colors: { + success: 'bgGreen', + info: 'cyan', + warning: 'bgBlue', + error: 'bgRed' + } + } + }); +}; diff --git a/test/execution-tests/simpleDependency/main.js b/test/execution-tests/simpleDependency/main.js new file mode 100644 index 000000000..118f90112 --- /dev/null +++ b/test/execution-tests/simpleDependency/main.js @@ -0,0 +1,2 @@ +const testsContext = require.context('./', true, /\.tests\.ts(x?)$/); +testsContext.keys().forEach(testsContext); diff --git a/test/execution-tests/simpleDependency/src/app.ts b/test/execution-tests/simpleDependency/src/app.ts new file mode 100644 index 000000000..d1a4fbd87 --- /dev/null +++ b/test/execution-tests/simpleDependency/src/app.ts @@ -0,0 +1,3 @@ +import dep = require('./dep'); + +dep(''); \ No newline at end of file diff --git a/test/execution-tests/simpleDependency/src/deeperDep.ts b/test/execution-tests/simpleDependency/src/deeperDep.ts new file mode 100644 index 000000000..33ddffdbd --- /dev/null +++ b/test/execution-tests/simpleDependency/src/deeperDep.ts @@ -0,0 +1,5 @@ +function doSomething(input: string) { + +} + +export = doSomething; \ No newline at end of file diff --git a/test/execution-tests/simpleDependency/src/dep.ts b/test/execution-tests/simpleDependency/src/dep.ts new file mode 100644 index 000000000..5d755b8fe --- /dev/null +++ b/test/execution-tests/simpleDependency/src/dep.ts @@ -0,0 +1,3 @@ +import dep = require('./deeperDep'); + +export = dep; \ No newline at end of file diff --git a/test/execution-tests/simpleDependency/test/app.tests.ts b/test/execution-tests/simpleDependency/test/app.tests.ts new file mode 100644 index 000000000..7aef4a82f --- /dev/null +++ b/test/execution-tests/simpleDependency/test/app.tests.ts @@ -0,0 +1,8 @@ +import dep = require('../src/dep'); + +describe("app", () => { + it("dep can be called", () => { + + expect(dep('')).toBeUndefined(); + }); +}); diff --git a/test/execution-tests/simpleDependency/tsconfig.json b/test/execution-tests/simpleDependency/tsconfig.json new file mode 100644 index 000000000..fc16344c1 --- /dev/null +++ b/test/execution-tests/simpleDependency/tsconfig.json @@ -0,0 +1,5 @@ +{ + "compilerOptions": { + }, + "files": [] +} \ No newline at end of file diff --git a/test/execution-tests/simpleDependency/typings.json b/test/execution-tests/simpleDependency/typings.json new file mode 100644 index 000000000..29937d345 --- /dev/null +++ b/test/execution-tests/simpleDependency/typings.json @@ -0,0 +1,7 @@ +{ + "name": "simple", + "version": false, + "globalDependencies": { + "jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#fe563dff3428bac1260d1794e2c2ecf8f097535a" + } +} diff --git a/test/execution-tests/simpleDependency/typings/globals/jasmine/index.d.ts b/test/execution-tests/simpleDependency/typings/globals/jasmine/index.d.ts new file mode 100644 index 000000000..610b7ecd4 --- /dev/null +++ b/test/execution-tests/simpleDependency/typings/globals/jasmine/index.d.ts @@ -0,0 +1,489 @@ +// Generated by typings +// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/fe563dff3428bac1260d1794e2c2ecf8f097535a/jasmine/jasmine.d.ts +declare function describe(description: string, specDefinitions: () => void): void; +declare function fdescribe(description: string, specDefinitions: () => void): void; +declare function xdescribe(description: string, specDefinitions: () => void): void; + +declare function it(expectation: string, assertion?: () => void, timeout?: number): void; +declare function it(expectation: string, assertion?: (done: () => void) => void, timeout?: number): void; +declare function fit(expectation: string, assertion?: () => void, timeout?: number): void; +declare function fit(expectation: string, assertion?: (done: () => void) => void, timeout?: number): void; +declare function xit(expectation: string, assertion?: () => void, timeout?: number): void; +declare function xit(expectation: string, assertion?: (done: () => void) => void, timeout?: number): void; + +/** If you call the function pending anywhere in the spec body, no matter the expectations, the spec will be marked pending. */ +declare function pending(reason?: string): void; + +declare function beforeEach(action: () => void, timeout?: number): void; +declare function beforeEach(action: (done: () => void) => void, timeout?: number): void; +declare function afterEach(action: () => void, timeout?: number): void; +declare function afterEach(action: (done: () => void) => void, timeout?: number): void; + +declare function beforeAll(action: () => void, timeout?: number): void; +declare function beforeAll(action: (done: () => void) => void, timeout?: number): void; +declare function afterAll(action: () => void, timeout?: number): void; +declare function afterAll(action: (done: () => void) => void, timeout?: number): void; + +declare function expect(spy: Function): jasmine.Matchers; +declare function expect(actual: any): jasmine.Matchers; + +declare function fail(e?: any): void; + +declare function spyOn(object: any, method: string): jasmine.Spy; + +declare function runs(asyncMethod: Function): void; +declare function waitsFor(latchMethod: () => boolean, failureMessage?: string, timeout?: number): void; +declare function waits(timeout?: number): void; + +declare module jasmine { + + var clock: () => Clock; + + function any(aclass: any): Any; + function anything(): Any; + function arrayContaining(sample: any[]): ArrayContaining; + function objectContaining(sample: any): ObjectContaining; + function createSpy(name: string, originalFn?: Function): Spy; + function createSpyObj(baseName: string, methodNames: any[]): any; + function createSpyObj(baseName: string, methodNames: any[]): T; + function pp(value: any): string; + function getEnv(): Env; + function addCustomEqualityTester(equalityTester: CustomEqualityTester): void; + function addMatchers(matchers: CustomMatcherFactories): void; + function stringMatching(str: string): Any; + function stringMatching(str: RegExp): Any; + + interface Any { + + new (expectedClass: any): any; + + jasmineMatches(other: any): boolean; + jasmineToString(): string; + } + + // taken from TypeScript lib.core.es6.d.ts, applicable to CustomMatchers.contains() + interface ArrayLike { + length: number; + [n: number]: T; + } + + interface ArrayContaining { + new (sample: any[]): any; + + asymmetricMatch(other: any): boolean; + jasmineToString(): string; + } + + interface ObjectContaining { + new (sample: any): any; + + jasmineMatches(other: any, mismatchKeys: any[], mismatchValues: any[]): boolean; + jasmineToString(): string; + } + + interface Block { + + new (env: Env, func: SpecFunction, spec: Spec): any; + + execute(onComplete: () => void): void; + } + + interface WaitsBlock extends Block { + new (env: Env, timeout: number, spec: Spec): any; + } + + interface WaitsForBlock extends Block { + new (env: Env, timeout: number, latchFunction: SpecFunction, message: string, spec: Spec): any; + } + + interface Clock { + install(): void; + uninstall(): void; + /** Calls to any registered callback are triggered when the clock is ticked forward via the jasmine.clock().tick function, which takes a number of milliseconds. */ + tick(ms: number): void; + mockDate(date?: Date): void; + } + + interface CustomEqualityTester { + (first: any, second: any): boolean; + } + + interface CustomMatcher { + compare(actual: T, expected: T): CustomMatcherResult; + compare(actual: any, expected: any): CustomMatcherResult; + } + + interface CustomMatcherFactory { + (util: MatchersUtil, customEqualityTesters: Array): CustomMatcher; + } + + interface CustomMatcherFactories { + [index: string]: CustomMatcherFactory; + } + + interface CustomMatcherResult { + pass: boolean; + message?: string; + } + + interface MatchersUtil { + equals(a: any, b: any, customTesters?: Array): boolean; + contains(haystack: ArrayLike | string, needle: any, customTesters?: Array): boolean; + buildFailureMessage(matcherName: string, isNot: boolean, actual: any, ...expected: Array): string; + } + + interface Env { + setTimeout: any; + clearTimeout: void; + setInterval: any; + clearInterval: void; + updateInterval: number; + + currentSpec: Spec; + + matchersClass: Matchers; + + version(): any; + versionString(): string; + nextSpecId(): number; + addReporter(reporter: Reporter): void; + execute(): void; + describe(description: string, specDefinitions: () => void): Suite; + // ddescribe(description: string, specDefinitions: () => void): Suite; Not a part of jasmine. Angular team adds these + beforeEach(beforeEachFunction: () => void): void; + beforeAll(beforeAllFunction: () => void): void; + currentRunner(): Runner; + afterEach(afterEachFunction: () => void): void; + afterAll(afterAllFunction: () => void): void; + xdescribe(desc: string, specDefinitions: () => void): XSuite; + it(description: string, func: () => void): Spec; + // iit(description: string, func: () => void): Spec; Not a part of jasmine. Angular team adds these + xit(desc: string, func: () => void): XSpec; + compareRegExps_(a: RegExp, b: RegExp, mismatchKeys: string[], mismatchValues: string[]): boolean; + compareObjects_(a: any, b: any, mismatchKeys: string[], mismatchValues: string[]): boolean; + equals_(a: any, b: any, mismatchKeys: string[], mismatchValues: string[]): boolean; + contains_(haystack: any, needle: any): boolean; + addCustomEqualityTester(equalityTester: CustomEqualityTester): void; + addMatchers(matchers: CustomMatcherFactories): void; + specFilter(spec: Spec): boolean; + } + + interface FakeTimer { + + new (): any; + + reset(): void; + tick(millis: number): void; + runFunctionsWithinRange(oldMillis: number, nowMillis: number): void; + scheduleFunction(timeoutKey: any, funcToCall: () => void, millis: number, recurring: boolean): void; + } + + interface HtmlReporter { + new (): any; + } + + interface HtmlSpecFilter { + new (): any; + } + + interface Result { + type: string; + } + + interface NestedResults extends Result { + description: string; + + totalCount: number; + passedCount: number; + failedCount: number; + + skipped: boolean; + + rollupCounts(result: NestedResults): void; + log(values: any): void; + getItems(): Result[]; + addResult(result: Result): void; + passed(): boolean; + } + + interface MessageResult extends Result { + values: any; + trace: Trace; + } + + interface ExpectationResult extends Result { + matcherName: string; + passed(): boolean; + expected: any; + actual: any; + message: string; + trace: Trace; + } + + interface Trace { + name: string; + message: string; + stack: any; + } + + interface PrettyPrinter { + + new (): any; + + format(value: any): void; + iterateObject(obj: any, fn: (property: string, isGetter: boolean) => void): void; + emitScalar(value: any): void; + emitString(value: string): void; + emitArray(array: any[]): void; + emitObject(obj: any): void; + append(value: any): void; + } + + interface StringPrettyPrinter extends PrettyPrinter { + } + + interface Queue { + + new (env: any): any; + + env: Env; + ensured: boolean[]; + blocks: Block[]; + running: boolean; + index: number; + offset: number; + abort: boolean; + + addBefore(block: Block, ensure?: boolean): void; + add(block: any, ensure?: boolean): void; + insertNext(block: any, ensure?: boolean): void; + start(onComplete?: () => void): void; + isRunning(): boolean; + next_(): void; + results(): NestedResults; + } + + interface Matchers { + + new (env: Env, actual: any, spec: Env, isNot?: boolean): any; + + env: Env; + actual: any; + spec: Env; + isNot?: boolean; + message(): any; + + toBe(expected: any, expectationFailOutput?: any): boolean; + toEqual(expected: any, expectationFailOutput?: any): boolean; + toMatch(expected: string | RegExp, expectationFailOutput?: any): boolean; + toBeDefined(expectationFailOutput?: any): boolean; + toBeUndefined(expectationFailOutput?: any): boolean; + toBeNull(expectationFailOutput?: any): boolean; + toBeNaN(): boolean; + toBeTruthy(expectationFailOutput?: any): boolean; + toBeFalsy(expectationFailOutput?: any): boolean; + toHaveBeenCalled(): boolean; + toHaveBeenCalledWith(...params: any[]): boolean; + toContain(expected: any, expectationFailOutput?: any): boolean; + toBeLessThan(expected: number, expectationFailOutput?: any): boolean; + toBeGreaterThan(expected: number, expectationFailOutput?: any): boolean; + toBeCloseTo(expected: number, precision: any, expectationFailOutput?: any): boolean; + toThrow(expected?: any): boolean; + toThrowError(message?: string | RegExp): boolean; + toThrowError(expected?: Error, message?: string | RegExp): boolean; + not: Matchers; + + Any: Any; + } + + interface Reporter { + reportRunnerStarting(runner: Runner): void; + reportRunnerResults(runner: Runner): void; + reportSuiteResults(suite: Suite): void; + reportSpecStarting(spec: Spec): void; + reportSpecResults(spec: Spec): void; + log(str: string): void; + } + + interface MultiReporter extends Reporter { + addReporter(reporter: Reporter): void; + } + + interface Runner { + + new (env: Env): any; + + execute(): void; + beforeEach(beforeEachFunction: SpecFunction): void; + afterEach(afterEachFunction: SpecFunction): void; + beforeAll(beforeAllFunction: SpecFunction): void; + afterAll(afterAllFunction: SpecFunction): void; + finishCallback(): void; + addSuite(suite: Suite): void; + add(block: Block): void; + specs(): Spec[]; + suites(): Suite[]; + topLevelSuites(): Suite[]; + results(): NestedResults; + } + + interface SpecFunction { + (spec?: Spec): void; + } + + interface SuiteOrSpec { + id: number; + env: Env; + description: string; + queue: Queue; + } + + interface Spec extends SuiteOrSpec { + + new (env: Env, suite: Suite, description: string): any; + + suite: Suite; + + afterCallbacks: SpecFunction[]; + spies_: Spy[]; + + results_: NestedResults; + matchersClass: Matchers; + + getFullName(): string; + results(): NestedResults; + log(arguments: any): any; + runs(func: SpecFunction): Spec; + addToQueue(block: Block): void; + addMatcherResult(result: Result): void; + expect(actual: any): any; + waits(timeout: number): Spec; + waitsFor(latchFunction: SpecFunction, timeoutMessage?: string, timeout?: number): Spec; + fail(e?: any): void; + getMatchersClass_(): Matchers; + addMatchers(matchersPrototype: CustomMatcherFactories): void; + finishCallback(): void; + finish(onComplete?: () => void): void; + after(doAfter: SpecFunction): void; + execute(onComplete?: () => void): any; + addBeforesAndAftersToQueue(): void; + explodes(): void; + spyOn(obj: any, methodName: string, ignoreMethodDoesntExist: boolean): Spy; + removeAllSpies(): void; + } + + interface XSpec { + id: number; + runs(): void; + } + + interface Suite extends SuiteOrSpec { + + new (env: Env, description: string, specDefinitions: () => void, parentSuite: Suite): any; + + parentSuite: Suite; + + getFullName(): string; + finish(onComplete?: () => void): void; + beforeEach(beforeEachFunction: SpecFunction): void; + afterEach(afterEachFunction: SpecFunction): void; + beforeAll(beforeAllFunction: SpecFunction): void; + afterAll(afterAllFunction: SpecFunction): void; + results(): NestedResults; + add(suiteOrSpec: SuiteOrSpec): void; + specs(): Spec[]; + suites(): Suite[]; + children(): any[]; + execute(onComplete?: () => void): void; + } + + interface XSuite { + execute(): void; + } + + interface Spy { + (...params: any[]): any; + + identity: string; + and: SpyAnd; + calls: Calls; + mostRecentCall: { args: any[]; }; + argsForCall: any[]; + wasCalled: boolean; + } + + interface SpyAnd { + /** By chaining the spy with and.callThrough, the spy will still track all calls to it but in addition it will delegate to the actual implementation. */ + callThrough(): Spy; + /** By chaining the spy with and.returnValue, all calls to the function will return a specific value. */ + returnValue(val: any): void; + /** By chaining the spy with and.callFake, all calls to the spy will delegate to the supplied function. */ + callFake(fn: Function): Spy; + /** By chaining the spy with and.throwError, all calls to the spy will throw the specified value. */ + throwError(msg: string): void; + /** When a calling strategy is used for a spy, the original stubbing behavior can be returned at any time with and.stub. */ + stub(): Spy; + } + + interface Calls { + /** By chaining the spy with calls.any(), will return false if the spy has not been called at all, and then true once at least one call happens. **/ + any(): boolean; + /** By chaining the spy with calls.count(), will return the number of times the spy was called **/ + count(): number; + /** By chaining the spy with calls.argsFor(), will return the arguments passed to call number index **/ + argsFor(index: number): any[]; + /** By chaining the spy with calls.allArgs(), will return the arguments to all calls **/ + allArgs(): any[]; + /** By chaining the spy with calls.all(), will return the context (the this) and arguments passed all calls **/ + all(): CallInfo[]; + /** By chaining the spy with calls.mostRecent(), will return the context (the this) and arguments for the most recent call **/ + mostRecent(): CallInfo; + /** By chaining the spy with calls.first(), will return the context (the this) and arguments for the first call **/ + first(): CallInfo; + /** By chaining the spy with calls.reset(), will clears all tracking for a spy **/ + reset(): void; + } + + interface CallInfo { + /** The context (the this) for the call */ + object: any; + /** All arguments passed to the call */ + args: any[]; + } + + interface Util { + inherit(childClass: Function, parentClass: Function): any; + formatException(e: any): any; + htmlEscape(str: string): string; + argsToArray(args: any): any; + extend(destination: any, source: any): any; + } + + interface JsApiReporter extends Reporter { + + started: boolean; + finished: boolean; + result: any; + messages: any; + + new (): any; + + suites(): Suite[]; + summarize_(suiteOrSpec: SuiteOrSpec): any; + results(): any; + resultsForSpec(specId: any): any; + log(str: any): any; + resultsForSpecs(specIds: any): any; + summarizeResult_(result: any): any; + } + + interface Jasmine { + Spec: Spec; + clock: Clock; + util: Util; + } + + export var HtmlReporter: HtmlReporter; + export var HtmlSpecFilter: HtmlSpecFilter; + export var DEFAULT_TIMEOUT_INTERVAL: number; +} diff --git a/test/execution-tests/simpleDependency/typings/globals/jasmine/typings.json b/test/execution-tests/simpleDependency/typings/globals/jasmine/typings.json new file mode 100644 index 000000000..769ffe339 --- /dev/null +++ b/test/execution-tests/simpleDependency/typings/globals/jasmine/typings.json @@ -0,0 +1,8 @@ +{ + "resolution": "main", + "tree": { + "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/fe563dff3428bac1260d1794e2c2ecf8f097535a/jasmine/jasmine.d.ts", + "raw": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#fe563dff3428bac1260d1794e2c2ecf8f097535a", + "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/fe563dff3428bac1260d1794e2c2ecf8f097535a/jasmine/jasmine.d.ts" + } +} diff --git a/test/execution-tests/simpleDependency/typings/index.d.ts b/test/execution-tests/simpleDependency/typings/index.d.ts new file mode 100644 index 000000000..7cf8a3f75 --- /dev/null +++ b/test/execution-tests/simpleDependency/typings/index.d.ts @@ -0,0 +1 @@ +/// diff --git a/test/execution-tests/simpleDependency/webpack.config.js b/test/execution-tests/simpleDependency/webpack.config.js new file mode 100644 index 000000000..baffdbac0 --- /dev/null +++ b/test/execution-tests/simpleDependency/webpack.config.js @@ -0,0 +1,17 @@ +module.exports = { + entry: './src/app.ts', + output: { + filename: 'bundle.js' + }, + resolve: { + extensions: ['', '.ts', '.js'] + }, + module: { + loaders: [ + { test: /\.ts$/, loader: 'ts-loader' } + ] + } +} + +// for test harness purposes only, you would not need this in a normal project +module.exports.resolveLoader = { alias: { 'ts-loader': require('path').join(__dirname, "../../../index.js") } } \ No newline at end of file diff --git a/test/run-tests.js b/test/run-tests.js new file mode 100644 index 000000000..df9e2c937 --- /dev/null +++ b/test/run-tests.js @@ -0,0 +1,6 @@ +'use strict'; + +var execSync = require('child_process').execSync; + +execSync('npm run execution-tests', { stdio: 'inherit' }); +execSync('npm run comparison-tests', { stdio: 'inherit' });