wix-style-react
Version:
54 lines (41 loc) • 1.62 kB
JavaScript
import React from 'react';
import { createRendererWithUniDriver, cleanup } from '../../../test/utils/unit';
import FileUpload from '../FileUpload';
import Button from '../../Button';
import { fileUploadPrivateDriverFactory } from './FileUpload.private.uni.driver';
import { Simulate } from 'react-dom/test-utils';
describe(FileUpload.displayName, () => {
const render = createRendererWithUniDriver(fileUploadPrivateDriverFactory);
afterEach(cleanup);
const fileUploadExample = props => (
<FileUpload onChange={() => {}} {...props}>
{({ openFileUploadDialog }) => (
<Button onClick={openFileUploadDialog}>upload file</Button>
)}
</FileUpload>
);
const file = new File(['(⌐@_@)'], 'myPicture.png', {
type: 'image/png',
});
it('should render', async () => {
const { driver } = render(fileUploadExample());
expect(await driver.exists()).toBe(true);
});
it('should call onChange with the uploaded file', async () => {
const onChange = _file => {
expect(_file instanceof File).toBe(true);
};
const { driver } = render(fileUploadExample({ onChange }));
await driver.simulateUpload(file);
});
describe('capture prop', () => {
it('should not pass the capture prop when passed as "none"', async () => {
const { driver } = render(fileUploadExample({ capture: 'none' }));
expect(await driver.getCapture()).toBeNull();
});
it('should have a default user capture prop', async () => {
const { driver } = render(fileUploadExample());
expect(await driver.getCapture()).toBe('user');
});
});
});