From caa2ebc743f0eb4aca057608c2d209aec948ef40 Mon Sep 17 00:00:00 2001 From: lustoykov Date: Sat, 12 Jan 2019 20:18:27 +0100 Subject: [PATCH] Add tests for JSX support in JS even if no dependencies are specified --- .../integration/jsx-hyperapp-no-dep/index.js | 3 + .../jsx-hyperapp-no-dep/package.json | 3 + .../integration/jsx-nervjs-no-dep/index.js | 3 + .../jsx-nervjs-no-dep/package.json | 3 + .../integration/jsx-preact-no-dep/index.js | 3 + .../jsx-preact-no-dep/package.json | 3 + .../integration/jsx-react-no-dep/index.js | 3 + .../integration/jsx-react-no-dep/package.json | 3 + .../core/integration-tests/test/javascript.js | 89 +++++++++++++++++++ 9 files changed, 113 insertions(+) create mode 100644 packages/core/integration-tests/test/integration/jsx-hyperapp-no-dep/index.js create mode 100644 packages/core/integration-tests/test/integration/jsx-hyperapp-no-dep/package.json create mode 100644 packages/core/integration-tests/test/integration/jsx-nervjs-no-dep/index.js create mode 100644 packages/core/integration-tests/test/integration/jsx-nervjs-no-dep/package.json create mode 100644 packages/core/integration-tests/test/integration/jsx-preact-no-dep/index.js create mode 100644 packages/core/integration-tests/test/integration/jsx-preact-no-dep/package.json create mode 100644 packages/core/integration-tests/test/integration/jsx-react-no-dep/index.js create mode 100644 packages/core/integration-tests/test/integration/jsx-react-no-dep/package.json diff --git a/packages/core/integration-tests/test/integration/jsx-hyperapp-no-dep/index.js b/packages/core/integration-tests/test/integration/jsx-hyperapp-no-dep/index.js new file mode 100644 index 00000000000..4a97bbe9739 --- /dev/null +++ b/packages/core/integration-tests/test/integration/jsx-hyperapp-no-dep/index.js @@ -0,0 +1,3 @@ +import * as Hyperapp from 'hyperapp' + +module.exports =
; diff --git a/packages/core/integration-tests/test/integration/jsx-hyperapp-no-dep/package.json b/packages/core/integration-tests/test/integration/jsx-hyperapp-no-dep/package.json new file mode 100644 index 00000000000..352055cdf83 --- /dev/null +++ b/packages/core/integration-tests/test/integration/jsx-hyperapp-no-dep/package.json @@ -0,0 +1,3 @@ +{ + "private": true +} diff --git a/packages/core/integration-tests/test/integration/jsx-nervjs-no-dep/index.js b/packages/core/integration-tests/test/integration/jsx-nervjs-no-dep/index.js new file mode 100644 index 00000000000..9c8f2c81f29 --- /dev/null +++ b/packages/core/integration-tests/test/integration/jsx-nervjs-no-dep/index.js @@ -0,0 +1,3 @@ +import * as Nerv from 'nervjs'; + +module.exports =
; diff --git a/packages/core/integration-tests/test/integration/jsx-nervjs-no-dep/package.json b/packages/core/integration-tests/test/integration/jsx-nervjs-no-dep/package.json new file mode 100644 index 00000000000..352055cdf83 --- /dev/null +++ b/packages/core/integration-tests/test/integration/jsx-nervjs-no-dep/package.json @@ -0,0 +1,3 @@ +{ + "private": true +} diff --git a/packages/core/integration-tests/test/integration/jsx-preact-no-dep/index.js b/packages/core/integration-tests/test/integration/jsx-preact-no-dep/index.js new file mode 100644 index 00000000000..9483f2ef3e4 --- /dev/null +++ b/packages/core/integration-tests/test/integration/jsx-preact-no-dep/index.js @@ -0,0 +1,3 @@ +const Preact = require('preact'); + +module.exports =
; diff --git a/packages/core/integration-tests/test/integration/jsx-preact-no-dep/package.json b/packages/core/integration-tests/test/integration/jsx-preact-no-dep/package.json new file mode 100644 index 00000000000..352055cdf83 --- /dev/null +++ b/packages/core/integration-tests/test/integration/jsx-preact-no-dep/package.json @@ -0,0 +1,3 @@ +{ + "private": true +} diff --git a/packages/core/integration-tests/test/integration/jsx-react-no-dep/index.js b/packages/core/integration-tests/test/integration/jsx-react-no-dep/index.js new file mode 100644 index 00000000000..4f5a71615ed --- /dev/null +++ b/packages/core/integration-tests/test/integration/jsx-react-no-dep/index.js @@ -0,0 +1,3 @@ +import * as React from 'react'; + +module.exports =
; diff --git a/packages/core/integration-tests/test/integration/jsx-react-no-dep/package.json b/packages/core/integration-tests/test/integration/jsx-react-no-dep/package.json new file mode 100644 index 00000000000..352055cdf83 --- /dev/null +++ b/packages/core/integration-tests/test/integration/jsx-react-no-dep/package.json @@ -0,0 +1,3 @@ +{ + "private": true +} diff --git a/packages/core/integration-tests/test/javascript.js b/packages/core/integration-tests/test/javascript.js index ba255be5792..a6e80ec574b 100644 --- a/packages/core/integration-tests/test/javascript.js +++ b/packages/core/integration-tests/test/javascript.js @@ -1343,6 +1343,28 @@ describe('javascript', function() { assert(file.includes('React.createElement("div"')); }); + it('should support compiling JSX in JS files with React dependency even if React is not specified as dependency', async function() { + let originalPkg = await fs.readFile( + __dirname + '/integration/jsx-react-no-dep/package.json' + ); + + await bundle( + path.join(__dirname, '/integration/jsx-react-no-dep/index.js') + ); + + let file = await fs.readFile( + path.join(__dirname, '/dist/index.js'), + 'utf8' + ); + + assert(file.includes('React.createElement("div"')); + + await fs.writeFile( + __dirname + '/integration/jsx-react-no-dep/package.json', + originalPkg + ); + }); + it('should support compiling JSX in JS files with Preact dependency', async function() { await bundle(path.join(__dirname, '/integration/jsx-preact/index.js')); @@ -1353,6 +1375,28 @@ describe('javascript', function() { assert(file.includes('h("div"')); }); + it('should support compiling JSX in JS files with Preact dependency even if Preact is not specified as dependency', async function() { + let originalPkg = await fs.readFile( + __dirname + '/integration/jsx-preact-no-dep/package.json' + ); + + await bundle( + path.join(__dirname, '/integration/jsx-preact-no-dep/index.js') + ); + + let file = await fs.readFile( + path.join(__dirname, '/dist/index.js'), + 'utf8' + ); + + assert(file.includes('h("div"')); + + await fs.writeFile( + __dirname + '/integration/jsx-preact-no-dep/package.json', + originalPkg + ); + }); + it('should support compiling JSX in JS files with Nerv dependency', async function() { await bundle(path.join(__dirname, '/integration/jsx-nervjs/index.js')); @@ -1363,6 +1407,28 @@ describe('javascript', function() { assert(file.includes('Nerv.createElement("div"')); }); + it('should support compiling JSX in JS files with Nerv dependency even if Nerv is not specified as dependency', async function() { + let originalPkg = await fs.readFile( + __dirname + '/integration/jsx-nervjs-no-dep/package.json' + ); + + await bundle( + path.join(__dirname, '/integration/jsx-nervjs-no-dep/index.js') + ); + + let file = await fs.readFile( + path.join(__dirname, '/dist/index.js'), + 'utf8' + ); + + assert(file.includes('Nerv.createElement("div"')); + + await fs.writeFile( + __dirname + '/integration/jsx-nervjs-no-dep/package.json', + originalPkg + ); + }); + it('should support compiling JSX in JS files with Hyperapp dependency', async function() { await bundle(path.join(__dirname, '/integration/jsx-hyperapp/index.js')); @@ -1370,7 +1436,30 @@ describe('javascript', function() { path.join(__dirname, '/dist/index.js'), 'utf8' ); + + assert(file.includes('h("div"')); + }); + + it('should support compiling JSX in JS files with Hyperapp dependency even if Hyperapp is not specified as dependency', async function() { + let originalPkg = await fs.readFile( + __dirname + '/integration/jsx-hyperapp-no-dep/package.json' + ); + + await bundle( + path.join(__dirname, '/integration/jsx-hyperapp-no-dep/index.js') + ); + + let file = await fs.readFile( + path.join(__dirname, '/dist/index.js'), + 'utf8' + ); + assert(file.includes('h("div"')); + + await fs.writeFile( + __dirname + '/integration/jsx-hyperapp-no-dep/package.json', + originalPkg + ); }); it('should support optional dependencies in try...catch blocks', async function() {