react-native-macos/RNTester/e2e/__tests__/Touchable-test.js

78 строки
2.3 KiB
JavaScript

/**
* 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,
openExampleWithTitle,
} = require('../e2e-helpers');
describe('Touchable', () => {
beforeAll(async () => {
await device.reloadReactNative();
await openComponentWithLabel(
'<Touchable*',
'<Touchable*> and onPress Touchable and onPress examples.',
);
});
it('Touchable Highlight should be tappable', async () => {
await openExampleWithTitle('<TouchableHighlight>');
const buttonID = 'touchable_highlight_image_button';
const button2ID = 'touchable_highlight_text_button';
const consoleID = 'touchable_highlight_console';
await element(by.id(buttonID)).tap();
await expect(element(by.id(consoleID))).toHaveText(
'TouchableHighlight onPress',
);
await element(by.id(buttonID)).tap();
await expect(element(by.id(consoleID))).toHaveText(
'2x TouchableHighlight onPress',
);
await element(by.id(button2ID)).tap();
await expect(element(by.id(consoleID))).toHaveText(
'3x TouchableHighlight onPress',
);
});
it('Touchable Without Feedback should be tappable', async () => {
await openExampleWithTitle('<TouchableWithoutFeedback>');
const buttonID = 'touchable_without_feedback_button';
const consoleID = 'touchable_without_feedback_console';
await element(by.id(buttonID)).tap();
await expect(element(by.id(consoleID))).toHaveText(
'TouchableWithoutFeedback onPress',
);
await element(by.id(buttonID)).tap();
await expect(element(by.id(consoleID))).toHaveText(
'2x TouchableWithoutFeedback onPress',
);
});
it('Text should be tappable', async () => {
await openExampleWithTitle('<Text onPress={fn}> with highlight');
const buttonID = 'tappable_text';
const consoleID = 'tappable_text_console';
await element(by.id(buttonID)).tap();
await expect(element(by.id(consoleID))).toHaveText('text onPress');
await element(by.id(buttonID)).tap();
await expect(element(by.id(consoleID))).toHaveText('2x text onPress');
});
});