Skip to content

Commit 30fba35

Browse files
committed
fix tests for wrong wrapper design
1 parent 2ac1d3f commit 30fba35

File tree

4 files changed

+86
-35
lines changed

4 files changed

+86
-35
lines changed

packages/react-bootstrap-table2/test/cell-edit/wrapper.test.js

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import CellEditWrapper from '../../src/cell-edit/wrapper';
88

99
describe('CellEditWrapper', () => {
1010
let wrapper;
11-
let elem;
1211

1312
const columns = [{
1413
dataField: 'id',
@@ -35,12 +34,13 @@ describe('CellEditWrapper', () => {
3534
const store = new Store({ data, keyField });
3635

3736
beforeEach(() => {
38-
elem = React.createElement(BootstrapTable, { data, cellEdit, columns, keyField, store });
3937
wrapper = shallow(
4038
<CellEditWrapper
4139
keyField={ keyField }
40+
data={ data }
41+
columns={ columns }
4242
cellEdit={ cellEdit }
43-
elem={ elem }
43+
store={ store }
4444
onUpdateCell={ sinon.stub() }
4545
/>
4646
);
@@ -58,7 +58,7 @@ describe('CellEditWrapper', () => {
5858
expect(wrapper.state().editing).toBeFalsy();
5959
});
6060

61-
it('should inject correct props to elem', () => {
61+
it('should inject correct props to base component', () => {
6262
expect(wrapper.props().onCellUpdate).toBeDefined();
6363
expect(wrapper.props().onStartEditing).toBeDefined();
6464
expect(wrapper.props().onEscapeEditing).toBeDefined();
@@ -74,12 +74,13 @@ describe('CellEditWrapper', () => {
7474

7575
describe('and cellEdit.editing is false', () => {
7676
beforeEach(() => {
77-
elem = React.createElement(BootstrapTable, { data, cellEdit, columns, keyField, store });
7877
wrapper = shallow(
7978
<CellEditWrapper
8079
keyField={ keyField }
80+
data={ data }
81+
columns={ columns }
8182
cellEdit={ cellEdit }
82-
elem={ elem }
83+
store={ store }
8384
onUpdateCell={ sinon.stub() }
8485
/>
8586
);
@@ -104,12 +105,13 @@ describe('CellEditWrapper', () => {
104105
const cidx = 2;
105106

106107
beforeEach(() => {
107-
elem = React.createElement(BootstrapTable, { data, cellEdit, columns, keyField, store });
108108
wrapper = shallow(
109109
<CellEditWrapper
110110
keyField={ keyField }
111+
data={ data }
112+
columns={ columns }
111113
cellEdit={ cellEdit }
112-
elem={ elem }
114+
store={ store }
113115
onUpdateCell={ sinon.stub() }
114116
/>
115117
);
@@ -175,8 +177,10 @@ describe('CellEditWrapper', () => {
175177
wrapper = shallow(
176178
<CellEditWrapper
177179
keyField={ keyField }
180+
data={ data }
181+
columns={ columns }
178182
cellEdit={ cellEdit }
179-
elem={ elem }
183+
store={ store }
180184
onUpdateCell={ onUpdateCellCallBack }
181185
/>
182186
);
@@ -204,8 +208,10 @@ describe('CellEditWrapper', () => {
204208
wrapper = shallow(
205209
<CellEditWrapper
206210
keyField={ keyField }
211+
data={ data }
212+
columns={ columns }
207213
cellEdit={ cellEdit }
208-
elem={ elem }
214+
store={ store }
209215
onUpdateCell={ onUpdateCellCallBack }
210216
/>
211217
);
@@ -229,8 +235,10 @@ describe('CellEditWrapper', () => {
229235
wrapper = shallow(
230236
<CellEditWrapper
231237
keyField={ keyField }
238+
data={ data }
239+
columns={ columns }
232240
cellEdit={ cellEdit }
233-
elem={ elem }
241+
store={ store }
234242
onUpdateCell={ onUpdateCellCallBack }
235243
/>
236244
);
@@ -249,8 +257,10 @@ describe('CellEditWrapper', () => {
249257
wrapper = shallow(
250258
<CellEditWrapper
251259
keyField={ keyField }
260+
data={ data }
261+
columns={ columns }
252262
cellEdit={ cellEdit }
253-
elem={ elem }
263+
store={ store }
254264
onUpdateCell={ onUpdateCellCallBack }
255265
/>
256266
);

packages/react-bootstrap-table2/test/container.test.js

Lines changed: 52 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import sinon from 'sinon';
33
import { shallow } from 'enzyme';
44

55
import BootstrapTable from '../src';
6+
import SortWrapper from '../src/sort/wrapper';
7+
import CellEditWrapper from '../src/cell-edit/wrapper';
8+
import RowSelectionWrapper from '../src/row-selection/wrapper';
69

710
describe('withDataStore', () => {
811
let wrapper;
@@ -44,8 +47,7 @@ describe('withDataStore', () => {
4447
});
4548
});
4649

47-
describe('when cellEdit is defined', () => {
48-
const spy = jest.spyOn(BootstrapTable.prototype, 'renderCellEdit');
50+
describe('when cellEdit prop is defined', () => {
4951
const cellEdit = {
5052
mode: 'click'
5153
};
@@ -61,15 +63,14 @@ describe('withDataStore', () => {
6163
);
6264
});
6365

64-
it('should calling renderCellEdit function', () => {
65-
expect(spy).toHaveBeenCalled();
66+
it('should render CellEditWrapper component successfully', () => {
67+
const component = wrapper.find(CellEditWrapper);
68+
expect(component.length).toBe(1);
6669
});
6770

68-
it('should injecting correct props', () => {
69-
expect(wrapper.props().keyField).toEqual('id');
70-
expect(wrapper.props().cellEdit).toEqual(cellEdit);
71-
expect(wrapper.props().elem).toBeDefined();
72-
expect(wrapper.props().onUpdateCell).toBeDefined();
71+
it('should injecting correct props to CellEditWrapper', () => {
72+
const component = wrapper.find(CellEditWrapper);
73+
expect(component.props().onUpdateCell).toBeDefined();
7374
});
7475

7576
describe('for handleUpdateCell function', () => {
@@ -129,4 +130,46 @@ describe('withDataStore', () => {
129130
describe.skip('when cellEdit.onUpdate callback is define and which return a Promise', () => {});
130131
});
131132
});
133+
134+
describe('when selectRow prop is defined', () => {
135+
const selectRow = {
136+
mode: 'checkbox'
137+
};
138+
139+
beforeEach(() => {
140+
wrapper = shallow(
141+
<BootstrapTable
142+
keyField={ keyField }
143+
data={ data }
144+
columns={ columns }
145+
selectRow={ selectRow }
146+
/>
147+
);
148+
});
149+
150+
it('should render RowSelectionWrapper component successfully', () => {
151+
expect(wrapper.find(RowSelectionWrapper).length).toBe(1);
152+
});
153+
});
154+
155+
describe('when any column.sort is defined', () => {
156+
beforeEach(() => {
157+
const columnsWithSort = [{
158+
dataField: keyField,
159+
text: 'ID',
160+
sort: true
161+
}];
162+
wrapper = shallow(
163+
<BootstrapTable
164+
keyField={ keyField }
165+
data={ data }
166+
columns={ columnsWithSort }
167+
/>
168+
);
169+
});
170+
171+
it('should render SortWrapper component successfully', () => {
172+
expect(wrapper.find(SortWrapper).length).toBe(1);
173+
});
174+
});
132175
});

packages/react-bootstrap-table2/test/row-selection/wrapper.test.js

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React from 'react';
2-
import sinon from 'sinon';
32
import { shallow } from 'enzyme';
43

54
import Store from '../../src/store/base';
@@ -8,7 +7,6 @@ import RowSelectionWrapper from '../../src/row-selection/wrapper';
87

98
describe('RowSelectionWrapper', () => {
109
let wrapper;
11-
let elem;
1210

1311
const columns = [{
1412
dataField: 'id',
@@ -35,14 +33,13 @@ describe('RowSelectionWrapper', () => {
3533
const store = new Store({ data, keyField });
3634

3735
beforeEach(() => {
38-
elem = React.createElement(BootstrapTable, { data, selectRow, columns, keyField, store });
3936
wrapper = shallow(
4037
<RowSelectionWrapper
4138
keyField={ keyField }
39+
data={ data }
40+
columns={ columns }
4241
selectRow={ selectRow }
43-
elem={ elem }
4442
store={ store }
45-
onUpdateCell={ sinon.stub() }
4643
/>
4744
);
4845
});
@@ -57,7 +54,7 @@ describe('RowSelectionWrapper', () => {
5754
expect(wrapper.state().selectedRowKeys.length).toEqual(0);
5855
});
5956

60-
it('should inject correct props to elem', () => {
57+
it('should inject correct props to base component', () => {
6158
expect(wrapper.props().onRowSelect).toBeDefined();
6259
expect(wrapper.props().onAllRowsSelect).toBeDefined();
6360
});
@@ -81,14 +78,13 @@ describe('RowSelectionWrapper', () => {
8178

8279
beforeEach(() => {
8380
selectRow.mode = 'checkbox';
84-
elem = React.createElement(BootstrapTable, { data, selectRow, columns, keyField, store });
8581
wrapper = shallow(
8682
<RowSelectionWrapper
8783
keyField={ keyField }
84+
data={ data }
85+
columns={ columns }
8886
selectRow={ selectRow }
89-
elem={ elem }
9087
store={ store }
91-
onUpdateCell={ sinon.stub() }
9288
/>
9389
);
9490
});

packages/react-bootstrap-table2/test/sort/wrapper.test.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import SortWrapper from '../../src/sort/wrapper';
99

1010
describe('SortWrapper', () => {
1111
let wrapper;
12-
let elem;
1312

1413
const columns = [{
1514
dataField: 'id',
@@ -33,10 +32,11 @@ describe('SortWrapper', () => {
3332
let store = new Store({ data, keyField });
3433

3534
beforeEach(() => {
36-
elem = React.createElement(BootstrapTable, { data, columns, keyField, store });
3735
wrapper = shallow(
3836
<SortWrapper
39-
elem={ elem }
37+
keyField={ keyField }
38+
data={ data }
39+
columns={ columns }
4040
store={ store }
4141
/>
4242
);
@@ -47,7 +47,7 @@ describe('SortWrapper', () => {
4747
expect(wrapper.find(BootstrapTable)).toBeDefined();
4848
});
4949

50-
it('should inject correct props to elem', () => {
50+
it('should inject correct props to base component', () => {
5151
expect(wrapper.props().onSort).toBeDefined();
5252
});
5353

@@ -58,7 +58,9 @@ describe('SortWrapper', () => {
5858
store = new Store({ data, keyField });
5959
wrapper = mount(
6060
<SortWrapper
61-
elem={ elem }
61+
keyField={ keyField }
62+
data={ data }
63+
columns={ columns }
6264
store={ store }
6365
/>
6466
);

0 commit comments

Comments
 (0)