Skip to content
Snippets Groups Projects
Commit bde0f7aa authored by Ben Wheeler's avatar Ben Wheeler
Browse files

r

parent f760e15e
Branches
Tags
No related merge requests found
......@@ -41,6 +41,7 @@ class SBFileUploader extends React.Component {
constructor (props) {
super(props);
bindAll(this, [
'getProjectTitleFromFilename',
'renderFileInput',
'setFileInput',
'handleChange',
......
......@@ -2,9 +2,12 @@ import React from 'react';
import {Provider} from 'react-redux';
import {mountWithIntl, shallowWithIntl, componentWithIntl} from '../../helpers/intl-helpers.jsx';
import configureStore from 'redux-mock-store';
import SBFileUploader from '../../../src/containers/sb-file-uploader.jsx';
import SBFileUploader from '../../../src/containers/sb-file-uploader';
import {LoadingState} from '../../../src/reducers/project-state';
describe('SBFileUploader', () => {
jest.mock('react-ga'); // must mock this entire library, or lib/analytics causes error
describe('SBFileUploader Container', () => {
const mockStore = configureStore();
let onLoadingFinished;
let onLoadingStarted;
......@@ -14,25 +17,29 @@ describe('SBFileUploader', () => {
// Wrap this in a function so it gets test specific states and can be reused.
const getContainer = function () {
return (
<SBFileUploader
store={store}
onLoadingFinished={onLoadingFinished}
onLoadingStarted={onLoadingStarted}
onUpdateProjectTitle={onUpdateProjectTitle}
>
{(renderFileInput, loadProject) => (
<div
onClick={loadProject}
/>
)}
</SBFileUploader>
<Provider store={store}>
<SBFileUploader
onLoadingFinished={onLoadingFinished}
onLoadingStarted={onLoadingStarted}
onUpdateProjectTitle={onUpdateProjectTitle}
>
{(renderFileInput, loadProject) => (
<div
onClick={loadProject}
/>
)}
</SBFileUploader>
</Provider>
);
};
beforeEach(() => {
store = mockStore({
scratchGui: {
projectState: {}
projectState: {
loadingState: LoadingState.SHOWING_WITH_ID
},
vm: {}
}
});
onUpdateProjectTitle = jest.fn();
......@@ -41,27 +48,28 @@ describe('SBFileUploader', () => {
});
test('correctly sets title with .sb3 filename', () => {
const component = mountWithIntl(getContainer());
const instance = component.instance();
const wrapper = mountWithIntl(getContainer());
const instance = wrapper.find(SBFileUploader).component();
expect(instance).toBe(true);
const projectName = instance.getProjectTitleFromFilename('my project is great.sb3');
expect(projectName).toBe('my project is great');
});
test('correctly sets title with .sb3 filename', () => {
const component = componentWithIntl(getContainer());
const projectName = component.getProjectTitleFromFilename('my project is great.sb3');
expect(projectName).toBe('my project is great');
});
test('sets blank title with .sb filename', () => {
const component = componentWithIntl(getContainer());
const projectName = component.getProjectTitleFromFilename('my project is great.sb');
expect(projectName).toBe('');
});
test('sets blank title with filename with no extension', () => {
const component = componentWithIntl(getContainer());
const projectName = component.getProjectTitleFromFilename('my project is great');
expect(projectName).toBe('');
});
// test('correctly sets title with .sb3 filename', () => {
// const component = componentWithIntl(getContainer());
// const projectName = component.getProjectTitleFromFilename('my project is great.sb3');
// expect(projectName).toBe('my project is great');
// });
//
// test('sets blank title with .sb filename', () => {
// const component = componentWithIntl(getContainer());
// const projectName = component.getProjectTitleFromFilename('my project is great.sb');
// expect(projectName).toBe('');
// });
//
// test('sets blank title with filename with no extension', () => {
// const component = componentWithIntl(getContainer());
// const projectName = component.getProjectTitleFromFilename('my project is great');
// expect(projectName).toBe('');
// });
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment