From d99bfb20260b937fea971c82a20f8a20a9dd073d Mon Sep 17 00:00:00 2001 From: stealthanthrax Date: Fri, 12 Jun 2020 00:22:28 +0530 Subject: [PATCH 1/2] Add E2E tests for InputAccessoryView --- .../e2e/__tests__/InputAccessoryView-test.js | 27 +++++++++++++++++++ .../InputAccessoryViewExample.js | 1 + 2 files changed, 28 insertions(+) create mode 100644 RNTester/e2e/__tests__/InputAccessoryView-test.js diff --git a/RNTester/e2e/__tests__/InputAccessoryView-test.js b/RNTester/e2e/__tests__/InputAccessoryView-test.js new file mode 100644 index 00000000000000..9083b7e24978af --- /dev/null +++ b/RNTester/e2e/__tests__/InputAccessoryView-test.js @@ -0,0 +1,27 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @emails oncall+react_native + * @format + */ + +/* global device, element, by, expect */ +const {openComponentWithLabel} = require('../e2e-helpers'); + +describe('InputAccessoryView', () => { + beforeAll(async () => { + await device.reloadReactNative(); + await openComponentWithLabel( + '', + ' Example showing how to use an InputAccessoryView to build an iMessage-like sticky text input', + ); + }); + + it('Send button should show alert on press', async () => { + await element(by.id('input-accessory-send-button')).tap(); + await expect(element(by.text('You tapped the button!'))).toBeVisible(); + }); +}); diff --git a/RNTester/js/examples/InputAccessoryView/InputAccessoryViewExample.js b/RNTester/js/examples/InputAccessoryView/InputAccessoryViewExample.js index 80bddeb91735e5..49c999cbb72f4f 100644 --- a/RNTester/js/examples/InputAccessoryView/InputAccessoryViewExample.js +++ b/RNTester/js/examples/InputAccessoryView/InputAccessoryViewExample.js @@ -53,6 +53,7 @@ class TextInputBar extends React.PureComponent { onPress={() => { Alert.alert('You tapped the button!'); }} + testID="input-accessory-send-button" title="Send" /> From f8318c10f34d3184d1a5d788cb1dfb53577e8a22 Mon Sep 17 00:00:00 2001 From: stealthanthrax Date: Wed, 17 Jun 2020 02:30:43 +0530 Subject: [PATCH 2/2] Add more related tests --- .../e2e/__tests__/InputAccessoryView-test.js | 19 +++++++++++++++++-- .../InputAccessoryViewExample.js | 1 + 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/RNTester/e2e/__tests__/InputAccessoryView-test.js b/RNTester/e2e/__tests__/InputAccessoryView-test.js index 9083b7e24978af..767575a6a2a2bd 100644 --- a/RNTester/e2e/__tests__/InputAccessoryView-test.js +++ b/RNTester/e2e/__tests__/InputAccessoryView-test.js @@ -20,8 +20,23 @@ describe('InputAccessoryView', () => { ); }); - it('Send button should show alert on press', async () => { + it('should be visiible on load', async () => { + await expect( + element(by.text('Simple view with sticky input')), + ).toBeVisible(); + }); + it('should be visible after keyboard opens', async () => { + const textInputID = 'input-accessory-text-input'; + await element(by.id(textInputID)).typeText('Test'); + await expect( + element(by.text('Simple view with sticky input')), + ).toBeVisible(); + }); + it('should be visible after send button press', async () => { await element(by.id('input-accessory-send-button')).tap(); - await expect(element(by.text('You tapped the button!'))).toBeVisible(); + await element(by.text('OK')).tap(); + await expect( + element(by.text('Simple view with sticky input')), + ).toBeVisible(); }); }); diff --git a/RNTester/js/examples/InputAccessoryView/InputAccessoryViewExample.js b/RNTester/js/examples/InputAccessoryView/InputAccessoryViewExample.js index 49c999cbb72f4f..b5c4f177669cda 100644 --- a/RNTester/js/examples/InputAccessoryView/InputAccessoryViewExample.js +++ b/RNTester/js/examples/InputAccessoryView/InputAccessoryViewExample.js @@ -48,6 +48,7 @@ class TextInputBar extends React.PureComponent { }} value={this.state.text} placeholder={'Type a message...'} + testID="input-accessory-text-input" />