@@ -14,29 +14,19 @@ const { platform, version } = require('process');
1414const fixturify = require ( 'fixturify' ) ;
1515const { removeSync } = require ( 'fs-extra' ) ;
1616
17- exports . compareError = compareError ;
18- exports . compareWarnings = compareWarnings ;
19- exports . deindent = deindent ;
20- exports . executeBundle = executeBundle ;
21- exports . getObject = getObject ;
22- exports . loader = loader ;
23- exports . normaliseOutput = normaliseOutput ;
24- exports . runTestSuiteWithSamples = runTestSuiteWithSamples ;
25- exports . assertDirectoriesAreEqual = assertDirectoriesAreEqual ;
26- exports . assertFilesAreEqual = assertFilesAreEqual ;
27- exports . assertIncludes = assertIncludes ;
28- exports . atomicWriteFileSync = atomicWriteFileSync ;
29- exports . writeAndSync = writeAndSync ;
30- exports . getFileNamesAndRemoveOutput = getFileNamesAndRemoveOutput ;
31- exports . writeAndRetry = writeAndRetry ;
17+ exports . wait = function wait ( ms ) {
18+ return new Promise ( fulfil => {
19+ setTimeout ( fulfil , ms ) ;
20+ } ) ;
21+ } ;
3222
3323function normaliseError ( error ) {
3424 delete error . stack ;
3525 delete error . toString ;
3626 return { ...error , message : error . message } ;
3727}
3828
39- function compareError ( actual , expected ) {
29+ exports . compareError = function compareError ( actual , expected ) {
4030 actual = normaliseError ( actual ) ;
4131
4232 if ( actual . parserError ) {
@@ -52,9 +42,9 @@ function compareError(actual, expected) {
5242 }
5343
5444 assert . deepEqual ( actual , expected ) ;
55- }
45+ } ;
5646
57- function compareWarnings ( actual , expected ) {
47+ exports . compareWarnings = function compareWarnings ( actual , expected ) {
5848 assert . deepEqual (
5949 actual . map ( warning => {
6050 const clone = { ...warning } ;
@@ -73,13 +63,15 @@ function compareWarnings(actual, expected) {
7363 return warning ;
7464 } )
7565 ) ;
76- }
66+ } ;
7767
7868function deindent ( str ) {
7969 return str . slice ( 1 ) . replace ( / ^ \t + / gm, '' ) . replace ( / \s + $ / gm, '' ) . trim ( ) ;
8070}
8171
82- async function executeBundle ( bundle , require ) {
72+ exports . deindent = deindent ;
73+
74+ exports . executeBundle = async function executeBundle ( bundle , require ) {
8375 const {
8476 output : [ cjs ]
8577 } = await bundle . generate ( {
@@ -90,17 +82,17 @@ async function executeBundle(bundle, require) {
9082 const module = { exports : { } } ;
9183 wrapper ( module , module . exports , require ) ;
9284 return module . exports ;
93- }
85+ } ;
9486
95- function getObject ( entries ) {
87+ exports . getObject = function getObject ( entries ) {
9688 const object = { } ;
9789 for ( const [ key , value ] of entries ) {
9890 object [ key ] = value ;
9991 }
10092 return object ;
101- }
93+ } ;
10294
103- function loader ( modules ) {
95+ exports . loader = function loader ( modules ) {
10496 modules = Object . assign ( Object . create ( null ) , modules ) ;
10597 return {
10698 resolveId ( id ) {
@@ -111,11 +103,11 @@ function loader(modules) {
111103 return modules [ id ] ;
112104 }
113105 } ;
114- }
106+ } ;
115107
116- function normaliseOutput ( code ) {
108+ exports . normaliseOutput = function normaliseOutput ( code ) {
117109 return code . toString ( ) . trim ( ) . replace ( / \r \n / g, '\n' ) ;
118- }
110+ } ;
119111
120112function runTestSuiteWithSamples ( suiteName , samplesDir , runTest , onTeardown ) {
121113 describe ( suiteName , ( ) => runSamples ( samplesDir , runTest , onTeardown ) ) ;
@@ -130,6 +122,8 @@ runTestSuiteWithSamples.skip = function (suiteName) {
130122 describe . skip ( suiteName , ( ) => { } ) ;
131123} ;
132124
125+ exports . runTestSuiteWithSamples = runTestSuiteWithSamples ;
126+
133127function runSamples ( samplesDir , runTest , onTeardown ) {
134128 if ( onTeardown ) {
135129 afterEach ( onTeardown ) ;
@@ -181,6 +175,8 @@ function getFileNamesAndRemoveOutput(dir) {
181175 }
182176}
183177
178+ exports . getFileNamesAndRemoveOutput = getFileNamesAndRemoveOutput ;
179+
184180function loadConfigAndRunTest ( dir , runTest ) {
185181 const configFile = join ( dir , '_config.js' ) ;
186182 const config = require ( configFile ) ;
@@ -196,7 +192,7 @@ function loadConfigAndRunTest(dir, runTest) {
196192 }
197193}
198194
199- function assertDirectoriesAreEqual ( actualDir , expectedDir ) {
195+ exports . assertDirectoriesAreEqual = function assertDirectoriesAreEqual ( actualDir , expectedDir ) {
200196 const actualFiles = fixturify . readSync ( actualDir ) ;
201197
202198 let expectedFiles ;
@@ -206,7 +202,7 @@ function assertDirectoriesAreEqual(actualDir, expectedDir) {
206202 expectedFiles = [ ] ;
207203 }
208204 assertFilesAreEqual ( actualFiles , expectedFiles ) ;
209- }
205+ } ;
210206
211207function assertFilesAreEqual ( actualFiles , expectedFiles , dirs = [ ] ) {
212208 Object . keys ( { ...actualFiles , ...expectedFiles } ) . forEach ( fileName => {
@@ -223,7 +219,9 @@ function assertFilesAreEqual(actualFiles, expectedFiles, dirs = []) {
223219 } ) ;
224220}
225221
226- function assertIncludes ( actual , expected ) {
222+ exports . assertFilesAreEqual = assertFilesAreEqual ;
223+
224+ exports . assertIncludes = function assertIncludes ( actual , expected ) {
227225 try {
228226 assert . ok (
229227 actual . includes ( expected ) ,
@@ -234,7 +232,7 @@ function assertIncludes(actual, expected) {
234232 err . expected = expected ;
235233 throw err ;
236234 }
237- }
235+ } ;
238236
239237// Workaround a race condition in fs.writeFileSync that temporarily creates
240238// an empty file for a brief moment which may be read by rollup watch - even
@@ -245,13 +243,15 @@ function atomicWriteFileSync(filePath, contents) {
245243 renameSync ( stagingPath , filePath ) ;
246244}
247245
246+ exports . atomicWriteFileSync = atomicWriteFileSync ;
247+
248248// It appears that on MacOS, it sometimes takes long for the file system to update
249- function writeAndSync ( filePath , contents ) {
249+ exports . writeAndSync = function writeAndSync ( filePath , contents ) {
250250 const file = openSync ( filePath , 'w' ) ;
251251 writeSync ( file , contents ) ;
252252 fsyncSync ( file ) ;
253253 closeSync ( file ) ;
254- }
254+ } ;
255255
256256// Sometimes, watchers on MacOS do not seem to fire. In those cases, it helps
257257// to write the same content again. This function returns a callback to stop
@@ -272,3 +272,5 @@ function writeAndRetry(filePath, contents) {
272272 writeFile ( ) ;
273273 return ( ) => clearTimeout ( updateRetryTimeout ) ;
274274}
275+
276+ exports . writeAndRetry = writeAndRetry ;
0 commit comments