Jest plugin for mocking out the filesystem.
Install jest-plugin-fs
using yarn
:
yarn add --dev jest-plugin-fs
Jest currently does not have an easy way to mock out the filesystem. This plugin aims to change that. Here's an example:
import fs from 'jest-plugin-fs';
// Mock out the filesystem.
jest.mock('fs', () => require('jest-plugin-fs/mock'));
describe('FileWriter', () => {
// Create an in-memory filesystem.
beforeEach(() => fs.mock());
afterEach(() => fs.restore());
describe('.write', () => {
set('filename', () => 'path/to/my/file');
action('write', () => FileWriter.write(filename));
it('should write a new file', () => {
expect(write).not.toThrow();
});
describe('resulting file', () => {
beforeEach(() => write());
it('should create the new file', () => {
expect(fs.readFileSync(filename)).toEqual('new-file');
});
});
});
});
If you want, you can import fs
from jest-plugin-fs
at the top of every test:
import fs from 'jest-plugin-fs';
// This installs the mock for 'fs'.
jest.mock('fs', () => require('jest-plugin-fs/mock'));
If you want to install fs
attached to the global jest
object, you can modify the jest
section of your package.json
to include:
"jest": {
"setupFiles": [
"jest-plugin-fs/setup"
]
}
Here's an example test that tests fs
itself:
// TODO