Skip to content

Commit 59756ac

Browse files
committed
Ensure 'ava' can be imported in a CJS environment
1 parent 279dc35 commit 59756ac

File tree

6 files changed

+18
-15
lines changed

6 files changed

+18
-15
lines changed

entrypoints/main.cjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
'use strict';
2-
module.exports = require('../lib/worker/main');
2+
module.exports = require('../lib/worker/main.cjs');

entrypoints/main.mjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
import test from '../lib/worker/main.js'; // eslint-disable-line import/extensions
1+
import test from '../lib/worker/main.cjs';
22
export default test;

lib/worker/base.js

+4-8
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const run = async options => {
2121
const dependencyTracking = require('./dependency-tracker');
2222
const lineNumberSelection = require('./line-numbers');
2323

24-
const {sharedWorkerTeardowns} = require('./state.cjs');
24+
const {flags, refs, sharedWorkerTeardowns} = require('./state.cjs');
2525

2626
async function exit(code) {
2727
if (!process.exitCode) {
@@ -61,6 +61,8 @@ const run = async options => {
6161
updateSnapshots: options.updateSnapshots
6262
});
6363

64+
refs.runnerChain = runner.chain;
65+
6466
channel.peerFailed.then(() => { // eslint-disable-line promise/prefer-await-to-then
6567
runner.interrupt();
6668
});
@@ -118,12 +120,6 @@ const run = async options => {
118120
exit(1);
119121
});
120122

121-
let accessedRunner = false;
122-
exports.getRunner = () => {
123-
accessedRunner = true;
124-
return runner;
125-
};
126-
127123
// Store value to prevent required modules from modifying it.
128124
const testPath = options.file;
129125

@@ -195,7 +191,7 @@ const run = async options => {
195191

196192
await load(testPath);
197193

198-
if (accessedRunner) {
194+
if (flags.loadedMain) {
199195
// Unreference the channel if the test file required AVA. This stops it
200196
// from keeping the event loop busy, which means the `beforeExit` event can be
201197
// used to detect when tests stall.

lib/worker/main.cjs

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
'use strict';
2+
require('./guard-environment.cjs'); // eslint-disable-line import/no-unassigned-import
3+
4+
const assert = require('assert');
5+
const {flags, refs} = require('./state.cjs');
6+
assert(refs.runnerChain);
7+
8+
flags.loadedMain = true;
9+
10+
module.exports = refs.runnerChain;

lib/worker/main.js

-5
This file was deleted.

lib/worker/state.cjs

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
'use strict';
2+
exports.flags = {loadedMain: false};
3+
exports.refs = {runnerChain: null};
24
exports.sharedWorkerTeardowns = [];
35
exports.waitForReady = [];

0 commit comments

Comments
 (0)