diff --git a/test/cli/samples/watch/watch-config-early-update/_config.js b/test/cli/samples/watch/watch-config-early-update/_config.js index 65197b87546..4ffc50dd473 100644 --- a/test/cli/samples/watch/watch-config-early-update/_config.js +++ b/test/cli/samples/watch/watch-config-early-update/_config.js @@ -1,6 +1,6 @@ const fs = require('fs'); const path = require('path'); -const { atomicWriteFileSync } = require('../../../../utils'); +const { atomicWriteFileSync, syncFile } = require('../../../../utils'); let configFile; @@ -49,6 +49,7 @@ module.exports = { }; ` ); + syncFile(configFile); return false; } if (data.includes(`created _actual${path.sep}output2.js`)) { diff --git a/test/utils.js b/test/utils.js index d8896c1d306..bebb306b5c6 100644 --- a/test/utils.js +++ b/test/utils.js @@ -16,6 +16,7 @@ exports.assertDirectoriesAreEqual = assertDirectoriesAreEqual; exports.assertFilesAreEqual = assertFilesAreEqual; exports.assertIncludes = assertIncludes; exports.atomicWriteFileSync = atomicWriteFileSync; +exports.syncFile = syncFile; exports.getFileNamesAndRemoveOutput = getFileNamesAndRemoveOutput; function normaliseError(error) { @@ -232,3 +233,10 @@ function atomicWriteFileSync(filePath, contents) { fs.writeFileSync(stagingPath, contents); fs.renameSync(stagingPath, filePath); } + +// It appears that on MacOS, it sometimes takes long for the file system to update +function syncFile(filePath) { + const file = fs.openSync(filePath); + fs.fsyncSync(file); + fs.closeSync(file); +}