Skip to content

Commit 8252221

Browse files
committed
test(e2e): Adds Feedback Widget Capture Screenshot Maestro E2E tests
1 parent 842824c commit 8252221

6 files changed

Lines changed: 115 additions & 2 deletions

File tree

dev-packages/e2e-tests/maestro/feedback.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,13 @@ jsEngine: graaljs
1717
file: feedback/happyFlow-android.yml
1818
when:
1919
platform: Android
20+
21+
- runFlow:
22+
file: feedback/captureFlow-ios.yml
23+
when:
24+
platform: iOS
25+
26+
- runFlow:
27+
file: feedback/captureFlow-android.yml
28+
when:
29+
platform: Android
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# This is a happy path test for the feedback widget on Android.
2+
# It verifies that the feedback form can be opened, filled out, and submitted successfully
3+
appId: ${APP_ID}
4+
jsEngine: graaljs
5+
---
6+
7+
# Show feedback button
8+
- tapOn: 'Feedback'
9+
10+
# Open feedback widget
11+
- tapOn: 'Report a Bug'
12+
13+
# Assert that the feedback form is visible
14+
- extendedWaitUntil:
15+
visible: 'Report a Bug'
16+
timeout: 5_000
17+
18+
# Fill out name field
19+
- tapOn: 'Your Name'
20+
- inputText: 'John Doe'
21+
22+
# Fill out email field
23+
- tapOn: 'your.email@example.org'
24+
- inputText: 'test@email.com'
25+
26+
# Fill out message field
27+
- tapOn: "What's the bug? What did you expect?"
28+
- inputText: 'This is a test feedback message with a screenshot from CI e2e tests'
29+
30+
# Take screenshot
31+
- scrollUntilVisible:
32+
element:
33+
text: 'Take a screenshot'
34+
- tapOn: 'Take a screenshot'
35+
- tapOn: 'Take Screenshot'
36+
37+
# Submit feedback
38+
- scrollUntilVisible:
39+
element:
40+
text: 'Send Bug Report'
41+
- tapOn: 'Send Bug Report'
42+
- assertVisible: 'Thank you for your report!'
43+
- tapOn: 'OK'
44+
45+
# Verify feedback form is closed and the home screen is visible
46+
- assertVisible: 'Welcome to React Native'
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# This is a happy path test for the feedback widget on iOS.
2+
# It verifies that the feedback form can be opened, filled out, and submitted successfully
3+
appId: ${APP_ID}
4+
jsEngine: graaljs
5+
---
6+
7+
# Show feedback button
8+
- tapOn: 'Feedback'
9+
10+
# Open feedback widget
11+
- tapOn:
12+
id: 'sentry-feedback-button'
13+
14+
# Assert that the feedback form is visible
15+
- extendedWaitUntil:
16+
visible:
17+
id: 'sentry-feedback-form-title'
18+
timeout: 5_000
19+
20+
# Fill out name field
21+
- tapOn:
22+
id: 'sentry-feedback-name-input'
23+
- inputText: 'John Doe'
24+
25+
# Fill out email field
26+
- tapOn:
27+
id: 'sentry-feedback-email-input'
28+
- inputText: 'test@email.com'
29+
30+
# Fill out message field
31+
- tapOn:
32+
id: 'sentry-feedback-message-input'
33+
- inputText: 'This is a test feedback message with a screenshot from CI e2e tests'
34+
35+
# Take screenshot
36+
- scrollUntilVisible:
37+
element:
38+
id: 'sentry-feedback-take-screenshot-button'
39+
- tapOn:
40+
id: 'sentry-feedback-take-screenshot-button'
41+
- tapOn:
42+
id: 'sentry-feedback-screenshot-button'
43+
44+
# Submit feedback
45+
- scrollUntilVisible:
46+
element:
47+
id: 'sentry-feedback-submit-button'
48+
- tapOn:
49+
id: 'sentry-feedback-submit-button'
50+
- assertVisible: 'Thank you for your report!'
51+
- tapOn: 'OK'
52+
53+
# Verify feedback form is closed and the home screen is visible
54+
- assertVisible: 'Welcome to React Native'

dev-packages/e2e-tests/patch-scripts/rn.patch.app.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ Sentry.init({
3232
},
3333
integrations: [
3434
Sentry.mobileReplayIntegration(),
35+
Sentry.feedbackIntegration({
36+
enableTakeScreenshot: true,
37+
}),
3538
],
3639
});
3740
`;

packages/core/src/js/feedback/FeedbackWidget.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ export class FeedbackWidget extends React.Component<FeedbackWidgetProps, Feedbac
351351
onCancel();
352352
showScreenshotButton();
353353
}}>
354-
<Text style={styles.takeScreenshotText}>{text.captureScreenshotButtonLabel}</Text>
354+
<Text style={styles.takeScreenshotText} testID='sentry-feedback-take-screenshot-button'>{text.captureScreenshotButtonLabel}</Text>
355355
</TouchableOpacity>
356356
)}
357357
<TouchableOpacity style={styles.submitButton} onPress={this.handleFeedbackSubmit}>

packages/core/src/js/feedback/ScreenshotButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ export class ScreenshotButton extends React.Component<ScreenshotButtonProps> {
8282
accessibilityLabel={text.triggerAriaLabel}
8383
>
8484
<Image source={{ uri: screenshotIcon }} style={styles.triggerIcon}/>
85-
<Text style={styles.triggerText}>{text.triggerLabel}</Text>
85+
<Text style={styles.triggerText} testID='sentry-feedback-screenshot-button'>{text.triggerLabel}</Text>
8686
</TouchableOpacity>
8787
);
8888
}

0 commit comments

Comments
 (0)