Skip to content

Commit 90b1184

Browse files
committed
♻️ export unconnected Toolbar for testability
1 parent 3b74ef9 commit 90b1184

File tree

2 files changed

+48
-2
lines changed

2 files changed

+48
-2
lines changed

client/components/__test__/Toolbar.test.jsx

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,53 @@ import { shallow } from 'enzyme';
33
import { Toolbar } from '../../modules/IDE/components/Toolbar';
44

55
describe('<Toolbar />', () => {
6+
let component;
7+
let props = {};
8+
let input;
9+
let renameTriggerButton;
10+
const changeName = (newFileName) => {
11+
renameTriggerButton.simulate('click');
12+
input.simulate('change', { target: { value: newFileName } });
13+
input.simulate('blur');
14+
};
15+
const getState = () => component.state();
16+
const getUpdatedName = () => getState().updatedName;
17+
const setProps = (additionalProps) => {
18+
props = {
19+
isPlaying: false,
20+
preferencesIsVisible: false,
21+
stopSketch: jest.fn(),
22+
setProjectName: jest.fn(),
23+
openPreferences: jest.fn(),
24+
owner: {
25+
username: ''
26+
},
27+
project: {
28+
name: '',
29+
isEditingName: false,
30+
id: '',
31+
},
32+
showEditProjectName: jest.fn(),
33+
hideEditProjectName: jest.fn(),
34+
infiniteLoop: false,
35+
autorefresh: false,
36+
setAutorefresh: jest.fn(),
37+
setTextOutput: jest.fn(),
38+
setGridOutput: jest.fn(),
39+
startSketch: jest.fn(),
40+
startAccessibleSketch: jest.fn(),
41+
saveProject: jest.fn(),
42+
currentUser: '',
43+
...additionalProps
44+
};
45+
};
46+
47+
648
describe('with valid props', () => {
7-
it('renders', () => expect(true).toEqual(true));
49+
beforeEach(() => {
50+
setProps();
51+
component = shallow(<Toolbar {...props} />);
52+
});
53+
it('renders', () => expect(component).toBeDefined());
854
});
955
});

client/modules/IDE/components/Toolbar.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const stopUrl = require('../../../images/stop.svg');
1414
const preferencesUrl = require('../../../images/preferences.svg');
1515
const editProjectNameUrl = require('../../../images/pencil.svg');
1616

17-
class Toolbar extends React.Component {
17+
export class Toolbar extends React.Component {
1818
constructor(props) {
1919
super(props);
2020
this.handleKeyPress = this.handleKeyPress.bind(this);

0 commit comments

Comments
 (0)