diff --git a/test/asset.js b/test/asset.js
index a6a0b6d54a5..b2981983243 100644
--- a/test/asset.js
+++ b/test/asset.js
@@ -1,5 +1,5 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const path = require('path');
const Asset = require('../src/Asset');
const {bundle} = require('./utils');
@@ -28,7 +28,7 @@ describe('Asset', () => {
outFile
});
- assert(fs.existsSync(__dirname, `/dist/${outFile}`));
+ assert(await fs.exists(__dirname, `/dist/${outFile}`));
});
it('should have backward compatibility for package field', function() {
diff --git a/test/autoinstall.js b/test/autoinstall.js
index 240f74e8b2a..af60551db03 100644
--- a/test/autoinstall.js
+++ b/test/autoinstall.js
@@ -1,16 +1,13 @@
const assert = require('assert');
const install = require('../src/utils/installPackage');
-const fs = require('fs');
-const rimraf = require('rimraf');
-const promisify = require('../src/utils/promisify');
-const primraf = promisify(rimraf);
-const ncp = promisify(require('ncp'));
+const fs = require('../src/utils/fs');
+const {ncp, rimraf} = require('./utils');
const inputDirPath = __dirname + '/input';
describe('autoinstall', function() {
beforeEach(async function() {
// Setup (clear the input dir and move integration test in)
- await primraf(inputDirPath, {});
+ await rimraf(inputDirPath, {});
await ncp(__dirname + '/integration/babel-default', inputDirPath);
});
@@ -23,9 +20,9 @@ describe('autoinstall', function() {
});
let expectedModulePath = inputDirPath + '/node_modules/' + pkgName;
- assert(fs.existsSync(expectedModulePath), 'lodash is in node_modules');
+ assert(await fs.exists(expectedModulePath), 'lodash is in node_modules');
- let pkg = fs.readFileSync(inputDirPath + '/package.json');
+ let pkg = await fs.readFile(inputDirPath + '/package.json');
pkg = JSON.parse(pkg);
assert(pkg.devDependencies[pkgName], 'lodash is saved as a dev dep');
});
@@ -39,14 +36,14 @@ describe('autoinstall', function() {
});
let expectedModulePath = inputDirPath + '/node_modules/' + pkgName;
- assert(fs.existsSync(expectedModulePath), 'lodash is in node_modules');
+ assert(await fs.exists(expectedModulePath), 'lodash is in node_modules');
- let pkg = fs.readFileSync(inputDirPath + '/package.json');
+ let pkg = await fs.readFile(inputDirPath + '/package.json');
pkg = JSON.parse(pkg);
assert(pkg.devDependencies[pkgName], 'lodash is saved as a dev dep');
});
afterEach(async function() {
- await primraf(inputDirPath);
+ await rimraf(inputDirPath);
});
});
diff --git a/test/bundler.js b/test/bundler.js
index f4ae8bfc43d..39b3ed0a60e 100644
--- a/test/bundler.js
+++ b/test/bundler.js
@@ -56,7 +56,7 @@ describe('bundler', function() {
__dirname + '/integration/multi-entry/two.html'
]);
- assertBundleTree(b, [
+ await assertBundleTree(b, [
{
type: 'html',
assets: ['one.html'],
@@ -78,7 +78,7 @@ describe('bundler', function() {
it('should support multiple entry points as a glob', async function() {
let b = await bundle(__dirname + '/integration/multi-entry/*.html');
- assertBundleTree(b, [
+ await assertBundleTree(b, [
{
type: 'html',
assets: ['one.html'],
diff --git a/test/contentHashing.js b/test/contentHashing.js
index 19d67e6a476..3288da325fd 100644
--- a/test/contentHashing.js
+++ b/test/contentHashing.js
@@ -1,13 +1,10 @@
const assert = require('assert');
-const fs = require('fs');
-const {bundle} = require('./utils');
-const rimraf = require('rimraf');
-const promisify = require('../src/utils/promisify');
-const ncp = promisify(require('ncp'));
+const fs = require('../src/utils/fs');
+const {bundle, rimraf, ncp} = require('./utils');
describe('content hashing', function() {
- beforeEach(function() {
- rimraf.sync(__dirname + '/input');
+ beforeEach(async function() {
+ await rimraf(__dirname + '/input');
});
it('should update content hash when content changes', async function() {
@@ -17,13 +14,13 @@ describe('content hashing', function() {
production: true
});
- let html = fs.readFileSync(__dirname + '/dist/index.html', 'utf8');
+ let html = await fs.readFile(__dirname + '/dist/index.html', 'utf8');
let filename = html.match(
//
)[1];
- assert(fs.existsSync(__dirname + '/dist/' + filename));
+ assert(await fs.exists(__dirname + '/dist/' + filename));
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/index.css',
'body { background: green }'
);
@@ -32,11 +29,11 @@ describe('content hashing', function() {
production: true
});
- html = fs.readFileSync(__dirname + '/dist/index.html', 'utf8');
+ html = await fs.readFile(__dirname + '/dist/index.html', 'utf8');
let newFilename = html.match(
//
)[1];
- assert(fs.existsSync(__dirname + '/dist/' + newFilename));
+ assert(await fs.exists(__dirname + '/dist/' + newFilename));
assert.notEqual(filename, newFilename);
});
@@ -48,19 +45,19 @@ describe('content hashing', function() {
production: true
});
- let js = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let js = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
let filename = js.match(/\/(test\.[0-9a-f]+\.txt)/)[1];
- assert(fs.existsSync(__dirname + '/dist/' + filename));
+ assert(await fs.exists(__dirname + '/dist/' + filename));
- fs.writeFileSync(__dirname + '/input/test.txt', 'hello world');
+ await fs.writeFile(__dirname + '/input/test.txt', 'hello world');
await bundle(__dirname + '/input/index.js', {
production: true
});
- js = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ js = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
let newFilename = js.match(/\/(test\.[0-9a-f]+\.txt)/)[1];
- assert(fs.existsSync(__dirname + '/dist/' + newFilename));
+ assert(await fs.exists(__dirname + '/dist/' + newFilename));
assert.notEqual(filename, newFilename);
});
diff --git a/test/css.js b/test/css.js
index 5c1f71cf5bb..78dd3eca724 100644
--- a/test/css.js
+++ b/test/css.js
@@ -1,15 +1,12 @@
const assert = require('assert');
-const fs = require('fs');
-const {bundle, run, assertBundleTree} = require('./utils');
-const promisify = require('../src/utils/promisify');
-const ncp = promisify(require('ncp'));
-const rimraf = require('rimraf');
+const fs = require('../src/utils/fs');
+const {bundle, run, assertBundleTree, rimraf, ncp} = require('./utils');
describe('css', function() {
it('should produce two bundles when importing a CSS file', async function() {
let b = await bundle(__dirname + '/integration/css/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.css', 'local.js', 'local.css'],
childBundles: [
@@ -24,7 +21,7 @@ describe('css', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 3);
});
@@ -32,7 +29,7 @@ describe('css', function() {
it('should support loading a CSS bundle along side dynamic imports', async function() {
let b = await bundle(__dirname + '/integration/dynamic-css/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: [
'index.js',
@@ -68,7 +65,7 @@ describe('css', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(await output(), 3);
});
@@ -76,7 +73,7 @@ describe('css', function() {
it('should support importing CSS from a CSS file', async function() {
let b = await bundle(__dirname + '/integration/css-import/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.css', 'other.css', 'local.css'],
childBundles: [
@@ -92,11 +89,11 @@ describe('css', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('.local'));
assert(css.includes('.other'));
assert(/@media print {\s*.other/.test(css));
@@ -106,7 +103,7 @@ describe('css', function() {
it('should support linking to assets with url() from CSS', async function() {
let b = await bundle(__dirname + '/integration/css-url/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.css'],
childBundles: [
@@ -126,11 +123,11 @@ describe('css', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(/url\("test\.[0-9a-f]+\.woff2"\)/.test(css));
assert(css.includes('url("http://google.com")'));
assert(css.includes('.index'));
@@ -140,7 +137,7 @@ describe('css', function() {
assert(css.includes('.no-quote'));
assert(
- fs.existsSync(
+ await fs.exists(
__dirname + '/dist/' + css.match(/url\("(test\.[0-9a-f]+\.woff2)"\)/)[1]
)
);
@@ -151,7 +148,7 @@ describe('css', function() {
production: true
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.css'],
childBundles: [
@@ -171,11 +168,11 @@ describe('css', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(/url\(test\.[0-9a-f]+\.woff2\)/.test(css), 'woff ext found in css');
assert(css.includes('url(http://google.com)'), 'url() found');
assert(css.includes('.index'), '.index found');
@@ -185,7 +182,7 @@ describe('css', function() {
assert(css.includes('.no-quote'));
assert(
- fs.existsSync(
+ await fs.exists(
__dirname + '/dist/' + css.match(/url\((test\.[0-9a-f]+\.woff2)\)/)[1]
)
);
@@ -194,7 +191,7 @@ describe('css', function() {
it('should support transforming with postcss', async function() {
let b = await bundle(__dirname + '/integration/postcss/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.css'],
childBundles: [
@@ -209,7 +206,7 @@ describe('css', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
let value = output();
@@ -217,7 +214,7 @@ describe('css', function() {
let cssClass = value.match(/(_index_[0-9a-z]+_1)/)[1];
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes(`.${cssClass}`));
});
@@ -226,18 +223,18 @@ describe('css', function() {
production: true
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 3);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('.local'));
assert(css.includes('.index'));
assert(!css.includes('\n'));
});
it('should automatically install postcss plugins with npm if needed', async function() {
- rimraf.sync(__dirname + '/input');
+ await rimraf(__dirname + '/input');
await ncp(__dirname + '/integration/autoinstall/npm', __dirname + '/input');
await bundle(__dirname + '/input/index.css');
@@ -249,12 +246,12 @@ describe('css', function() {
assert(pkg.devDependencies['caniuse-lite']);
// cssnext is applied
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('rgba'));
});
it('should automatically install postcss plugins with yarn if needed', async function() {
- rimraf.sync(__dirname + '/input');
+ await rimraf(__dirname + '/input');
await ncp(
__dirname + '/integration/autoinstall/yarn',
__dirname + '/input'
@@ -269,11 +266,11 @@ describe('css', function() {
assert(pkg.devDependencies['caniuse-lite']);
// appveyor is not currently writing to the yarn.lock file and will require further investigation
- // let lockfile = fs.readFileSync(__dirname + '/input/yarn.lock', 'utf8');
+ // let lockfile = await fs.readFile(__dirname + '/input/yarn.lock', 'utf8');
// assert(lockfile.includes('postcss-cssnext'));
// cssnext is applied
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('rgba'));
});
});
diff --git a/test/encodedURI.js b/test/encodedURI.js
index 4186f4702bd..2f470a51e3a 100644
--- a/test/encodedURI.js
+++ b/test/encodedURI.js
@@ -1,12 +1,12 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const {bundle, assertBundleTree} = require('./utils');
describe('encodedURI', function() {
it('should support bundling files which names in encoded URI', async function() {
let b = await bundle(__dirname + '/integration/encodedURI/index.html');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -18,8 +18,8 @@ describe('encodedURI', function() {
]
});
- let files = fs.readdirSync(__dirname + '/dist');
- let html = fs.readFileSync(__dirname + '/dist/index.html');
+ let files = await fs.readdir(__dirname + '/dist');
+ let html = await fs.readFile(__dirname + '/dist/index.html');
for (let file of files) {
if (file !== 'index.html') {
assert(html.includes(file));
diff --git a/test/fs-cache.js b/test/fs-cache.js
index 64a008e7eed..0f007b09a9e 100644
--- a/test/fs-cache.js
+++ b/test/fs-cache.js
@@ -1,10 +1,7 @@
const assert = require('assert');
const path = require('path');
-const rimraf = require('rimraf');
const fs = require('../src/utils/fs');
-const promisify = require('../src/utils/promisify');
-const {sleep} = require('./utils');
-const ncp = promisify(require('ncp'));
+const {sleep, rimraf, ncp} = require('./utils');
const FSCache = require('../src/FSCache');
const cachePath = path.join(__dirname, '.cache');
@@ -17,9 +14,9 @@ const getMTime = async file => {
};
describe('FSCache', () => {
- beforeEach(() => {
- rimraf.sync(cachePath);
- rimraf.sync(inputPath);
+ beforeEach(async () => {
+ await rimraf(cachePath);
+ await rimraf(inputPath);
});
it('should create directory on ensureDirExists', async () => {
diff --git a/test/fs.js b/test/fs.js
index fe458f34139..1f9f49d84c1 100644
--- a/test/fs.js
+++ b/test/fs.js
@@ -1,49 +1,49 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const {bundle, run, assertBundleTree} = require('./utils');
describe('fs', function() {
describe('--target=browser', function() {
it('should inline a file as a string', async function() {
let b = await bundle(__dirname + '/integration/fs/index.js');
- let output = run(b);
+ let output = await run(b);
assert.equal(output, 'hello');
});
it('should inline a file as a buffer', async function() {
let b = await bundle(__dirname + '/integration/fs-buffer/index.js');
- let output = run(b);
+ let output = await run(b);
assert.equal(output.constructor.name, 'Buffer');
assert.equal(output.length, 5);
});
it('should inline a file with fs require alias', async function() {
let b = await bundle(__dirname + '/integration/fs-alias/index.js');
- let output = run(b);
+ let output = await run(b);
assert.equal(output, 'hello');
});
it('should inline a file with fs require inline', async function() {
let b = await bundle(__dirname + '/integration/fs-inline/index.js');
- let output = run(b);
+ let output = await run(b);
assert.equal(output, 'hello');
});
it('should inline a file with fs require assignment', async function() {
let b = await bundle(__dirname + '/integration/fs-assign/index.js');
- let output = run(b);
+ let output = await run(b);
assert.equal(output, 'hello');
});
it('should inline a file with fs require assignment alias', async function() {
let b = await bundle(__dirname + '/integration/fs-assign-alias/index.js');
- let output = run(b);
+ let output = await run(b);
assert.equal(output, 'hello');
});
it('should inline a file with fs require destructure', async function() {
let b = await bundle(__dirname + '/integration/fs-destructure/index.js');
- let output = run(b);
+ let output = await run(b);
assert.equal(output, 'hello');
});
@@ -51,7 +51,7 @@ describe('fs', function() {
let b = await bundle(
__dirname + '/integration/fs-destructure-assign/index.js'
);
- let output = run(b);
+ let output = await run(b);
assert.equal(output, 'hello');
});
@@ -60,7 +60,7 @@ describe('fs', function() {
__dirname + '/integration/resolve-entries/ignore-fs.js'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'ignore-fs.js',
// empty.js is generated by require('fs'), it gets mocked with an empty module
assets: ['_empty.js', 'ignore-fs.js', 'index.js'],
@@ -71,7 +71,7 @@ describe('fs', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.test, 'function');
assert.equal(output.test(), 'test-pkg-ignore-fs-ok');
@@ -85,7 +85,7 @@ describe('fs', function() {
let thrown = false;
try {
- run(b);
+ await run(b);
} catch (e) {
assert.equal(e.message, 'require(...).readFileSync is not a function');
@@ -102,7 +102,7 @@ describe('fs', function() {
let thrown = false;
try {
- run(b);
+ await run(b);
} catch (e) {
assert.equal(e.message, 'require(...).readFileSync is not a function');
@@ -119,7 +119,7 @@ describe('fs', function() {
target: 'node'
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js'],
childBundles: [
@@ -129,11 +129,11 @@ describe('fs', function() {
]
});
- assert(fs.readFileSync(b.name).includes("require('fs')"));
- assert(fs.readFileSync(b.name).includes('readFileSync'));
+ assert((await fs.readFile(b.name)).includes("require('fs')"));
+ assert((await fs.readFile(b.name)).includes('readFileSync'));
- fs.writeFileSync(__dirname + '/dist/test.txt', 'hey');
- let output = run(b);
+ await fs.writeFile(__dirname + '/dist/test.txt', 'hey');
+ let output = await run(b);
assert.equal(output, 'hey');
});
});
@@ -144,7 +144,7 @@ describe('fs', function() {
target: 'electron'
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js'],
childBundles: [
@@ -154,11 +154,11 @@ describe('fs', function() {
]
});
- assert(fs.readFileSync(b.name).includes("require('fs')"));
- assert(fs.readFileSync(b.name).includes('readFileSync'));
+ assert((await fs.readFile(b.name)).includes("require('fs')"));
+ assert((await fs.readFile(b.name)).includes('readFileSync'));
- fs.writeFileSync(__dirname + '/dist/test.txt', 'hey');
- let output = run(b);
+ await fs.writeFile(__dirname + '/dist/test.txt', 'hey');
+ let output = await run(b);
assert.equal(output, 'hey');
});
});
diff --git a/test/generateCertificate.js b/test/generateCertificate.js
index b3e3430cb4c..ede0d1d1179 100644
--- a/test/generateCertificate.js
+++ b/test/generateCertificate.js
@@ -1,10 +1,8 @@
const assert = require('assert');
const path = require('path');
-const rimraf = require('rimraf');
const fs = require('../src/utils/fs');
-const promisify = require('../src/utils/promisify');
-const ncp = promisify(require('ncp'));
const generateCertificate = require('../src/utils/generateCertificate');
+const {rimraf, ncp} = require('./utils');
const cachePath = path.join(__dirname, '.cache');
const inputPath = path.join(__dirname, '/input');
@@ -15,9 +13,9 @@ const cacheOptions = {
};
describe('generateCertificate', () => {
- beforeEach(() => {
- rimraf.sync(cachePath);
- rimraf.sync(inputPath);
+ beforeEach(async () => {
+ await rimraf(cachePath);
+ await rimraf(inputPath);
});
it('should support loading cached certificate', async () => {
diff --git a/test/glob.js b/test/glob.js
index 5ab0d0d5b30..014b25725d7 100644
--- a/test/glob.js
+++ b/test/glob.js
@@ -1,12 +1,12 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const {bundle, run, assertBundleTree} = require('./utils');
describe('glob', function() {
it('should require a glob of files', async function() {
let b = await bundle(__dirname + '/integration/glob/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', '*.js', 'a.js', 'b.js'],
childBundles: [
@@ -16,7 +16,7 @@ describe('glob', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(await output(), 3);
});
@@ -24,7 +24,7 @@ describe('glob', function() {
it('should require nested directories with a glob', async function() {
let b = await bundle(__dirname + '/integration/glob-deep/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', '*.js', 'a.js', 'b.js', 'c.js', 'z.js'],
childBundles: [
@@ -34,7 +34,7 @@ describe('glob', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(await output(), 13);
});
@@ -42,7 +42,7 @@ describe('glob', function() {
it('should support importing a glob of CSS files', async function() {
let b = await bundle(__dirname + '/integration/glob-css/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.css', '*.css', 'other.css', 'local.css'],
childBundles: [
@@ -57,11 +57,11 @@ describe('glob', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('.local'));
assert(css.includes('.other'));
assert(css.includes('.index'));
diff --git a/test/glsl.js b/test/glsl.js
index 7fcc4db3bc6..e92e0a66986 100644
--- a/test/glsl.js
+++ b/test/glsl.js
@@ -1,12 +1,12 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const {bundle, run, assertBundleTree} = require('./utils');
describe('glsl', function() {
it('should support requiring GLSL files via glslify', async function() {
let b = await bundle(__dirname + '/integration/glsl/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'local.glsl', 'local.vert', 'local.frag'],
childBundles: [
@@ -16,12 +16,12 @@ describe('glsl', function() {
]
});
- let shader = fs.readFileSync(
+ let shader = await fs.readFile(
__dirname + '/integration/glsl/compiled.glsl',
'utf8'
);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.ok(
output().reduce((acc, requiredShader) => {
diff --git a/test/graphql.js b/test/graphql.js
index 177b3dc877f..b532006994a 100644
--- a/test/graphql.js
+++ b/test/graphql.js
@@ -6,7 +6,7 @@ describe('graphql', function() {
it('should support requiring graphql files', async function() {
let b = await bundle(__dirname + '/integration/graphql/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'local.graphql'],
childBundles: [
@@ -16,7 +16,7 @@ describe('graphql', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.deepEqual(
output().definitions,
diff --git a/test/hmr.js b/test/hmr.js
index 15601d56b11..69ff4d77bfb 100644
--- a/test/hmr.js
+++ b/test/hmr.js
@@ -1,19 +1,16 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const path = require('path');
-const {bundler, run, sleep} = require('./utils');
-const rimraf = require('rimraf');
-const promisify = require('../src/utils/promisify');
-const ncp = promisify(require('ncp'));
+const {bundler, run, sleep, rimraf, ncp} = require('./utils');
const WebSocket = require('ws');
const json5 = require('json5');
const sinon = require('sinon');
describe('hmr', function() {
let b, ws, stub;
- beforeEach(function() {
+ beforeEach(async function() {
stub = sinon.stub(console, 'clear');
- rimraf.sync(__dirname + '/input');
+ await rimraf(__dirname + '/input');
});
afterEach(function(done) {
@@ -58,7 +55,7 @@ describe('hmr', function() {
await sleep(100);
}
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'exports.a = 5;\nexports.b = 5;'
);
@@ -107,7 +104,7 @@ describe('hmr', function() {
await sleep(100);
}
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'exports.a = 5; exports.b = 5;'
);
@@ -135,7 +132,7 @@ describe('hmr', function() {
await sleep(100);
}
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'require("fs"); exports.a = 5; exports.b = 5;'
);
@@ -161,7 +158,7 @@ describe('hmr', function() {
await sleep(100);
}
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'require("fs"; exports.a = 5; exports.b = 5;'
);
@@ -193,7 +190,7 @@ describe('hmr', function() {
await sleep(100);
}
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'require("fs"; exports.a = 5; exports.b = 5;'
);
@@ -219,7 +216,7 @@ describe('hmr', function() {
await sleep(100);
}
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'require("fs"; exports.a = 5; exports.b = 5;'
);
@@ -231,7 +228,7 @@ describe('hmr', function() {
const secondBuildEnd = nextEvent(b, 'buildEnd');
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'require("fs"); exports.a = 5; exports.b = 5;'
);
@@ -249,7 +246,7 @@ describe('hmr', function() {
let bundle = await b.bundle();
let outputs = [];
- run(bundle, {
+ await run(bundle, {
output(o) {
outputs.push(o);
}
@@ -261,7 +258,7 @@ describe('hmr', function() {
await sleep(100);
}
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'exports.a = 5; exports.b = 5;'
);
@@ -278,7 +275,7 @@ describe('hmr', function() {
let outputs = [];
let moduleId = '';
- run(bundle, {
+ await run(bundle, {
reportModuleId(id) {
moduleId = id;
},
@@ -293,7 +290,7 @@ describe('hmr', function() {
await sleep(100);
}
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'exports.a = 5; exports.b = 5;'
);
@@ -315,7 +312,7 @@ describe('hmr', function() {
let bundle = await b.bundle();
let outputs = [];
- run(bundle, {
+ await run(bundle, {
output(o) {
outputs.push(o);
}
@@ -328,7 +325,7 @@ describe('hmr', function() {
await sleep(100);
}
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'exports.a = 5; exports.b = 5;'
);
@@ -345,7 +342,7 @@ describe('hmr', function() {
let bundle = await b.bundle();
let logs = [];
- let ctx = run(
+ let ctx = await run(
bundle,
{
console: {
@@ -364,7 +361,7 @@ describe('hmr', function() {
await sleep(100);
}
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'require("fs"; exports.a = 5; exports.b = 5;'
);
@@ -383,7 +380,7 @@ describe('hmr', function() {
let bundle = await b.bundle();
let logs = [];
- let ctx = run(
+ let ctx = await run(
bundle,
{
console: {
@@ -406,7 +403,7 @@ describe('hmr', function() {
await sleep(100);
}
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'require("fs"; exports.a = 5; exports.b = 5;'
);
@@ -415,7 +412,7 @@ describe('hmr', function() {
assert(appendSpy.called);
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'require("fs"); exports.a = 5; exports.b = 5;'
);
@@ -449,7 +446,7 @@ describe('hmr', function() {
await sleep(100);
}
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'exports.a = 5;\nexports.b = 5;'
);
@@ -486,7 +483,7 @@ describe('hmr', function() {
await sleep(100);
}
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'exports.a = 5;\nexports.b = 5;'
);
diff --git a/test/html.js b/test/html.js
index d487e3355de..cf4313eab93 100644
--- a/test/html.js
+++ b/test/html.js
@@ -1,5 +1,5 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const {bundle, assertBundleTree} = require('./utils');
const path = require('path');
@@ -7,7 +7,7 @@ describe('html', function() {
it('should support bundling HTML', async function() {
let b = await bundle(__dirname + '/integration/html/index.html');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -44,8 +44,8 @@ describe('html', function() {
]
});
- let files = fs.readdirSync(__dirname + '/dist');
- let html = fs.readFileSync(__dirname + '/dist/index.html');
+ let files = await fs.readdir(__dirname + '/dist');
+ let html = await fs.readFile(__dirname + '/dist/index.html');
for (let file of files) {
let ext = file.match(/\.([0-9a-z]+)(?:[?#]|$)/i)[0];
if (file !== 'index.html' && ext !== '.map') {
@@ -57,7 +57,7 @@ describe('html', function() {
it('should find href attr when not first', async function() {
let b = await bundle(__dirname + '/integration/html-attr-order/index.html');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -73,20 +73,20 @@ describe('html', function() {
it('should support transforming HTML with posthtml', async function() {
let b = await bundle(__dirname + '/integration/posthtml/index.html');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: []
});
- let html = fs.readFileSync(__dirname + '/dist/index.html');
+ let html = await fs.readFile(__dirname + '/dist/index.html');
assert(html.includes('
Other page
'));
});
it('should find assets inside posthtml', async function() {
let b = await bundle(__dirname + '/integration/posthtml-assets/index.html');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -119,7 +119,7 @@ describe('html', function() {
it('should insert sibling CSS bundles for JS files in the HEAD', async function() {
let b = await bundle(__dirname + '/integration/html-css/index.html');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -140,7 +140,7 @@ describe('html', function() {
]
});
- let html = fs.readFileSync(__dirname + '/dist/index.html');
+ let html = await fs.readFile(__dirname + '/dist/index.html');
assert(
//.test(
html
@@ -151,7 +151,7 @@ describe('html', function() {
it('should insert sibling bundles before body element if no HEAD', async function() {
let b = await bundle(__dirname + '/integration/html-css-head/index.html');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -172,7 +172,7 @@ describe('html', function() {
]
});
- let html = fs.readFileSync(__dirname + '/dist/index.html');
+ let html = await fs.readFile(__dirname + '/dist/index.html');
assert(
/\s*\s*/.test(
html
@@ -185,7 +185,7 @@ describe('html', function() {
hmr: true
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -211,7 +211,7 @@ describe('html', function() {
]
});
- let html = fs.readFileSync(__dirname + '/dist/index.html');
+ let html = await fs.readFile(__dirname + '/dist/index.html');
assert(/')
);
@@ -312,7 +312,7 @@ describe('html', function() {
it('should not prepend the public path to hash links', async function() {
await bundle(__dirname + '/integration/html/index.html');
- let html = fs.readFileSync(__dirname + '/dist/index.html', 'utf8');
+ let html = await fs.readFile(__dirname + '/dist/index.html', 'utf8');
assert(html.includes(''));
});
@@ -321,7 +321,7 @@ describe('html', function() {
__dirname + '/integration/html-virtualpath/index.html'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -337,11 +337,11 @@ describe('html', function() {
it('should not update root/main file in the bundles', async function() {
await bundle(__dirname + '/integration/html-root/index.html');
- let files = fs.readdirSync(__dirname + '/dist');
+ let files = await fs.readdir(__dirname + '/dist');
for (let file of files) {
if (file !== 'index.html' && file.endsWith('.html')) {
- let html = fs.readFileSync(__dirname + '/dist/' + file);
+ let html = await fs.readFile(__dirname + '/dist/' + file);
assert(html.includes('index.html'));
}
}
@@ -352,7 +352,7 @@ describe('html', function() {
production: true
});
- let html = fs.readFileSync(__dirname + '/dist/index.html', 'utf8');
+ let html = await fs.readFile(__dirname + '/dist/index.html', 'utf8');
assert(/hello<\/i> world<\/i>/.test(html));
});
@@ -361,7 +361,7 @@ describe('html', function() {
__dirname + '/integration/child-bundle-different-types/index.html'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -396,7 +396,7 @@ describe('html', function() {
it('should support circular dependencies', async function() {
let b = await bundle(__dirname + '/integration/circular/index.html');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -436,7 +436,7 @@ describe('html', function() {
it('should support bundling HTM', async function() {
let b = await bundle(__dirname + '/integration/htm-extension/index.htm');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.htm'],
type: 'html',
@@ -457,7 +457,7 @@ describe('html', function() {
it('should detect srcset attribute', async function() {
let b = await bundle(__dirname + '/integration/html-srcset/index.html');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -485,7 +485,7 @@ describe('html', function() {
__dirname + '/integration/html-source-srcset/index.html'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -511,7 +511,7 @@ describe('html', function() {
it('should support webmanifest', async function() {
let b = await bundle(__dirname + '/integration/webmanifest/index.html');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -533,7 +533,7 @@ describe('html', function() {
it('should bundle svg files correctly', async function() {
let b = await bundle(__dirname + '/integration/html-svg/index.html');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -548,7 +548,7 @@ describe('html', function() {
it('should support data attribute of object element', async function() {
let b = await bundle(__dirname + '/integration/html-object/index.html');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -564,7 +564,7 @@ describe('html', function() {
it('should resolve assets containing spaces', async function() {
let b = await bundle(__dirname + '/integration/resolve-spaces/index.html');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
diff --git a/test/javascript.js b/test/javascript.js
index 6ab9e58791d..654333aac13 100644
--- a/test/javascript.js
+++ b/test/javascript.js
@@ -1,5 +1,5 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const path = require('path');
const {bundle, run, assertBundleTree} = require('./utils');
const {mkdirp} = require('../src/utils/fs');
@@ -11,7 +11,7 @@ describe('javascript', function() {
assert.equal(b.assets.size, 8);
assert.equal(b.childBundles.size, 1);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 3);
});
@@ -22,7 +22,7 @@ describe('javascript', function() {
assert.equal(b.assets.size, 8);
assert.equal(b.childBundles.size, 1);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'object');
assert.equal(typeof output.default, 'function');
assert.equal(output.default(), 3);
@@ -33,12 +33,12 @@ describe('javascript', function() {
target: 'browser'
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'main.js',
assets: ['main.js', 'local.js', 'index.js']
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 3);
});
@@ -48,18 +48,18 @@ describe('javascript', function() {
target: 'node'
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'main.js',
assets: ['main.js', 'local.js']
});
await mkdirp(__dirname + '/dist/node_modules/testmodule');
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/dist/node_modules/testmodule/index.js',
'exports.a = 5;'
);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 7);
});
@@ -69,18 +69,18 @@ describe('javascript', function() {
target: 'electron'
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'main.js',
assets: ['main.js', 'local.js']
});
await mkdirp(__dirname + '/dist/node_modules/testmodule');
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/dist/node_modules/testmodule/index.js',
'exports.a = 5;'
);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 7);
});
@@ -91,7 +91,7 @@ describe('javascript', function() {
assert.equal(b.assets.size, 1);
assert.equal(b.childBundles.size, 1);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'object');
assert.equal(typeof output.default, 'function');
assert.equal(output.default(), 3);
@@ -102,7 +102,7 @@ describe('javascript', function() {
target: 'browser'
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'bundle-loader.js', 'bundle-url.js', 'js-loader.js'],
childBundles: [
@@ -120,7 +120,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(await output(), 3);
});
@@ -130,7 +130,7 @@ describe('javascript', function() {
target: 'node'
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'bundle-loader.js', 'bundle-url.js', 'js-loader.js'],
childBundles: [
@@ -148,7 +148,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(await output(), 3);
});
@@ -156,7 +156,7 @@ describe('javascript', function() {
it('should support bundling workers', async function() {
let b = await bundle(__dirname + '/integration/workers/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js'],
childBundles: [
@@ -188,7 +188,7 @@ describe('javascript', function() {
__dirname + '/integration/dynamic-references-raw/index.js'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'bundle-loader.js', 'bundle-url.js', 'js-loader.js'],
childBundles: [
@@ -209,7 +209,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(await output(), 3);
});
@@ -217,7 +217,7 @@ describe('javascript', function() {
it('should return all exports as an object when using ES modules', async function() {
let b = await bundle(__dirname + '/integration/dynamic-esm/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'bundle-loader.js', 'bundle-url.js', 'js-loader.js'],
childBundles: [
@@ -235,7 +235,7 @@ describe('javascript', function() {
]
});
- let output = run(b).default;
+ let output = (await run(b)).default;
assert.equal(typeof output, 'function');
assert.equal(await output(), 3);
});
@@ -243,7 +243,7 @@ describe('javascript', function() {
it('should hoist common dependencies into a parent bundle', async function() {
let b = await bundle(__dirname + '/integration/dynamic-hoist/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: [
'index.js',
@@ -276,7 +276,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(await output(), 7);
});
@@ -284,7 +284,7 @@ describe('javascript', function() {
it('should not duplicate a module which is already in a parent bundle', async function() {
let b = await bundle(__dirname + '/integration/dynamic-hoist-dup/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: [
'index.js',
@@ -308,7 +308,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(await output(), 5);
});
@@ -316,7 +316,7 @@ describe('javascript', function() {
it('should support requiring JSON files', async function() {
let b = await bundle(__dirname + '/integration/json/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'local.json'],
childBundles: [
@@ -326,7 +326,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 3);
});
@@ -334,7 +334,7 @@ describe('javascript', function() {
it('should support requiring JSON5 files', async function() {
let b = await bundle(__dirname + '/integration/json5/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'local.json5'],
childBundles: [
@@ -344,7 +344,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 3);
});
@@ -352,7 +352,7 @@ describe('javascript', function() {
it('should support importing a URL to a raw asset', async function() {
let b = await bundle(__dirname + '/integration/import-raw/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'test.txt'],
childBundles: [
@@ -367,10 +367,10 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert(/^\/test\.[0-9a-f]+\.txt$/.test(output()));
- assert(fs.existsSync(__dirname + '/dist/' + output()));
+ assert(await fs.exists(__dirname + '/dist/' + output()));
});
it('should minify JS in production mode', async function() {
@@ -378,11 +378,11 @@ describe('javascript', function() {
production: true
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 3);
- let js = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let js = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(!js.includes('local.a'));
});
@@ -391,7 +391,7 @@ describe('javascript', function() {
production: true
});
- let js = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let js = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(!js.includes('console.log'));
assert(!js.includes('// This is a comment'));
});
@@ -399,7 +399,7 @@ describe('javascript', function() {
it('should insert global variables when needed', async function() {
let b = await bundle(__dirname + '/integration/globals/index.js');
- let output = run(b);
+ let output = await run(b);
assert.deepEqual(output(), {
dir: path.join(__dirname, '/integration/globals'),
file: path.join(__dirname, '/integration/globals/index.js'),
@@ -411,7 +411,7 @@ describe('javascript', function() {
it('should handle re-declaration of the global constant', async function() {
let b = await bundle(__dirname + '/integration/global-redeclare/index.js');
- let output = run(b);
+ let output = await run(b);
assert.deepEqual(output(), false);
});
@@ -420,7 +420,7 @@ describe('javascript', function() {
target: 'node'
});
- let output = run(b);
+ let output = await run(b);
assert.ok(output.toString().indexOf('process.env') > -1);
assert.equal(output(), 'test:test');
});
@@ -430,7 +430,7 @@ describe('javascript', function() {
target: 'electron'
});
- let output = run(b);
+ let output = await run(b);
assert.ok(output.toString().indexOf('process.env') > -1);
assert.equal(output(), 'test:test');
});
@@ -440,7 +440,7 @@ describe('javascript', function() {
target: 'browser'
});
- let output = run(b);
+ let output = await run(b);
assert.ok(output.toString().indexOf('process.env') === -1);
assert.equal(output(), 'test:test');
});
@@ -448,7 +448,7 @@ describe('javascript', function() {
it('should insert environment variables from a file', async function() {
let b = await bundle(__dirname + '/integration/env-file/index.js');
- let output = run(b);
+ let output = await run(b);
assert.equal(output, 'bartest');
});
@@ -463,7 +463,7 @@ describe('javascript', function() {
}
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'local.json', 'index.css'],
childBundles: [
@@ -477,7 +477,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 3);
});
@@ -485,7 +485,7 @@ describe('javascript', function() {
it('should support requiring YAML files', async function() {
let b = await bundle(__dirname + '/integration/yaml/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'local.yaml'],
childBundles: [
@@ -495,7 +495,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 3);
});
@@ -503,7 +503,7 @@ describe('javascript', function() {
it('should support requiring TOML files', async function() {
let b = await bundle(__dirname + '/integration/toml/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'local.toml'],
childBundles: [
@@ -513,7 +513,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 3);
});
@@ -521,7 +521,7 @@ describe('javascript', function() {
it('should support requiring CoffeeScript files', async function() {
let b = await bundle(__dirname + '/integration/coffee/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'local.coffee'],
childBundles: [
@@ -531,7 +531,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 3);
});
@@ -539,7 +539,7 @@ describe('javascript', function() {
it('should resolve the browser field before main', async function() {
let b = await bundle(__dirname + '/integration/resolve-entries/browser.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'browser.js',
assets: ['browser.js', 'browser-module.js'],
childBundles: [
@@ -549,7 +549,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.test, 'function');
assert.equal(output.test(), 'pkg-browser');
@@ -560,7 +560,7 @@ describe('javascript', function() {
__dirname + '/integration/resolve-entries/browser-multiple.js'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'browser-multiple.js',
assets: [
'browser-multiple.js',
@@ -574,7 +574,7 @@ describe('javascript', function() {
]
});
- let {test: output} = run(b);
+ let {test: output} = await run(b);
assert.equal(typeof output.projected.test, 'function');
assert.equal(typeof output.entry.test, 'function');
@@ -587,7 +587,7 @@ describe('javascript', function() {
__dirname + '/integration/resolve-entries/module-field.js'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'module-field.js',
assets: ['module-field.js', 'es6.module.js'],
childBundles: [
@@ -597,7 +597,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.test, 'function');
assert.equal(output.test(), 'pkg-es6-module');
@@ -608,7 +608,7 @@ describe('javascript', function() {
__dirname + '/integration/resolve-entries/both-fields.js'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'both-fields.js',
assets: ['both-fields.js', 'es6.module.js'],
childBundles: [
@@ -618,7 +618,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.test, 'function');
assert.equal(output.test(), 'pkg-es6-module');
@@ -629,7 +629,7 @@ describe('javascript', function() {
__dirname + '/integration/resolve-entries/main-field.js'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'main-field.js',
assets: ['main-field.js', 'main.js'],
childBundles: [
@@ -639,7 +639,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.test, 'function');
assert.equal(output.test(), 'pkg-main-module');
@@ -650,7 +650,7 @@ describe('javascript', function() {
production: true
});
- let json = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let json = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(json.includes('{test:"test"}'));
});
@@ -659,7 +659,7 @@ describe('javascript', function() {
production: true
});
- let json = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let json = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(json.includes('{test:"test"}'));
});
@@ -668,7 +668,7 @@ describe('javascript', function() {
production: true
});
- let json = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let json = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(json.includes('{a:1,b:{c:2}}'));
});
@@ -677,14 +677,14 @@ describe('javascript', function() {
production: true
});
- let json = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let json = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(json.includes('{a:1,b:{c:2}}'));
});
it('should support compiling with babel using .babelrc config', async function() {
await bundle(__dirname + '/integration/babel/index.js');
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(file.includes('class Foo {}'));
assert(file.includes('class Bar {}'));
});
@@ -692,7 +692,7 @@ describe('javascript', function() {
it('should compile with babel with default engines if no config', async function() {
await bundle(__dirname + '/integration/babel-default/index.js');
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(!file.includes('class Foo {}'));
assert(!file.includes('class Bar {}'));
});
@@ -700,7 +700,7 @@ describe('javascript', function() {
it('should support compiling with babel using browserlist', async function() {
await bundle(__dirname + '/integration/babel-browserslist/index.js');
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(!file.includes('class Foo {}'));
assert(!file.includes('class Bar {}'));
});
@@ -708,7 +708,7 @@ describe('javascript', function() {
it('should support splitting babel-polyfill using browserlist', async function() {
await bundle(__dirname + '/integration/babel-polyfill/index.js');
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(file.includes('async function Bar() {}'));
assert(!file.includes('regenerator'));
});
@@ -722,14 +722,14 @@ describe('javascript', function() {
let file;
// Dev build test
await bundle(__dirname + projectBasePath + '/index.js');
- file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(devRegExp.test(file) === true);
assert(prodRegExp.test(file) === false);
// Prod build test
await bundle(__dirname + projectBasePath + '/index.js', {
production: true
});
- file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(prodRegExp.test(file) === true);
assert(devRegExp.test(file) === false);
}
@@ -745,7 +745,7 @@ describe('javascript', function() {
it('should not compile node_modules by default', async function() {
await bundle(__dirname + '/integration/babel-node-modules/index.js');
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(file.includes('class Foo {}'));
assert(!file.includes('class Bar {}'));
});
@@ -755,7 +755,7 @@ describe('javascript', function() {
__dirname + '/integration/babel-node-modules-browserify/index.js'
);
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(!file.includes('class Foo {}'));
assert(!file.includes('class Bar {}'));
});
@@ -765,7 +765,7 @@ describe('javascript', function() {
__dirname + '/integration/babel-node-modules-browserslist/index.js'
);
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(!file.includes('class Foo {}'));
assert(!file.includes('class Bar {}'));
});
@@ -773,7 +773,7 @@ describe('javascript', function() {
it('should compile node_modules when symlinked with a source field in package.json', async function() {
await bundle(__dirname + '/integration/babel-node-modules-source/index.js');
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(!file.includes('class Foo {}'));
assert(!file.includes('class Bar {}'));
});
@@ -783,7 +783,7 @@ describe('javascript', function() {
__dirname + '/integration/babel-node-modules-source-unlinked/index.js'
);
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(file.includes('class Foo {}'));
assert(!file.includes('class Bar {}'));
});
@@ -791,42 +791,42 @@ describe('javascript', function() {
it('should support compiling JSX', async function() {
await bundle(__dirname + '/integration/jsx/index.jsx');
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(file.includes('React.createElement("div"'));
});
it('should support compiling JSX in JS files with React dependency', async function() {
await bundle(__dirname + '/integration/jsx-react/index.js');
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(file.includes('React.createElement("div"'));
});
it('should support compiling JSX in JS files with Preact dependency', async function() {
await bundle(__dirname + '/integration/jsx-preact/index.js');
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(file.includes('h("div"'));
});
it('should support compiling JSX in JS files with Nerv dependency', async function() {
await bundle(__dirname + '/integration/jsx-nervjs/index.js');
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(file.includes('Nerv.createElement("div"'));
});
it('should support compiling JSX in JS files with Hyperapp dependency', async function() {
await bundle(__dirname + '/integration/jsx-hyperapp/index.js');
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(file.includes('h("div"'));
});
it('should support optional dependencies in try...catch blocks', async function() {
let b = await bundle(__dirname + '/integration/optional-dep/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js'],
childBundles: [
@@ -836,7 +836,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
let err = new Error('Cannot find module "optional-dep"');
err.code = 'MODULE_NOT_FOUND';
@@ -847,7 +847,7 @@ describe('javascript', function() {
it('should support excluding dependencies in falsy branches', async function() {
let b = await bundle(__dirname + '/integration/falsy-dep/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'true-alternate.js', 'true-consequent.js'],
childBundles: [
@@ -857,7 +857,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(output, 2);
});
@@ -896,7 +896,7 @@ describe('javascript', function() {
it('should ignore require if it is defined in the scope', async function() {
let b = await bundle(__dirname + '/integration/require-scope/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js'],
childBundles: [
@@ -906,7 +906,7 @@ describe('javascript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.test, 'object');
@@ -921,7 +921,7 @@ describe('javascript', function() {
let b = await bundle(__dirname + '/integration/entry-point/index.js');
let module = {};
- run(b, {module, exports: {}});
+ await run(b, {module, exports: {}});
assert.equal(module.exports(), 'Test!');
});
@@ -933,7 +933,7 @@ describe('javascript', function() {
};
mockDefine.amd = true;
- run(b, {define: mockDefine});
+ await run(b, {define: mockDefine});
assert.equal(test(), 'Test!');
});
@@ -942,7 +942,7 @@ describe('javascript', function() {
global: 'testing'
});
- const ctx = run(b, null, {require: false});
+ const ctx = await run(b, null, {require: false});
assert.equal(ctx.window.testing(), 'Test!');
});
@@ -954,7 +954,7 @@ describe('javascript', function() {
};
mockDefine.amd = true;
- run(b, {define: mockDefine});
+ await run(b, {define: mockDefine});
assert.equal(test, 2);
});
});
diff --git a/test/less.js b/test/less.js
index b42caaf660f..7bd170cd89b 100644
--- a/test/less.js
+++ b/test/less.js
@@ -1,12 +1,12 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const {bundle, run, assertBundleTree} = require('./utils');
describe('less', function() {
it('should support requiring less files', async function() {
let b = await bundle(__dirname + '/integration/less/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.less'],
childBundles: [
@@ -21,18 +21,18 @@ describe('less', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('.index'));
});
it('should support less imports', async function() {
let b = await bundle(__dirname + '/integration/less-import/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.less'],
childBundles: [
@@ -47,11 +47,11 @@ describe('less', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('.index'));
assert(css.includes('.base'));
});
@@ -61,7 +61,7 @@ describe('less', function() {
__dirname + '/integration/less-advanced-import/index.js'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.less'],
childBundles: [
@@ -76,11 +76,11 @@ describe('less', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('.index'));
assert(css.includes('.base'));
});
@@ -88,7 +88,7 @@ describe('less', function() {
it('should support requiring empty less files', async function() {
let b = await bundle(__dirname + '/integration/less-empty/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.less'],
childBundles: [
@@ -103,18 +103,18 @@ describe('less', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert.equal(css, '');
});
it('should support linking to assets with url() from less', async function() {
let b = await bundle(__dirname + '/integration/less-url/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.less'],
childBundles: [
@@ -134,17 +134,17 @@ describe('less', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(/url\("test\.[0-9a-f]+\.woff2"\)/.test(css));
assert(css.includes('url("http://google.com")'));
assert(css.includes('.index'));
assert(
- fs.existsSync(
+ await fs.exists(
__dirname + '/dist/' + css.match(/url\("(test\.[0-9a-f]+\.woff2)"\)/)[1]
)
);
@@ -153,7 +153,7 @@ describe('less', function() {
it('should support transforming less with postcss', async function() {
let b = await bundle(__dirname + '/integration/less-postcss/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.less'],
childBundles: [
@@ -168,11 +168,11 @@ describe('less', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), '_index_ku5n8_1');
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('._index_ku5n8_1'));
});
});
diff --git a/test/parser.js b/test/parser.js
index 05676789a66..7d5ab3b6766 100644
--- a/test/parser.js
+++ b/test/parser.js
@@ -1,5 +1,5 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const {bundle, assertBundleTree} = require('./utils');
describe('parser', function() {
@@ -8,7 +8,7 @@ describe('parser', function() {
__dirname + '/integration/parser-case-insensitive-ext/index.html'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -40,8 +40,8 @@ describe('parser', function() {
]
});
- let files = fs.readdirSync(__dirname + '/dist');
- let html = fs.readFileSync(__dirname + '/dist/index.html');
+ let files = await fs.readdir(__dirname + '/dist');
+ let html = await fs.readFile(__dirname + '/dist/index.html');
for (let file of files) {
let ext = file.match(/\.([0-9a-z]+)(?:[?#]|$)/i)[0];
if (file !== 'index.html' && ext !== '.map') {
diff --git a/test/plugins.js b/test/plugins.js
index 1daefc95018..76ede040b4c 100644
--- a/test/plugins.js
+++ b/test/plugins.js
@@ -5,7 +5,7 @@ describe('plugins', function() {
it('should load plugins and apply custom asset type', async function() {
let b = await bundle(__dirname + '/integration/plugins/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'test.txt'],
childBundles: [
@@ -15,7 +15,7 @@ describe('plugins', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(output, 'hello world');
});
@@ -24,7 +24,7 @@ describe('plugins', function() {
__dirname + '/integration/plugins/sub-folder/index.js'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'test.txt'],
childBundles: [
@@ -34,7 +34,7 @@ describe('plugins', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(output, 'hello world');
});
});
diff --git a/test/pug.js b/test/pug.js
index c9a578ad014..49cfdb8ad49 100644
--- a/test/pug.js
+++ b/test/pug.js
@@ -1,12 +1,12 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const {bundle, assertBundleTree} = require('./utils');
describe('pug', function() {
it('should support bundling HTML', async function() {
const b = await bundle(__dirname + '/integration/pug/index.pug');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.pug'],
childBundles: [
@@ -37,8 +37,8 @@ describe('pug', function() {
]
});
- const files = fs.readdirSync(__dirname + '/dist');
- const html = fs.readFileSync(__dirname + '/dist/index.html');
+ const files = await fs.readdir(__dirname + '/dist');
+ const html = await fs.readFile(__dirname + '/dist/index.html');
for (const file of files) {
const ext = file.match(/\.([0-9a-z]+)(?:[?#]|$)/i)[0];
if (file !== 'index.html' && ext !== '.map') {
@@ -52,13 +52,13 @@ describe('pug', function() {
__dirname + '/integration/pug-include-extends/index.pug'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.pug']
});
- const html = fs.readFileSync(__dirname + '/dist/index.html', 'utf-8');
- const expect = fs.readFileSync(
+ const html = await fs.readFile(__dirname + '/dist/index.html', 'utf-8');
+ const expect = await fs.readFile(
__dirname + '/integration/pug-include-extends/expect.html',
'utf-8'
);
@@ -69,12 +69,12 @@ describe('pug', function() {
it('should support variables', async function() {
const b = await bundle(__dirname + '/integration/pug-var/index.pug');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.pug']
});
- const html = fs.readFileSync(__dirname + '/dist/index.html', 'utf-8');
+ const html = await fs.readFile(__dirname + '/dist/index.html', 'utf-8');
assert(/src="\/?100x100.*.png"/.test(html));
});
@@ -82,24 +82,24 @@ describe('pug', function() {
it('should support mixins', async function() {
const b = await bundle(__dirname + '/integration/pug-mixins/index.pug');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.pug']
});
- const html = fs.readFileSync(__dirname + '/dist/index.html', 'utf-8');
+ const html = await fs.readFile(__dirname + '/dist/index.html', 'utf-8');
assert(html.includes('Greetings, Parcel'));
});
it('should support filters', async function() {
const b = await bundle(__dirname + '/integration/pug-filters/index.pug');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.pug']
});
- const html = fs.readFileSync(__dirname + '/dist/index.html', 'utf-8');
+ const html = await fs.readFile(__dirname + '/dist/index.html', 'utf-8');
assert(html.includes('FILTERED: Hello!'));
});
@@ -108,12 +108,12 @@ describe('pug', function() {
production: true
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.pug']
});
- const html = fs.readFileSync(__dirname + '/dist/index.html', 'utf-8');
+ const html = await fs.readFile(__dirname + '/dist/index.html', 'utf-8');
assert(html.includes('Minified'));
});
diff --git a/test/reason.js b/test/reason.js
index 70ee039319b..b6a0e944093 100644
--- a/test/reason.js
+++ b/test/reason.js
@@ -8,7 +8,7 @@ describe('reason', function() {
assert.equal(b.assets.size, 2);
assert.equal(b.childBundles.size, 1);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 3);
});
diff --git a/test/rust.js b/test/rust.js
index 6673b442210..69232368b0f 100644
--- a/test/rust.js
+++ b/test/rust.js
@@ -1,6 +1,6 @@
const assert = require('assert');
const {bundle, bundler, run, assertBundleTree} = require('./utils');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const commandExists = require('command-exists');
describe('rust', function() {
@@ -16,7 +16,7 @@ describe('rust', function() {
this.timeout(500000);
let b = await bundle(__dirname + '/integration/rust/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: [
'bundle-loader.js',
@@ -36,11 +36,11 @@ describe('rust', function() {
]
});
- var res = await run(b);
+ var res = await await run(b);
assert.equal(res, 5);
// not minified
- assert(fs.statSync(Array.from(b.childBundles)[0].name).size > 500);
+ assert((await fs.stat(Array.from(b.childBundles)[0].name)).size > 500);
});
it('should generate a wasm file from a rust file with rustc with --target=node', async function() {
@@ -49,7 +49,7 @@ describe('rust', function() {
target: 'node'
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: [
'bundle-loader.js',
@@ -73,7 +73,7 @@ describe('rust', function() {
assert.equal(res, 5);
// not minified
- assert(fs.statSync(Array.from(b.childBundles)[0].name).size > 500);
+ assert((await fs.stat(Array.from(b.childBundles)[0].name)).size > 500);
});
it('should support rust files with dependencies via rustc', async function() {
@@ -81,7 +81,7 @@ describe('rust', function() {
let b = bundler(__dirname + '/integration/rust-deps/index.js');
let bundle = await b.bundle();
- assertBundleTree(bundle, {
+ await assertBundleTree(bundle, {
name: 'index.js',
assets: [
'bundle-loader.js',
@@ -109,7 +109,7 @@ describe('rust', function() {
this.timeout(500000);
let b = await bundle(__dirname + '/integration/rust-cargo/src/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: [
'bundle-loader.js',
@@ -142,7 +142,7 @@ describe('rust', function() {
minify: false,
sourceMaps: false
});
- const size = fs.statSync(Array.from(b.childBundles)[0].name).size;
+ const size = (await fs.stat(Array.from(b.childBundles)[0].name)).size;
let bMinified = await bundle(__dirname + '/integration/rust/index.js', {
minify: true,
@@ -166,14 +166,15 @@ describe('rust', function() {
]
};
- assertBundleTree(b, bundleTree);
- assertBundleTree(bMinified, bundleTree);
+ await assertBundleTree(b, bundleTree);
+ await assertBundleTree(bMinified, bundleTree);
var res = await run(bMinified);
assert.equal(res, 5);
- const sizeMinified = fs.statSync(Array.from(bMinified.childBundles)[0].name)
- .size;
+ const sizeMinified = (await fs.stat(
+ Array.from(bMinified.childBundles)[0].name
+ )).size;
assert(sizeMinified < size);
});
});
diff --git a/test/sass.js b/test/sass.js
index 9be0fde884f..a99b638ab07 100644
--- a/test/sass.js
+++ b/test/sass.js
@@ -1,12 +1,12 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const {bundle, run, assertBundleTree} = require('./utils');
describe('sass', function() {
it('should support requiring sass files', async function() {
let b = await bundle(__dirname + '/integration/sass/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.sass'],
childBundles: [
@@ -21,18 +21,18 @@ describe('sass', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('.index'));
});
it('should support requiring scss files', async function() {
let b = await bundle(__dirname + '/integration/scss/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.scss'],
childBundles: [
@@ -47,18 +47,18 @@ describe('sass', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('.index'));
});
it('should support scss imports', async function() {
let b = await bundle(__dirname + '/integration/scss-import/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.scss'],
childBundles: [
@@ -73,11 +73,11 @@ describe('sass', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('.index'));
assert(css.includes('.foo'));
assert(css.includes('.bar'));
@@ -86,7 +86,7 @@ describe('sass', function() {
it('should support requiring empty scss files', async function() {
let b = await bundle(__dirname + '/integration/scss-empty/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.scss'],
childBundles: [
@@ -101,18 +101,18 @@ describe('sass', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert.equal(css, '');
});
it('should support linking to assets with url() from scss', async function() {
let b = await bundle(__dirname + '/integration/scss-url/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.scss'],
childBundles: [
@@ -132,17 +132,17 @@ describe('sass', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(/url\("test\.[0-9a-f]+\.woff2"\)/.test(css));
assert(css.includes('url("http://google.com")'));
assert(css.includes('.index'));
assert(
- fs.existsSync(
+ await fs.exists(
__dirname + '/dist/' + css.match(/url\("(test\.[0-9a-f]+\.woff2)"\)/)[1]
)
);
@@ -151,7 +151,7 @@ describe('sass', function() {
it('should support transforming scss with postcss', async function() {
let b = await bundle(__dirname + '/integration/scss-postcss/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.scss'],
childBundles: [
@@ -166,11 +166,11 @@ describe('sass', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), '_index_1a1ih_1');
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('._index_1a1ih_1'));
});
@@ -179,14 +179,15 @@ describe('sass', function() {
__dirname + '/integration/sass-advanced-import/index.sass'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.css',
assets: ['index.sass']
});
- let css = fs
- .readFileSync(__dirname + '/dist/index.css', 'utf8')
- .replace(/\s+/g, ' ');
+ let css = (await fs.readFile(
+ __dirname + '/dist/index.css',
+ 'utf8'
+ )).replace(/\s+/g, ' ');
assert(css.includes('.foo { color: blue;'));
assert(css.includes('.bar { color: green;'));
});
diff --git a/test/server.js b/test/server.js
index 3a1fbb38576..40cea6b06ab 100644
--- a/test/server.js
+++ b/test/server.js
@@ -1,5 +1,5 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const {bundler} = require('./utils');
const http = require('http');
const https = require('https');
@@ -43,7 +43,7 @@ describe('server', function() {
server = await b.serve(0);
let data = await get('/index.js');
- assert.equal(data, fs.readFileSync(__dirname + '/dist/index.js', 'utf8'));
+ assert.equal(data, await fs.readFile(__dirname + '/dist/index.js', 'utf8'));
});
it('should serve a default page if the main bundle is an HTML asset', async function() {
@@ -51,10 +51,16 @@ describe('server', function() {
server = await b.serve(0);
let data = await get('/');
- assert.equal(data, fs.readFileSync(__dirname + '/dist/index.html', 'utf8'));
+ assert.equal(
+ data,
+ await fs.readFile(__dirname + '/dist/index.html', 'utf8')
+ );
data = await get('/foo/bar');
- assert.equal(data, fs.readFileSync(__dirname + '/dist/index.html', 'utf8'));
+ assert.equal(
+ data,
+ await fs.readFile(__dirname + '/dist/index.html', 'utf8')
+ );
});
it('should serve a 404 if the file does not exist', async function() {
@@ -93,7 +99,7 @@ describe('server', function() {
server = await b.serve(0, true);
let data = await get('/index.js', https);
- assert.equal(data, fs.readFileSync(__dirname + '/dist/index.js', 'utf8'));
+ assert.equal(data, await fs.readFile(__dirname + '/dist/index.js', 'utf8'));
});
it('should support HTTPS via custom certificate', async function() {
@@ -104,7 +110,7 @@ describe('server', function() {
});
let data = await get('/index.js', https);
- assert.equal(data, fs.readFileSync(__dirname + '/dist/index.js', 'utf8'));
+ assert.equal(data, await fs.readFile(__dirname + '/dist/index.js', 'utf8'));
});
it('should support setting a public url', async function() {
@@ -114,7 +120,7 @@ describe('server', function() {
server = await b.serve(0);
let data = await get('/dist/index.js');
- assert.equal(data, fs.readFileSync(__dirname + '/dist/index.js', 'utf8'));
+ assert.equal(data, await fs.readFile(__dirname + '/dist/index.js', 'utf8'));
});
it('should serve static assets as well as html', async function() {
@@ -124,9 +130,12 @@ describe('server', function() {
server = await b.serve(0);
// When accessing / we should get the index page.
let data = await get('/');
- assert.equal(data, fs.readFileSync(__dirname + '/dist/index.html', 'utf8'));
+ assert.equal(
+ data,
+ await fs.readFile(__dirname + '/dist/index.html', 'utf8')
+ );
// When accessing /hello.txt we should get txt document.
- fs.writeFileSync(__dirname + '/dist/hello.txt', 'hello');
+ await fs.writeFile(__dirname + '/dist/hello.txt', 'hello');
data = await get('/hello.txt');
assert.equal(data, 'hello');
});
@@ -138,6 +147,9 @@ describe('server', function() {
server = await b.serve(0);
let data = await get('/?foo=bar.baz');
- assert.equal(data, fs.readFileSync(__dirname + '/dist/index.html', 'utf8'));
+ assert.equal(
+ data,
+ await fs.readFile(__dirname + '/dist/index.html', 'utf8')
+ );
});
});
diff --git a/test/sourcemaps.js b/test/sourcemaps.js
index f9218a5e172..f1f6242f495 100644
--- a/test/sourcemaps.js
+++ b/test/sourcemaps.js
@@ -1,5 +1,5 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const path = require('path');
const mapValidator = require('sourcemap-validator');
const {bundler, bundle, run, assertBundleTree} = require('./utils');
@@ -9,7 +9,7 @@ describe('sourcemaps', function() {
let b = bundler(__dirname + '/integration/sourcemap/index.js');
let bu = await b.bundle();
- assertBundleTree(bu, {
+ await assertBundleTree(bu, {
name: 'index.js',
assets: ['index.js'],
childBundles: [
@@ -20,12 +20,12 @@ describe('sourcemaps', function() {
]
});
- let raw = fs
- .readFileSync(path.join(__dirname, '/dist/index.js'))
- .toString();
- let map = fs
- .readFileSync(path.join(__dirname, '/dist/index.map'))
- .toString();
+ let raw = (await fs.readFile(
+ path.join(__dirname, '/dist/index.js')
+ )).toString();
+ let map = (await fs.readFile(
+ path.join(__dirname, '/dist/index.map')
+ )).toString();
mapValidator(raw, map);
let mapObject = JSON.parse(map);
assert(
@@ -34,7 +34,7 @@ describe('sourcemaps', function() {
'sourceRoot should be the root of the source files, relative to the output directory.'
);
assert(
- fs.existsSync(
+ await fs.exists(
path.resolve(
b.options.outDir,
mapObject.sourceRoot,
@@ -44,7 +44,7 @@ describe('sourcemaps', function() {
'combining sourceRoot and sources object should resolve to the original file'
);
- let output = run(bu);
+ let output = await run(bu);
assert.equal(typeof output, 'function');
assert.equal(output(), 'hello world');
});
@@ -54,7 +54,7 @@ describe('sourcemaps', function() {
__dirname + '/integration/sourcemap-typescript/index.ts'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.ts'],
childBundles: [
@@ -65,15 +65,15 @@ describe('sourcemaps', function() {
]
});
- let raw = fs
- .readFileSync(path.join(__dirname, '/dist/index.js'))
- .toString();
- let map = fs
- .readFileSync(path.join(__dirname, '/dist/index.map'))
- .toString();
+ let raw = (await fs.readFile(
+ path.join(__dirname, '/dist/index.js')
+ )).toString();
+ let map = (await fs.readFile(
+ path.join(__dirname, '/dist/index.map')
+ )).toString();
mapValidator(raw, map);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.env, 'function');
assert.equal(output.env(), process.env.NODE_ENV);
});
@@ -83,7 +83,7 @@ describe('sourcemaps', function() {
__dirname + '/integration/sourcemap-typescript-nested/index.ts'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.ts', 'local.ts'],
childBundles: [
@@ -94,15 +94,15 @@ describe('sourcemaps', function() {
]
});
- let raw = fs
- .readFileSync(path.join(__dirname, '/dist/index.js'))
- .toString();
- let map = fs
- .readFileSync(path.join(__dirname, '/dist/index.map'))
- .toString();
+ let raw = (await fs.readFile(
+ path.join(__dirname, '/dist/index.js')
+ )).toString();
+ let map = (await fs.readFile(
+ path.join(__dirname, '/dist/index.map')
+ )).toString();
mapValidator(raw, map);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.env, 'function');
assert.equal(output.env(), process.env.NODE_ENV);
});
@@ -110,7 +110,7 @@ describe('sourcemaps', function() {
it('should create a valid sourcemap for a js file with requires', async function() {
let b = await bundle(__dirname + '/integration/sourcemap-nested/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'local.js', 'util.js'],
childBundles: [
@@ -121,15 +121,15 @@ describe('sourcemaps', function() {
]
});
- let raw = fs
- .readFileSync(path.join(__dirname, '/dist/index.js'))
- .toString();
- let map = fs
- .readFileSync(path.join(__dirname, '/dist/index.map'))
- .toString();
+ let raw = (await fs.readFile(
+ path.join(__dirname, '/dist/index.js')
+ )).toString();
+ let map = (await fs.readFile(
+ path.join(__dirname, '/dist/index.map')
+ )).toString();
mapValidator(raw, map);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 14);
});
@@ -142,7 +142,7 @@ describe('sourcemaps', function() {
}
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'local.js', 'util.js'],
childBundles: [
@@ -153,15 +153,15 @@ describe('sourcemaps', function() {
]
});
- let raw = fs
- .readFileSync(path.join(__dirname, '/dist/index.js'))
- .toString();
- let map = fs
- .readFileSync(path.join(__dirname, '/dist/index.map'))
- .toString();
+ let raw = (await fs.readFile(
+ path.join(__dirname, '/dist/index.js')
+ )).toString();
+ let map = (await fs.readFile(
+ path.join(__dirname, '/dist/index.map')
+ )).toString();
mapValidator(raw, map);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 14);
});
@@ -171,7 +171,7 @@ describe('sourcemaps', function() {
__dirname + '/integration/sourcemap-reference/index.html'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.html',
assets: ['index.html'],
childBundles: [
@@ -187,9 +187,9 @@ describe('sourcemaps', function() {
]
});
- let jsOutput = fs
- .readFileSync(Array.from(b.childBundles)[0].name)
- .toString();
+ let jsOutput = (await fs.readFile(
+ Array.from(b.childBundles)[0].name
+ )).toString();
let sourcemapReference = path.join(
__dirname,
@@ -197,11 +197,11 @@ describe('sourcemaps', function() {
jsOutput.substring(jsOutput.lastIndexOf('//# sourceMappingURL') + 22)
);
assert(
- fs.existsSync(path.join(sourcemapReference)),
+ await fs.exists(path.join(sourcemapReference)),
'referenced sourcemap should exist'
);
- let map = fs.readFileSync(path.join(sourcemapReference)).toString();
+ let map = (await fs.readFile(path.join(sourcemapReference))).toString();
mapValidator(jsOutput, map);
});
});
diff --git a/test/stylus.js b/test/stylus.js
index 1623fa0cc55..fefc1734ab2 100644
--- a/test/stylus.js
+++ b/test/stylus.js
@@ -1,12 +1,12 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const {bundle, run, assertBundleTree} = require('./utils');
describe('stylus', function() {
it('should support requiring stylus files', async function() {
let b = await bundle(__dirname + '/integration/stylus/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.styl'],
childBundles: [
@@ -21,11 +21,11 @@ describe('stylus', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('.index'));
});
@@ -34,7 +34,7 @@ describe('stylus', function() {
// a.styl shouldn't be included as a dependency that we can see.
// stylus takes care of inlining it.
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.styl'],
childBundles: [
@@ -49,11 +49,11 @@ describe('stylus', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('.index'));
assert(css.includes('.a'));
assert(css.includes('-webkit-box'));
@@ -62,7 +62,7 @@ describe('stylus', function() {
it('should support linking to assets with url() from stylus', async function() {
let b = await bundle(__dirname + '/integration/stylus-url/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.styl'],
childBundles: [
@@ -82,17 +82,17 @@ describe('stylus', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), 2);
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(/url\("test\.[0-9a-f]+\.woff2"\)/.test(css));
assert(css.includes('url("http://google.com")'));
assert(css.includes('.index'));
assert(
- fs.existsSync(
+ await fs.exists(
__dirname + '/dist/' + css.match(/url\("(test\.[0-9a-f]+\.woff2)"\)/)[1]
)
);
@@ -101,7 +101,7 @@ describe('stylus', function() {
it('should support transforming stylus with postcss', async function() {
let b = await bundle(__dirname + '/integration/stylus-postcss/index.js');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.js', 'index.styl'],
childBundles: [
@@ -116,11 +116,11 @@ describe('stylus', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output, 'function');
assert.equal(output(), '_index_g9mqo_1');
- let css = fs.readFileSync(__dirname + '/dist/index.css', 'utf8');
+ let css = await fs.readFile(__dirname + '/dist/index.css', 'utf8');
assert(css.includes('._index_g9mqo_1'));
});
});
diff --git a/test/typescript.js b/test/typescript.js
index 22869863072..ab8520b6c14 100644
--- a/test/typescript.js
+++ b/test/typescript.js
@@ -1,5 +1,5 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
const {bundle, run, assertBundleTree} = require('./utils');
describe('typescript', function() {
@@ -9,7 +9,7 @@ describe('typescript', function() {
assert.equal(b.assets.size, 2);
assert.equal(b.childBundles.size, 1);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.count, 'function');
assert.equal(output.count(), 3);
});
@@ -22,7 +22,7 @@ describe('typescript', function() {
assert.equal(b.assets.size, 2);
assert.equal(b.childBundles.size, 1);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.count, 'function');
assert.equal(output.count(), 3);
});
@@ -33,7 +33,7 @@ describe('typescript', function() {
assert.equal(b.assets.size, 2);
assert.equal(b.childBundles.size, 1);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.count, 'function');
assert.equal(output.count(), 3);
});
@@ -44,7 +44,7 @@ describe('typescript', function() {
assert.equal(b.assets.size, 1);
assert.equal(b.childBundles.size, 1);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.env, 'function');
assert.equal(output.env(), 'test');
});
@@ -52,7 +52,7 @@ describe('typescript', function() {
it('should support importing a URL to a raw asset', async function() {
let b = await bundle(__dirname + '/integration/typescript-raw/index.ts');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.ts', 'test.txt'],
childBundles: [
@@ -67,10 +67,10 @@ describe('typescript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.getRaw, 'function');
assert(/^\/test\.[0-9a-f]+\.txt$/.test(output.getRaw()));
- assert(fs.existsSync(__dirname + '/dist/' + output.getRaw()));
+ assert(await fs.exists(__dirname + '/dist/' + output.getRaw()));
});
it('should minify in production mode', async function() {
@@ -82,28 +82,28 @@ describe('typescript', function() {
assert.equal(b.assets.size, 2);
assert.equal(b.childBundles.size, 1);
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.count, 'function');
assert.equal(output.count(), 3);
- let js = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let js = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(!js.includes('local.a'));
});
it('should support loading tsconfig.json', async function() {
let b = await bundle(__dirname + '/integration/typescript-config/index.ts');
- let output = run(b);
+ let output = await run(b);
assert.equal(output, 2);
- let js = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let js = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(!js.includes('/* test comment */'));
});
it('should support compiling JSX', async function() {
await bundle(__dirname + '/integration/typescript-jsx/index.tsx');
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(file.includes('React.createElement("div"'));
});
@@ -112,7 +112,7 @@ describe('typescript', function() {
__dirname + '/integration/typescript-interop/index.ts'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: ['index.ts', 'commonjs-module.js'],
childBundles: [
@@ -122,7 +122,7 @@ describe('typescript', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.test, 'function');
assert.equal(output.test(), 'test passed');
});
diff --git a/test/utils.js b/test/utils.js
index 443fa865df8..b1ff392ec35 100644
--- a/test/utils.js
+++ b/test/utils.js
@@ -1,12 +1,16 @@
const Bundler = require('../src/Bundler');
-const rimraf = require('rimraf');
const assert = require('assert');
const vm = require('vm');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
+const nodeFS = require('fs');
const path = require('path');
const WebSocket = require('ws');
const Module = require('module');
+const promisify = require('../src/utils/promisify');
+const rimraf = promisify(require('rimraf'));
+const ncp = promisify(require('ncp'));
+
beforeEach(async function() {
// Test run in a single process, creating and deleting the same file(s)
// Windows needs a delay for the file handles to be released before deleting
@@ -16,7 +20,7 @@ beforeEach(async function() {
}
// Unix based systems also need a delay but only half as much as windows
await sleep(50);
- rimraf.sync(path.join(__dirname, 'dist'));
+ await rimraf(path.join(__dirname, 'dist'));
});
function sleep(ms) {
@@ -62,7 +66,7 @@ function prepareBrowserContext(bundle, globals) {
setTimeout(function() {
if (el.tag === 'script') {
vm.runInContext(
- fs.readFileSync(path.join(__dirname, 'dist', el.src)),
+ nodeFS.readFileSync(path.join(__dirname, 'dist', el.src)),
ctx
);
}
@@ -95,8 +99,9 @@ function prepareBrowserContext(bundle, globals) {
return Promise.resolve({
arrayBuffer() {
return Promise.resolve(
- new Uint8Array(fs.readFileSync(path.join(__dirname, 'dist', url)))
- .buffer
+ new Uint8Array(
+ nodeFS.readFileSync(path.join(__dirname, 'dist', url))
+ ).buffer
);
}
});
@@ -133,7 +138,7 @@ function prepareNodeContext(bundle, globals) {
return ctx;
}
-function run(bundle, globals, opts = {}) {
+async function run(bundle, globals, opts = {}) {
var ctx;
switch (bundle.entryAsset.options.target) {
case 'browser':
@@ -151,7 +156,7 @@ function run(bundle, globals, opts = {}) {
}
vm.createContext(ctx);
- vm.runInContext(fs.readFileSync(bundle.name), ctx);
+ vm.runInContext(await fs.readFile(bundle.name), ctx);
if (opts.require !== false) {
return ctx.parcelRequire(bundle.entryAsset.id);
@@ -160,7 +165,7 @@ function run(bundle, globals, opts = {}) {
return ctx;
}
-function assertBundleTree(bundle, tree) {
+async function assertBundleTree(bundle, tree) {
if (tree.name) {
assert.equal(
path.basename(bundle.name),
@@ -200,11 +205,13 @@ function assertBundleTree(bundle, tree) {
childBundles.length,
'expected number of child bundles mismatched'
);
- childBundles.forEach((b, i) => assertBundleTree(children[i], b));
+ await Promise.all(
+ childBundles.map((b, i) => assertBundleTree(children[i], b))
+ );
}
if (/js|css/.test(bundle.type)) {
- assert(fs.existsSync(bundle.name), 'expected file does not exist');
+ assert(await fs.exists(bundle.name), 'expected file does not exist');
}
}
@@ -234,3 +241,5 @@ exports.run = run;
exports.assertBundleTree = assertBundleTree;
exports.nextBundle = nextBundle;
exports.deferred = deferred;
+exports.rimraf = rimraf;
+exports.ncp = ncp;
diff --git a/test/vue.js b/test/vue.js
index 697af17f1de..b2f1343ee33 100644
--- a/test/vue.js
+++ b/test/vue.js
@@ -1,12 +1,12 @@
const assert = require('assert');
const {bundle, assertBundleTree, run} = require('./utils');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
describe('vue', function() {
it('should produce a basic vue bundle', async function() {
let b = await bundle(__dirname + '/integration/vue-basic/Basic.vue');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
type: 'js',
assets: ['Basic.vue'],
childBundles: [
@@ -19,7 +19,7 @@ describe('vue', function() {
]
});
- let output = run(b).default;
+ let output = (await run(b)).default;
assert.equal(typeof output.render, 'function');
assert.deepEqual(output.staticRenderFns, []);
assert.equal(output._compiled, true);
@@ -29,7 +29,7 @@ describe('vue', function() {
it('should produce a vue bundle with dependencies', async function() {
let b = await bundle(__dirname + '/integration/vue-dependencies/App.vue');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
type: 'js',
assets: ['App.vue'],
childBundles: [
@@ -46,7 +46,7 @@ describe('vue', function() {
]
});
- let output = run(b).default;
+ let output = (await run(b)).default;
assert.equal(typeof output.render, 'function');
assert.equal(output.staticRenderFns.length, 2);
assert.deepEqual(output.data(), {msg: 'Welcome to Your Vue.js App!'});
@@ -57,7 +57,7 @@ describe('vue', function() {
__dirname + '/integration/vue-preprocessors/pre-processors.vue'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
type: 'js',
assets: ['pre-processors.vue'],
childBundles: [
@@ -70,12 +70,12 @@ describe('vue', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.render, 'function');
assert.deepEqual(output.staticRenderFns, []);
assert.deepEqual(output.data(), {msg: 'Hello from coffee!'});
- let contents = fs.readFileSync(
+ let contents = await fs.readFile(
__dirname + '/dist/pre-processors.css',
'utf8'
);
@@ -89,7 +89,7 @@ describe('vue', function() {
__dirname + '/integration/vue-functional/functional.vue'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
type: 'js',
assets: ['functional.vue'],
childBundles: [
@@ -99,7 +99,7 @@ describe('vue', function() {
]
});
- let output = run(b);
+ let output = await run(b);
assert.equal(typeof output.render, 'function');
assert.equal(output.staticRenderFns.length, 1);
assert.equal(output.functional, true);
@@ -109,14 +109,17 @@ describe('vue', function() {
output._injectStyles.call(ctx);
assert.equal(typeof ctx.$style.red, 'string');
- let contents = fs.readFileSync(__dirname + '/dist/functional.css', 'utf8');
+ let contents = await fs.readFile(
+ __dirname + '/dist/functional.css',
+ 'utf8'
+ );
assert(contents.includes('.' + ctx.$style.red));
});
it('should produce a vue bundle using scoped styles', async function() {
let b = await bundle(__dirname + '/integration/vue-scoped/App.vue');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
type: 'js',
assets: ['App.vue'],
childBundles: [
@@ -129,20 +132,20 @@ describe('vue', function() {
]
});
- let output = run(b).default;
+ let output = (await run(b)).default;
assert.equal(typeof output.render, 'function');
assert.equal(output.staticRenderFns.length, 1);
assert(/^data-v-[0-9a-h]{6}$/.test(output._scopeId));
assert.deepEqual(output.data(), {ok: true});
- let contents = fs.readFileSync(__dirname + '/dist/App.css', 'utf8');
+ let contents = await fs.readFile(__dirname + '/dist/App.css', 'utf8');
assert(contents.includes(`.test[${output._scopeId}]`));
});
it('should produce a vue bundle using CSS modules', async function() {
let b = await bundle(__dirname + '/integration/vue-css-modules/App.vue');
- assertBundleTree(b, {
+ await assertBundleTree(b, {
type: 'js',
assets: ['App.vue'],
childBundles: [
@@ -155,7 +158,7 @@ describe('vue', function() {
]
});
- let output = run(b).default;
+ let output = (await run(b)).default;
assert.equal(typeof output.render, 'function');
assert.deepEqual(output.staticRenderFns, []);
assert(Array.isArray(output.beforeCreate));
@@ -165,7 +168,7 @@ describe('vue', function() {
output.beforeCreate[0].call(ctx);
assert.equal(typeof ctx.$style.red, 'string');
- let contents = fs.readFileSync(__dirname + '/dist/App.css', 'utf8');
+ let contents = await fs.readFile(__dirname + '/dist/App.css', 'utf8');
assert(contents.includes('.' + ctx.$style.red));
});
@@ -174,7 +177,7 @@ describe('vue', function() {
__dirname + '/integration/vue-nested-components/testcomp.vue'
);
- assertBundleTree(b, {
+ await assertBundleTree(b, {
type: 'js',
assets: [
'testcomp.vue',
@@ -202,7 +205,7 @@ describe('vue', function() {
]
});
- let output = run(b).default;
+ let output = (await run(b)).default;
assert.equal(typeof output.render, 'function');
assert.deepEqual(output.staticRenderFns, []);
assert.equal(output._compiled, true);
@@ -215,7 +218,7 @@ describe('vue', function() {
production: true
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
type: 'js',
assets: ['Basic.vue'],
childBundles: [
@@ -228,7 +231,7 @@ describe('vue', function() {
]
});
- let output = run(b).default;
+ let output = (await run(b)).default;
assert.equal(typeof output.render, 'function');
assert.deepEqual(output.staticRenderFns, []);
assert.equal(output._compiled, true);
diff --git a/test/wasm.js b/test/wasm.js
index 0a84fdbd9b6..7f5a64538df 100644
--- a/test/wasm.js
+++ b/test/wasm.js
@@ -13,7 +13,7 @@ describe('wasm', function() {
target
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: [
'index.js',
@@ -34,7 +34,7 @@ describe('wasm', function() {
});
let promise = deferred();
- run(b, {output: promise.resolve}, {require: false});
+ await run(b, {output: promise.resolve}, {require: false});
assert.equal(await promise, 5);
});
@@ -43,7 +43,7 @@ describe('wasm', function() {
target
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: [
'index.js',
@@ -63,7 +63,7 @@ describe('wasm', function() {
]
});
- var res = run(b);
+ var res = await run(b);
assert.equal(await res, 5);
});
@@ -72,7 +72,7 @@ describe('wasm', function() {
target
});
- assertBundleTree(b, {
+ await assertBundleTree(b, {
name: 'index.js',
assets: [
'index.js',
@@ -102,7 +102,7 @@ describe('wasm', function() {
]
});
- var res = run(b);
+ var res = await run(b);
assert.equal(await res, 5);
});
});
diff --git a/test/watcher.js b/test/watcher.js
index c6986720ed2..11ad0ec3b85 100644
--- a/test/watcher.js
+++ b/test/watcher.js
@@ -1,15 +1,21 @@
const assert = require('assert');
-const fs = require('fs');
+const fs = require('../src/utils/fs');
+const nodeFS = require('fs');
const path = require('path');
-const {bundler, run, assertBundleTree, sleep, nextBundle} = require('./utils');
-const rimraf = require('rimraf');
-const promisify = require('../src/utils/promisify');
-const ncp = promisify(require('ncp'));
+const {
+ bundler,
+ run,
+ assertBundleTree,
+ sleep,
+ nextBundle,
+ rimraf,
+ ncp
+} = require('./utils');
describe('watcher', function() {
let b;
- beforeEach(function() {
- rimraf.sync(__dirname + '/input');
+ beforeEach(async function() {
+ await rimraf(__dirname + '/input');
});
afterEach(function() {
@@ -23,16 +29,16 @@ describe('watcher', function() {
b = bundler(__dirname + '/input/index.js', {watch: true});
let bundle = await b.bundle();
- let output = run(bundle);
+ let output = await run(bundle);
assert.equal(output(), 3);
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/local.js',
'exports.a = 5; exports.b = 5;'
);
bundle = await nextBundle(b);
- output = run(bundle);
+ output = await run(bundle);
assert.equal(output(), 10);
});
@@ -42,7 +48,7 @@ describe('watcher', function() {
b = bundler(__dirname + '/input/index.js', {watch: true});
let bundle = await b.bundle();
- assertBundleTree(bundle, {
+ await assertBundleTree(bundle, {
name: 'index.js',
assets: [
'index.js',
@@ -75,15 +81,15 @@ describe('watcher', function() {
]
});
- let output = run(bundle);
+ let output = await run(bundle);
assert.equal(await output(), 7);
// change b.js so that it no longer depends on common.js.
// This should cause common.js and dependencies to no longer be hoisted to the root bundle.
- fs.writeFileSync(__dirname + '/input/b.js', 'module.exports = 5;');
+ await fs.writeFile(__dirname + '/input/b.js', 'module.exports = 5;');
bundle = await nextBundle(b);
- assertBundleTree(bundle, {
+ await assertBundleTree(bundle, {
name: 'index.js',
assets: ['index.js', 'bundle-loader.js', 'bundle-url.js', 'js-loader.js'],
childBundles: [
@@ -109,7 +115,7 @@ describe('watcher', function() {
]
});
- output = run(bundle);
+ output = await run(bundle);
assert.equal(await output(), 8);
});
@@ -118,24 +124,22 @@ describe('watcher', function() {
b = bundler(__dirname + '/input/index.js', {watch: true});
await b.bundle();
- let mtimes = fs
- .readdirSync(__dirname + '/dist')
- .map(
- f => (fs.statSync(__dirname + '/dist/' + f).mtime.getTime() / 1000) | 0
- );
+ let mtimes = (await fs.readdir(__dirname + '/dist')).map(
+ f =>
+ (nodeFS.statSync(__dirname + '/dist/' + f).mtime.getTime() / 1000) | 0
+ );
await sleep(1100); // mtime only has second level precision
- fs.writeFileSync(
+ await fs.writeFile(
__dirname + '/input/b.js',
'module.exports = require("./common")'
);
await nextBundle(b);
- let newMtimes = fs
- .readdirSync(__dirname + '/dist')
- .map(
- f => (fs.statSync(__dirname + '/dist/' + f).mtime.getTime() / 1000) | 0
- );
+ let newMtimes = (await fs.readdir(__dirname + '/dist')).map(
+ f =>
+ (nodeFS.statSync(__dirname + '/dist/' + f).mtime.getTime() / 1000) | 0
+ );
assert.deepEqual(mtimes.sort().slice(0, 2), newMtimes.sort().slice(0, 2));
assert.notEqual(mtimes[mtimes.length - 1], newMtimes[newMtimes.length - 1]);
});
@@ -145,7 +149,7 @@ describe('watcher', function() {
b = bundler(__dirname + '/input/index.js', {watch: true});
let bundle = await b.bundle();
- assertBundleTree(bundle, {
+ await assertBundleTree(bundle, {
name: 'index.js',
assets: [
'index.js',
@@ -178,16 +182,16 @@ describe('watcher', function() {
]
});
- let output = run(bundle);
+ let output = await run(bundle);
assert.equal(await output(), 7);
assert(b.loadedAssets.has(path.join(__dirname, '/input/common-dep.js')));
// Get rid of common-dep.js
- fs.writeFileSync(__dirname + '/input/common.js', 'module.exports = 5;');
+ await fs.writeFile(__dirname + '/input/common.js', 'module.exports = 5;');
bundle = await nextBundle(b);
- assertBundleTree(bundle, {
+ await assertBundleTree(bundle, {
name: 'index.js',
assets: [
'index.js',
@@ -219,7 +223,7 @@ describe('watcher', function() {
]
});
- output = run(bundle);
+ output = await run(bundle);
assert.equal(await output(), 13);
assert(!b.loadedAssets.has(path.join(__dirname, '/input/common-dep.js')));
@@ -230,22 +234,22 @@ describe('watcher', function() {
b = bundler(__dirname + '/input/index.js', {watch: true});
await b.bundle();
- let file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ let file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(file.includes('class Foo {}'));
assert(file.includes('class Bar {}'));
// Change babelrc, should recompile both files
let babelrc = JSON.parse(
- fs.readFileSync(__dirname + '/input/.babelrc', 'utf8')
+ await fs.readFile(__dirname + '/input/.babelrc', 'utf8')
);
babelrc.presets[0][1].targets.browsers.push('IE >= 11');
await sleep(100);
- fs.writeFileSync(__dirname + '/input/.babelrc', JSON.stringify(babelrc));
+ await fs.writeFile(__dirname + '/input/.babelrc', JSON.stringify(babelrc));
await nextBundle(b);
- file = fs.readFileSync(__dirname + '/dist/index.js', 'utf8');
+ file = await fs.readFile(__dirname + '/dist/index.js', 'utf8');
assert(!file.includes('class Foo {}'));
assert(!file.includes('class Bar {}'));
});