forked from qunitjs/qunit
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Demos: Add Rollup example with a mix of import, input, and output
Ref qunitjs#1551.
- Loading branch information
Showing
16 changed files
with
330 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
const cp = require('child_process'); | ||
const path = require('path'); | ||
const DIR = path.join(__dirname, 'rollup'); | ||
|
||
function normalize (str) { | ||
return str | ||
.replace(/^localhost:\d+/g, 'localhost:8000') | ||
.replace(/\b\d+ms\b/g, '42ms'); | ||
} | ||
|
||
QUnit.module('rollup', { | ||
before: () => { | ||
cp.execSync('npm install --prefer-offline --no-audit --update-notifier=false', { cwd: DIR, encoding: 'utf8' }); | ||
cp.execSync('npx npm run build', { cwd: DIR, encoding: 'utf8' }); | ||
} | ||
}); | ||
|
||
QUnit.test('test', assert => { | ||
const expected = `Running "connect:all" (connect) task | ||
Started connect web server on http://localhost:8000 | ||
Running "qunit:all" (qunit) task | ||
Testing http://localhost:8000/test-import-default-from-cjs.es.html .OK | ||
>> passed test "import default from qunit.cjs > example" | ||
Testing http://localhost:8000/test-import-default-from-cjs.iife.html .OK | ||
>> passed test "import default from qunit.cjs > example" | ||
Testing http://localhost:8000/test-import-default-from-cjs.umd.html .OK | ||
>> passed test "import default from qunit.cjs > example" | ||
Testing http://localhost:8000/test-import-from-cjs.es.html .OK | ||
>> passed test "import { module,test } from qunit.cjs > example" | ||
Testing http://localhost:8000/test-import-from-cjs.iife.html .OK | ||
>> passed test "import { module,test } from qunit.cjs > example" | ||
Testing http://localhost:8000/test-import-from-cjs.umd.html .OK | ||
>> passed test "import { module,test } from qunit.cjs > example" | ||
Testing http://localhost:8000/test-mixed-to-import.es.html ....OK | ||
>> passed test "import default from qunit.cjs > example" | ||
>> passed test "import { module,test } from qunit.cjs > example" | ||
>> passed test "require from qunit.cjs > example" | ||
>> passed test "mixed" | ||
Testing http://localhost:8000/test-mixed-to-import.iife.html ....OK | ||
>> passed test "import default from qunit.cjs > example" | ||
>> passed test "import { module,test } from qunit.cjs > example" | ||
>> passed test "require from qunit.cjs > example" | ||
>> passed test "mixed" | ||
Testing http://localhost:8000/test-mixed-to-import.umd.html ....OK | ||
>> passed test "import default from qunit.cjs > example" | ||
>> passed test "import { module,test } from qunit.cjs > example" | ||
>> passed test "require from qunit.cjs > example" | ||
>> passed test "mixed" | ||
Testing http://localhost:8000/test-mixed-to-require.es.html ....OK | ||
>> passed test "import default from qunit.cjs > example" | ||
>> passed test "import { module,test } from qunit.cjs > example" | ||
>> passed test "require from qunit.cjs > example" | ||
>> passed test "mixed" | ||
Testing http://localhost:8000/test-mixed-to-require.iife.html ....OK | ||
>> passed test "import default from qunit.cjs > example" | ||
>> passed test "import { module,test } from qunit.cjs > example" | ||
>> passed test "require from qunit.cjs > example" | ||
>> passed test "mixed" | ||
Testing http://localhost:8000/test-mixed-to-require.umd.html ....OK | ||
>> passed test "import default from qunit.cjs > example" | ||
>> passed test "import { module,test } from qunit.cjs > example" | ||
>> passed test "require from qunit.cjs > example" | ||
>> passed test "mixed" | ||
Testing http://localhost:8000/test-require-from-cjs.es.html .OK | ||
>> passed test "require from qunit.cjs > example" | ||
Testing http://localhost:8000/test-require-from-cjs.iife.html .OK | ||
>> passed test "require from qunit.cjs > example" | ||
Testing http://localhost:8000/test-require-from-cjs.umd.html .OK | ||
>> passed test "require from qunit.cjs > example" | ||
>> 33 tests completed in 42ms, with 0 failed, 0 skipped, and 0 todo. | ||
Done.`; | ||
|
||
const actual = cp.execSync('npx npm -s test', { cwd: DIR, env: { PATH: process.env.PATH }, encoding: 'utf8' }); | ||
assert.equal(normalize(actual).trim(), expected); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
/* eslint-env node */ | ||
module.exports = function (grunt) { | ||
grunt.loadNpmTasks('grunt-contrib-connect'); | ||
grunt.loadNpmTasks('grunt-contrib-qunit'); | ||
|
||
grunt.initConfig({ | ||
connect: { | ||
all: { | ||
options: { | ||
useAvailablePort: true, | ||
base: '.' | ||
} | ||
} | ||
}, | ||
qunit: { | ||
options: { | ||
}, | ||
all: ['test-*.html'] | ||
} | ||
}); | ||
|
||
grunt.event.once('connect.all.listening', function (_host, port) { | ||
grunt.config('qunit.options.httpBase', `http://localhost:${port}`); | ||
// console.log(grunt.config()); // DEBUG | ||
}); | ||
|
||
let results = []; | ||
grunt.event.on('qunit.on.testEnd', function (test) { | ||
results.push( | ||
`>> ${test.status} test "${test.fullName.join(' > ')}"` | ||
); | ||
}); | ||
grunt.event.on('qunit.on.runEnd', function () { | ||
grunt.log.writeln(results.join('\n')); | ||
results = []; | ||
}); | ||
|
||
grunt.registerTask('test', ['connect', 'qunit']); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# QUnit ♥️ Rollup | ||
|
||
See also <https://rollupjs.org/>. | ||
|
||
```bash | ||
npm run build | ||
npm test | ||
``` | ||
|
||
``` | ||
Running "qunit:all" (qunit) task | ||
Testing http://localhost:8000/test.html .OK | ||
>> passed test "example" | ||
>> 1 test completed in 0ms, with 0 failed, 0 skipped, and 0 todo. | ||
Done. | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
import fs from 'node:fs'; | ||
|
||
import { rollup } from 'rollup'; | ||
import resolve from '@rollup/plugin-node-resolve'; | ||
import commonjs from '@rollup/plugin-commonjs'; | ||
|
||
const plugins = [commonjs(), resolve()]; | ||
|
||
const inputs = [ | ||
{ | ||
input: 'test/test-import-default-from-cjs.js', | ||
plugins | ||
}, | ||
{ | ||
input: 'test/test-import-from-cjs.js', | ||
plugins | ||
}, | ||
{ | ||
input: 'test/test-mixed-to-import.js', | ||
plugins | ||
}, | ||
{ | ||
input: 'test/test-mixed-to-require.js', | ||
plugins, | ||
// Ignore "output.name" warning for test-require-from-cjs.iife.js | ||
onwarn: () => {} | ||
}, | ||
{ | ||
input: 'test/test-require-from-cjs.js', | ||
plugins, | ||
// Ignore "output.name" warning for test-require-from-cjs.iife.js | ||
onwarn: () => {} | ||
} | ||
]; | ||
const outputs = [ | ||
{ | ||
dir: 'dist/', | ||
entryFileNames: '[name].[format].js', | ||
format: 'es' | ||
}, | ||
{ | ||
dir: 'dist/', | ||
entryFileNames: '[name].[format].js', | ||
format: 'cjs' | ||
}, | ||
{ | ||
dir: 'dist/', | ||
entryFileNames: '[name].[format].js', | ||
format: 'iife' | ||
}, | ||
{ | ||
dir: 'dist/', | ||
entryFileNames: '[name].[format].js', | ||
format: 'umd', | ||
name: 'UNUSED' | ||
} | ||
]; | ||
const htmlTemplate = ` | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<title>{{title}}</title> | ||
<link rel="stylesheet" href="node_modules/qunit/qunit/qunit.css"> | ||
{{scriptTag}} | ||
</head> | ||
<body> | ||
<div id="qunit"></div> | ||
</body> | ||
</html> | ||
`; | ||
|
||
(async function main () { | ||
const entries = fs.readdirSync('.'); | ||
for (const entry of entries) { | ||
if (entry.match(/^test-.*\.html$/)) { | ||
fs.rmSync(entry); | ||
} | ||
} | ||
for (const input of inputs) { | ||
const bundle = await rollup(input); | ||
|
||
for (const outputOptions of outputs) { | ||
const { output } = await bundle.write(outputOptions); | ||
const fileName = output[0].fileName; | ||
console.log('... built ' + fileName); | ||
|
||
if (outputOptions.format !== 'cjs') { | ||
const html = htmlTemplate | ||
.replace('{{title}}', fileName) | ||
.replace('{{scriptTag}}', ( | ||
fileName.endsWith('.es.js') | ||
? `<script src="dist/${fileName}" type="module"></script>` | ||
: `<script src="dist/${fileName}"></script>` | ||
)); | ||
|
||
fs.writeFileSync( | ||
fileName.replace('.js', '') + '.html', | ||
html | ||
); | ||
} | ||
} | ||
} | ||
}()); |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
{ | ||
"private": true, | ||
"devDependencies": { | ||
"@rollup/plugin-commonjs": "^26.0.1", | ||
"@rollup/plugin-node-resolve": "^15.2.3", | ||
"grunt": "1.6.1", | ||
"grunt-contrib-connect": "^5.0.0", | ||
"grunt-contrib-qunit": "10.1.1", | ||
"qunit": "file:../..", | ||
"rollup": "^4.18.0" | ||
}, | ||
"scripts": { | ||
"build": "node build.mjs", | ||
"test": "grunt test" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"parserOptions": { | ||
"ecmaVersion": 2018, | ||
"sourceType": "module" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"type": "module" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
export function add (a, b) { | ||
return a + b; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
import QUnit from 'qunit'; | ||
import { add } from './src.js'; | ||
|
||
QUnit._hello_a6 = QUnit.assert._hello_a6 = 'test-import-default-from-cjs'; | ||
|
||
QUnit.module('import default from qunit.cjs', function () { | ||
QUnit.test('example', function (assert) { | ||
assert.equal(add(2, 3), 5); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
import { QUnit, assert, module, test } from 'qunit'; | ||
import { add } from './src.js'; | ||
|
||
QUnit._hello_b4 = assert._hello_b4 = 'test-import-from-cjs'; | ||
|
||
module('import { module,test } from qunit.cjs', function () { | ||
test('example', function (assert) { | ||
assert.equal(add(2, 3), 5); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
import './test-import-default-from-cjs.js'; | ||
import './test-import-from-cjs.js'; | ||
import './test-require-from-cjs.js'; | ||
|
||
import QUnit from 'qunit'; | ||
|
||
QUnit.test('mixed', function (assert) { | ||
assert.strictEqual(QUnit._hello_a6, 'test-import-default-from-cjs'); | ||
assert.strictEqual(assert._hello_a6, 'test-import-default-from-cjs'); | ||
|
||
assert.strictEqual(QUnit._hello_b4, 'test-import-from-cjs'); | ||
assert.strictEqual(assert._hello_b4, 'test-import-from-cjs'); | ||
|
||
assert.strictEqual(QUnit._hello_c9, 'test-require-from-cjs'); | ||
assert.strictEqual(assert._hello_c9, 'test-require-from-cjs'); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
const QUnit = require('qunit'); | ||
|
||
require('./test-import-default-from-cjs.js'); | ||
require('./test-import-from-cjs.js'); | ||
require('./test-require-from-cjs.js'); | ||
|
||
QUnit.test('mixed', function (assert) { | ||
assert.strictEqual(QUnit._hello_a6, 'test-import-default-from-cjs'); | ||
assert.strictEqual(assert._hello_a6, 'test-import-default-from-cjs'); | ||
|
||
assert.strictEqual(QUnit._hello_b4, 'test-import-from-cjs'); | ||
assert.strictEqual(assert._hello_b4, 'test-import-from-cjs'); | ||
|
||
assert.strictEqual(QUnit._hello_c9, 'test-require-from-cjs'); | ||
assert.strictEqual(assert._hello_c9, 'test-require-from-cjs'); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
const QUnit = require('qunit'); | ||
const { add } = require('./src.js'); | ||
|
||
QUnit._hello_c9 = QUnit.assert._hello_c9 = 'test-require-from-cjs'; | ||
|
||
QUnit.module('require from qunit.cjs', function () { | ||
QUnit.test('example', function (assert) { | ||
assert.equal(add(2, 3), 5); | ||
}); | ||
}); |