mirror of
https://github.com/storybookjs/storybook.git
synced 2025-03-21 05:02:39 +08:00
32 lines
1.0 KiB
JavaScript
32 lines
1.0 KiB
JavaScript
const fs = jest.createMockFromModule('fs-extra');
|
|
|
|
// This is a custom function that our tests can use during setup to specify
|
|
// what the files on the "mock" filesystem should look like when any of the
|
|
// `fs` APIs are used.
|
|
let mockFiles = Object.create(null);
|
|
|
|
// eslint-disable-next-line no-underscore-dangle
|
|
function __setMockFiles(newMockFiles) {
|
|
mockFiles = newMockFiles;
|
|
}
|
|
|
|
// A custom version of `readdirSync` that reads from the special mocked out
|
|
// file list set via __setMockFiles
|
|
const readFile = async (filePath) => mockFiles[filePath];
|
|
const readFileSync = (filePath = '') => mockFiles[filePath];
|
|
const existsSync = (filePath) => !!mockFiles[filePath];
|
|
const readJsonSync = (filePath = '') => JSON.parse(mockFiles[filePath]);
|
|
const lstatSync = (filePath) => ({
|
|
isFile: () => !!mockFiles[filePath],
|
|
});
|
|
|
|
// eslint-disable-next-line no-underscore-dangle
|
|
fs.__setMockFiles = __setMockFiles;
|
|
fs.readFile = readFile;
|
|
fs.readFileSync = readFileSync;
|
|
fs.readJsonSync = readJsonSync;
|
|
fs.existsSync = existsSync;
|
|
fs.lstatSync = lstatSync;
|
|
|
|
module.exports = fs;
|