jest-file-matcher
v1.0.2
Published
A simple jest matcher extension to validate files
Downloads
3,010
Maintainers
Readme
jest-file-matcher
A simple, Typescript ready, jest matcher extension to validate files.
Setup:
jest.config.ts / jest.config.js
Enable usage of the matcher in jest:
export default {
/** Just add this project on your jest setup */
setupFilesAfterEnv: ['jest-file-matcher'],
};
tsconfig.json
Import the matcher to typescript with:
{
"compilerOptions": {
"typeRoots": ["./node_modules/jest-file-matcher"]
}
}
Usage:
Example.test.ts
describe('Example of test', () => {
it('Test #1', async () => {
await expect(new File([], 'example.tsx', { lastModified: 1 }))
/** You can ignore some fields of the File as needed */
.toBeFile(new File([], 'example.tsx', { lastModified: 0 }), { omit: ['lastModified'] });
await expect(new File(['I am the content'], 'example.txt', { lastModified: 0 }))
/** You can read the content of the file as you want */
.toBeFile(new File(['I am the content'], 'example.txt', { lastModified: 0 }), { content: 'readAsDataURL' });
await expect(new File(['I am the content'], 'example.txt', { lastModified: 0 }))
/** Or ignore it all together*/
.toBeFile(new File(['I am the content'], 'example.txt', { lastModified: 0 }), { content: false });
await expect(new File(['I am the content'], 'example.txt', { lastModified: 0 }))
/** And make sure that they don't match too*/
.not.toBeFile(new File(["I'm not it however"], 'example.txt', { lastModified: 0 }));
/**
* See other cases on the typescript definition file!
**/
/**
* Lastly, the code below will always fail with the warning:
* The expected file is the same as the received, replace "toBeFile" with "toBe"
*/
const file = new File(['I am the content'], 'example.txt', { lastModified: 0 });
await expect(file).toBeFile(file);
});
});
LICENSE
MIT