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 {
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 }))
.toBeFile(new File([], 'example.tsx', { lastModified: 0 }), { omit: ['lastModified'] });
await expect(new File(['I am the content'], 'example.txt', { lastModified: 0 }))
.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 }))
.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 }))
.not.toBeFile(new File(["I'm not it however"], 'example.txt', { lastModified: 0 }));
const file = new File(['I am the content'], 'example.txt', { lastModified: 0 });
await expect(file).toBeFile(file);
});
});
LICENSE
MIT