diff --git a/packages/react-native-web/src/exports/TextInput/__tests__/index-test.js b/packages/react-native-web/src/exports/TextInput/__tests__/index-test.js
index 5dd04755..13b07ec9 100644
--- a/packages/react-native-web/src/exports/TextInput/__tests__/index-test.js
+++ b/packages/react-native-web/src/exports/TextInput/__tests__/index-test.js
@@ -330,18 +330,27 @@ describe('components/TextInput', () => {
});
});
- test('prop "onSelectionChange"', done => {
- const input = findNativeInput(
- mount()
- );
- input.simulate('select', {
- target: { selectionStart: 0, selectionEnd: 3 }
+ describe('prop "onSelectionChange"', () => {
+ test('is called on select', done => {
+ const input = findNativeInput(
+ mount()
+ );
+ input.simulate('select', {
+ target: { selectionStart: 0, selectionEnd: 3 }
+ });
+ function onSelectionChange(e) {
+ expect(e.nativeEvent.selection.end).toEqual(3);
+ expect(e.nativeEvent.selection.start).toEqual(0);
+ done();
+ }
+ });
+
+ test('is called on change', () => {
+ const onSelectionChange = jest.fn();
+ const input = findNativeInput(mount());
+ input.simulate('change');
+ expect(onSelectionChange).toHaveBeenCalledTimes(1);
});
- function onSelectionChange(e) {
- expect(e.nativeEvent.selection.end).toEqual(3);
- expect(e.nativeEvent.selection.start).toEqual(0);
- done();
- }
});
describe('prop "onSubmitEditing"', () => {
diff --git a/packages/react-native-web/src/exports/TextInput/index.js b/packages/react-native-web/src/exports/TextInput/index.js
index a6798094..2da70531 100644
--- a/packages/react-native-web/src/exports/TextInput/index.js
+++ b/packages/react-native-web/src/exports/TextInput/index.js
@@ -282,6 +282,7 @@ class TextInput extends Component<*> {
if (onChangeText) {
onChangeText(text);
}
+ this._handleSelectionChange(e);
};
_handleFocus = e => {