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

r

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