Skip to content

Commit 58b7ef7

Browse files
David Pazdavidmpaz
David Paz
authored andcommitted
Add unit and functional test for TypeScript loader
1 parent fc26e1b commit 58b7ef7

File tree

5 files changed

+54
-1
lines changed

5 files changed

+54
-1
lines changed

fixtures/js/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import render = require('./render');
2+
3+
render();

fixtures/js/render.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
function render() {
2+
document.getElementById('wrapper').innerHTML = "<h1> Hello World!</h1>";
3+
}
4+
5+
export = render;

fixtures/js/tsconfig.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"compilerOptions": {}
3+
}

test/WebpackConfig.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,31 @@ describe('WebpackConfig object', () => {
278278
});
279279
});
280280

281+
describe('enableTypeScriptLoader', () => {
282+
it('Call with no config', () => {
283+
const config = createConfig();
284+
config.enableTypeScriptLoader();
285+
286+
expect(config.useTypeScriptLoader).to.be.true;
287+
});
288+
289+
it('Pass valid config', () => {
290+
const config = createConfig();
291+
config.enableTypeScriptLoader({ transpileOnly: true });
292+
293+
expect(config.useTypeScriptLoader).to.be.true;
294+
expect(config.typeScriptOptions.transpileOnly).to.be.true;
295+
});
296+
297+
it('Pass invalid config', () => {
298+
const config = createConfig();
299+
300+
expect(() => {
301+
config.enableTypeScriptLoader({ fake_option: false });
302+
}).to.throw('Invalid option "fake_option" passed to enableTypeScriptLoader()');
303+
});
304+
});
305+
281306
describe('addPlugin', () => {
282307
it('extends the current registered plugins', () => {
283308
const config = createConfig();

test/functional.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ describe('Functional tests using webpack', function() {
4545
testSetup.emptyTmpDir();
4646
});
4747

48-
describe('Basic scenarios', () => {
48+
describe('Basic scenarios.', () => {
4949

5050
it('Builds a few simple entries file + manifest.json', (done) => {
5151
const config = createWebpackConfig('web/build', 'dev');
@@ -583,6 +583,23 @@ module.exports = {
583583
});
584584
});
585585

586+
it('When enabled, TypeScript is compiled!', (done) => {
587+
const config = createWebpackConfig('www/build', 'dev');
588+
config.setPublicPath('/build');
589+
config.addEntry('main', ['./js/render.ts', './js/index.ts']);
590+
config.enableTypeScriptLoader();
591+
592+
testSetup.runWebpack(config, (webpackAssert) => {
593+
// check that ts-loader transformed the ts file
594+
webpackAssert.assertOutputFileContains(
595+
'main.js',
596+
'document.getElementById(\'wrapper\').innerHTML = "<h1> Hello World!</h1>";'
597+
);
598+
599+
done();
600+
});
601+
});
602+
586603
it('The output directory is cleaned between builds', (done) => {
587604
const config = createWebpackConfig('www/build', 'dev');
588605
config.setPublicPath('/build');

0 commit comments

Comments
 (0)