Skip to content

Latest commit

 

History

History

jest-plugin-fs

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

jest-plugin-fs

npm npm npm

Jest plugin for mocking out the filesystem.

Getting Started

Install jest-plugin-fs using yarn:

yarn add --dev jest-plugin-fs

Motivation

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');
      });
    });
  });
});

Usage

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"
  ]
}

Example

Here's an example test that tests fs itself:

// TODO