From c0da79c43fe86df6a02c549f89c5d6b9a3706122 Mon Sep 17 00:00:00 2001 From: Wykks Date: Fri, 2 Dec 2016 15:40:55 +0100 Subject: [PATCH] add test for issue #388 --- test/comparison-tests/issue388/app.ts | 3 + .../issue388/clientExports.d.ts | 1 + .../issue388/clientExports.js | 4 + .../issue388/expectedOutput-2.1/bundle.js | 79 +++++++++++++++++++ .../issue388/expectedOutput-2.1/output.txt | 7 ++ test/comparison-tests/issue388/foo.d.ts | 1 + test/comparison-tests/issue388/foo.js | 5 ++ test/comparison-tests/issue388/main.d.ts | 1 + test/comparison-tests/issue388/main.js | 2 + test/comparison-tests/issue388/tsconfig.json | 6 ++ .../issue388/webpack.config.js | 19 +++++ 11 files changed, 128 insertions(+) create mode 100644 test/comparison-tests/issue388/app.ts create mode 100644 test/comparison-tests/issue388/clientExports.d.ts create mode 100644 test/comparison-tests/issue388/clientExports.js create mode 100644 test/comparison-tests/issue388/expectedOutput-2.1/bundle.js create mode 100644 test/comparison-tests/issue388/expectedOutput-2.1/output.txt create mode 100644 test/comparison-tests/issue388/foo.d.ts create mode 100644 test/comparison-tests/issue388/foo.js create mode 100644 test/comparison-tests/issue388/main.d.ts create mode 100644 test/comparison-tests/issue388/main.js create mode 100644 test/comparison-tests/issue388/tsconfig.json create mode 100644 test/comparison-tests/issue388/webpack.config.js diff --git a/test/comparison-tests/issue388/app.ts b/test/comparison-tests/issue388/app.ts new file mode 100644 index 000000000..d682fa89f --- /dev/null +++ b/test/comparison-tests/issue388/app.ts @@ -0,0 +1,3 @@ +import { foo } from './main'; + +console.log(foo()); \ No newline at end of file diff --git a/test/comparison-tests/issue388/clientExports.d.ts b/test/comparison-tests/issue388/clientExports.d.ts new file mode 100644 index 000000000..e0e909648 --- /dev/null +++ b/test/comparison-tests/issue388/clientExports.d.ts @@ -0,0 +1 @@ +export declare function populateClientExports(exports: any): void; \ No newline at end of file diff --git a/test/comparison-tests/issue388/clientExports.js b/test/comparison-tests/issue388/clientExports.js new file mode 100644 index 000000000..d8d5f140f --- /dev/null +++ b/test/comparison-tests/issue388/clientExports.js @@ -0,0 +1,4 @@ +function populateClientExports(exports) { + exports.foo = require('./foo').foo; +} +exports.populateClientExports = populateClientExports; \ No newline at end of file diff --git a/test/comparison-tests/issue388/expectedOutput-2.1/bundle.js b/test/comparison-tests/issue388/expectedOutput-2.1/bundle.js new file mode 100644 index 000000000..74ec991f9 --- /dev/null +++ b/test/comparison-tests/issue388/expectedOutput-2.1/bundle.js @@ -0,0 +1,79 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var main_1 = __webpack_require__(1); + console.log(main_1.foo()); + + +/***/ }, +/* 1 */ +/***/ function(module, exports, __webpack_require__) { + + var populateClientExports = __webpack_require__(2).populateClientExports; + populateClientExports(exports); + +/***/ }, +/* 2 */ +/***/ function(module, exports, __webpack_require__) { + + function populateClientExports(exports) { + exports.foo = __webpack_require__(3).foo; + } + exports.populateClientExports = populateClientExports; + +/***/ }, +/* 3 */ +/***/ function(module, exports) { + + function foo() { + return 'foo'; + } + + exports.foo = foo; + +/***/ } +/******/ ]); \ No newline at end of file diff --git a/test/comparison-tests/issue388/expectedOutput-2.1/output.txt b/test/comparison-tests/issue388/expectedOutput-2.1/output.txt new file mode 100644 index 000000000..128beec0b --- /dev/null +++ b/test/comparison-tests/issue388/expectedOutput-2.1/output.txt @@ -0,0 +1,7 @@ + Asset Size Chunks Chunk Names +bundle.js 2.01 kB 0 [emitted] main +chunk {0} bundle.js (main) 376 bytes [rendered] + [0] ./.test/issue388/app.ts 73 bytes {0} [built] + [1] ./.test/issue388/main.js 109 bytes {0} [built] + [2] ./.test/issue388/clientExports.js 138 bytes {0} [built] + [3] ./.test/issue388/foo.js 56 bytes {0} [built] \ No newline at end of file diff --git a/test/comparison-tests/issue388/foo.d.ts b/test/comparison-tests/issue388/foo.d.ts new file mode 100644 index 000000000..75c13ae4d --- /dev/null +++ b/test/comparison-tests/issue388/foo.d.ts @@ -0,0 +1 @@ +export declare function foo(): string; \ No newline at end of file diff --git a/test/comparison-tests/issue388/foo.js b/test/comparison-tests/issue388/foo.js new file mode 100644 index 000000000..c88212607 --- /dev/null +++ b/test/comparison-tests/issue388/foo.js @@ -0,0 +1,5 @@ +function foo() { + return 'foo'; +} + +exports.foo = foo; \ No newline at end of file diff --git a/test/comparison-tests/issue388/main.d.ts b/test/comparison-tests/issue388/main.d.ts new file mode 100644 index 000000000..1cc5a0795 --- /dev/null +++ b/test/comparison-tests/issue388/main.d.ts @@ -0,0 +1 @@ +export * from './foo'; \ No newline at end of file diff --git a/test/comparison-tests/issue388/main.js b/test/comparison-tests/issue388/main.js new file mode 100644 index 000000000..b2475378b --- /dev/null +++ b/test/comparison-tests/issue388/main.js @@ -0,0 +1,2 @@ +var populateClientExports = require('./clientExports').populateClientExports; +populateClientExports(exports); \ No newline at end of file diff --git a/test/comparison-tests/issue388/tsconfig.json b/test/comparison-tests/issue388/tsconfig.json new file mode 100644 index 000000000..1e8daee35 --- /dev/null +++ b/test/comparison-tests/issue388/tsconfig.json @@ -0,0 +1,6 @@ +{ + "compilerOptions": { + "module": "commonjs", + "allowJs": true + } +} \ No newline at end of file diff --git a/test/comparison-tests/issue388/webpack.config.js b/test/comparison-tests/issue388/webpack.config.js new file mode 100644 index 000000000..bb75bffbb --- /dev/null +++ b/test/comparison-tests/issue388/webpack.config.js @@ -0,0 +1,19 @@ +var path = require('path') + +module.exports = { + entry: './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