diff --git a/packages/react-bootstrap-table2-filter/src/components/text.js b/packages/react-bootstrap-table2-filter/src/components/text.js index 7468044..3af8ae2 100644 --- a/packages/react-bootstrap-table2-filter/src/components/text.js +++ b/packages/react-bootstrap-table2-filter/src/components/text.js @@ -64,7 +64,7 @@ class TextFilter extends Component { cleanFiltered() { const value = this.props.defaultValue; this.setState(() => ({ value })); - this.props.onFilter(this.props.column, value, FILTER_TYPE.TEXT)(); + this.props.onFilter(this.props.column, FILTER_TYPE.TEXT)(value); } applyFilter(filterText) { diff --git a/packages/react-bootstrap-table2-filter/test/components/number.test.js b/packages/react-bootstrap-table2-filter/test/components/number.test.js index 6ba66f7..e08573d 100644 --- a/packages/react-bootstrap-table2-filter/test/components/number.test.js +++ b/packages/react-bootstrap-table2-filter/test/components/number.test.js @@ -9,7 +9,11 @@ import * as Comparator from '../../src/comparison'; describe('Number Filter', () => { let wrapper; + + // onFilter(x)(y) = filter result const onFilter = sinon.stub(); + const onFilterFirstReturn = sinon.stub(); + const column = { dataField: 'price', text: 'Product Price' @@ -17,6 +21,9 @@ describe('Number Filter', () => { afterEach(() => { onFilter.reset(); + onFilterFirstReturn.reset(); + + onFilter.returns(onFilterFirstReturn); }); describe('initialization', () => { @@ -110,8 +117,9 @@ describe('Number Filter', () => { it('should calling onFilter on componentDidMount', () => { expect(onFilter.calledOnce).toBeTruthy(); - expect(onFilter.calledWith( - column, { number: `${number}`, comparator }, FILTER_TYPE.NUMBER)).toBeTruthy(); + expect(onFilter.calledWith(column, FILTER_TYPE.NUMBER)).toBeTruthy(); + expect(onFilterFirstReturn.calledOnce).toBeTruthy(); + expect(onFilterFirstReturn.calledWith({ number: `${number}`, comparator })).toBeTruthy(); }); }); diff --git a/packages/react-bootstrap-table2-filter/test/components/select.test.js b/packages/react-bootstrap-table2-filter/test/components/select.test.js index 2ed39a6..0c4c80a 100644 --- a/packages/react-bootstrap-table2-filter/test/components/select.test.js +++ b/packages/react-bootstrap-table2-filter/test/components/select.test.js @@ -9,19 +9,27 @@ import { FILTER_TYPE } from '../../src/const'; describe('Select Filter', () => { let wrapper; let instance; + + // onFilter(x)(y) = filter result const onFilter = sinon.stub(); + const onFilterFirstReturn = sinon.stub(); + const column = { dataField: 'quality', text: 'Product Quality' }; + const options = { 0: 'Bad', 1: 'Good', - 2: 'Unknow' + 2: 'Unknown' }; afterEach(() => { onFilter.reset(); + onFilterFirstReturn.reset(); + + onFilter.returns(onFilterFirstReturn); }); describe('initialization', () => { @@ -83,7 +91,9 @@ describe('Select Filter', () => { it('should calling onFilter on componentDidMount', () => { expect(onFilter.calledOnce).toBeTruthy(); - expect(onFilter.calledWith(column, defaultValue, FILTER_TYPE.SELECT)).toBeTruthy(); + expect(onFilter.calledWith(column, FILTER_TYPE.SELECT)).toBeTruthy(); + expect(onFilterFirstReturn.calledOnce).toBeTruthy(); + expect(onFilterFirstReturn.calledWith(defaultValue)).toBeTruthy(); }); }); }); @@ -170,8 +180,9 @@ describe('Select Filter', () => { it('should update', () => { expect(onFilter.callCount).toBe(2); - expect(onFilter.calledWith( - column, instance.props.defaultValue, FILTER_TYPE.SELECT)).toBeTruthy(); + expect(onFilter.calledWith(column, FILTER_TYPE.SELECT)).toBeTruthy(); + expect(onFilterFirstReturn.callCount).toBe(2); + expect(onFilterFirstReturn.calledWith(instance.props.defaultValue)).toBeTruthy(); }); }); @@ -198,8 +209,9 @@ describe('Select Filter', () => { it('should update', () => { expect(onFilter.callCount).toBe(2); - expect(onFilter.calledWith( - column, instance.props.defaultValue, FILTER_TYPE.SELECT)).toBeTruthy(); + expect(onFilter.calledWith(column, FILTER_TYPE.SELECT)).toBeTruthy(); + expect(onFilterFirstReturn.callCount).toBe(2); + expect(onFilterFirstReturn.calledWith(instance.props.defaultValue)).toBeTruthy(); }); }); }); @@ -226,7 +238,9 @@ describe('Select Filter', () => { it('should calling onFilter correctly', () => { expect(onFilter.callCount).toBe(2); - expect(onFilter.calledWith(column, defaultValue, FILTER_TYPE.SELECT)).toBeTruthy(); + expect(onFilter.calledWith(column, FILTER_TYPE.SELECT)).toBeTruthy(); + expect(onFilterFirstReturn.callCount).toBe(2); + expect(onFilterFirstReturn.calledWith(defaultValue)).toBeTruthy(); }); }); @@ -249,6 +263,7 @@ describe('Select Filter', () => { it('should calling onFilter correctly', () => { expect(onFilter.callCount).toBe(1); + expect(onFilterFirstReturn.callCount).toBe(1); }); }); }); @@ -268,8 +283,10 @@ describe('Select Filter', () => { }); it('should calling onFilter correctly', () => { - expect(onFilter.callCount).toBe(1); - expect(onFilter.calledWith(column, value, FILTER_TYPE.SELECT)).toBeTruthy(); + expect(onFilter.calledOnce).toBeTruthy(); + expect(onFilter.calledWith(column, FILTER_TYPE.SELECT)).toBeTruthy(); + expect(onFilterFirstReturn.calledOnce).toBeTruthy(); + expect(onFilterFirstReturn.calledWith(value)).toBeTruthy(); }); }); @@ -289,8 +306,10 @@ describe('Select Filter', () => { }); it('should calling onFilter correctly', () => { - expect(onFilter.callCount).toBe(1); - expect(onFilter.calledWith(column, event.target.value, FILTER_TYPE.SELECT)).toBeTruthy(); + expect(onFilter.calledOnce).toBeTruthy(); + expect(onFilter.calledWith(column, FILTER_TYPE.SELECT)).toBeTruthy(); + expect(onFilterFirstReturn.calledOnce).toBeTruthy(); + expect(onFilterFirstReturn.calledWith(event.target.value)).toBeTruthy(); }); }); }); diff --git a/packages/react-bootstrap-table2-filter/test/components/text.test.js b/packages/react-bootstrap-table2-filter/test/components/text.test.js index 4a9c282..0885824 100644 --- a/packages/react-bootstrap-table2-filter/test/components/text.test.js +++ b/packages/react-bootstrap-table2-filter/test/components/text.test.js @@ -9,7 +9,11 @@ jest.useFakeTimers(); describe('Text Filter', () => { let wrapper; let instance; + + // onFilter(x)(y) = filter result const onFilter = sinon.stub(); + const onFilterFirstReturn = sinon.stub(); + const column = { dataField: 'price', text: 'Price' @@ -17,6 +21,9 @@ describe('Text Filter', () => { afterEach(() => { onFilter.reset(); + onFilterFirstReturn.reset(); + + onFilter.returns(onFilterFirstReturn); }); describe('initialization', () => { @@ -58,7 +65,9 @@ describe('Text Filter', () => { it('should calling onFilter on componentDidMount', () => { expect(onFilter.calledOnce).toBeTruthy(); - expect(onFilter.calledWith(column, defaultValue, FILTER_TYPE.TEXT)).toBeTruthy(); + expect(onFilter.calledWith(column, FILTER_TYPE.TEXT)).toBeTruthy(); + expect(onFilterFirstReturn.calledOnce).toBeTruthy(); + expect(onFilterFirstReturn.calledWith(defaultValue)).toBeTruthy(); }); }); @@ -114,7 +123,9 @@ describe('Text Filter', () => { it('should calling onFilter correctly when props.defaultValue is changed', () => { expect(onFilter.calledOnce).toBeTruthy(); - expect(onFilter.calledWith(column, nextDefaultValue, FILTER_TYPE.TEXT)).toBeTruthy(); + expect(onFilter.calledWith(column, FILTER_TYPE.TEXT)).toBeTruthy(); + expect(onFilterFirstReturn.calledOnce).toBeTruthy(); + expect(onFilterFirstReturn.calledWith(nextDefaultValue)).toBeTruthy(); }); }); @@ -133,8 +144,9 @@ describe('Text Filter', () => { it('should calling onFilter correctly', () => { expect(onFilter.calledOnce).toBeTruthy(); - expect(onFilter.calledWith( - column, instance.props.defaultValue, FILTER_TYPE.TEXT)).toBeTruthy(); + expect(onFilter.calledWith(column, FILTER_TYPE.TEXT)).toBeTruthy(); + expect(onFilterFirstReturn.calledOnce).toBeTruthy(); + expect(onFilterFirstReturn.calledWith(instance.props.defaultValue)).toBeTruthy(); }); }); @@ -154,7 +166,9 @@ describe('Text Filter', () => { it('should calling onFilter correctly', () => { expect(onFilter.calledOnce).toBeTruthy(); - expect(onFilter.calledWith(column, filterText, FILTER_TYPE.TEXT)).toBeTruthy(); + expect(onFilter.calledWith(column, FILTER_TYPE.TEXT)).toBeTruthy(); + expect(onFilterFirstReturn.calledOnce).toBeTruthy(); + expect(onFilterFirstReturn.calledWith(filterText)).toBeTruthy(); }); });