-
-
Notifications
You must be signed in to change notification settings - Fork 344
test(e2e): Adds Feedback Widget Maestro E2E tests #4604
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
antonis
wants to merge
246
commits into
feedback-ui-2
Choose a base branch
from
antonis/feedback-e2e
base: feedback-ui-2
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
246 commits
Select commit
Hold shift + click to select a range
817eac8
Update the client implementation to use the new capture feedback js api
antonis 5370a99
Updates SDK API
antonis 42e2fa1
Adds new feedback button in the sample
antonis 514b102
Adds changelog
antonis 0935bbd
Removes unused mock
antonis 9ea5496
Update CHANGELOG.md
antonis da0d4ac
Directly use captureFeedback from sentry/core
antonis 3e36c6d
Use import from core
antonis 5f3df64
Fixes imports order lint issue
antonis 71b28e8
Fixes build issue
antonis f9d2b59
Adds captureFeedback tests from sentry-javascript
antonis d05d531
Update CHANGELOG.md
krystofwoldrich 2bb104b
Only deprecate client captureUserFeedback
antonis 4339274
Add simple form UI
antonis 6ce799b
Adds basic form functionality
antonis f2cefc6
Update imports
antonis 694ee33
Update imports
antonis 18b1c33
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis 034efde
Remove useState hook to avoid multiple react instances issues
antonis 67a492d
Move types and styles in different files
antonis 8eaa61d
Removes attachment button to be added back separately along with the …
antonis 0b88cc5
Add basic field validation
antonis ae11b8d
Adds changelog
antonis 7f2ca06
Updates changelog
antonis 064b6c4
Updates changelog
antonis e2add4a
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis e21718a
Trim whitespaces from the submitted feedback
antonis 407f179
Adds tests
antonis 14ac005
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis ddade00
Renames FeedbackFormScreen to FeedbackForm
antonis 1bc1e4c
Add beta label
antonis 7934756
Extract default text to constants
antonis 95e1e0f
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis a169362
Moves constant to a separate file and aligns naming with JS
antonis 4b5df7a
Adds input text labels
antonis 4fa81ce
Close screen before sending the feedback to minimise wait time
antonis 4fff82f
Rename file for consistency
antonis 0258bf2
Flatten configuration hierarchy and clean up
antonis 458ebc2
Align required values with JS
antonis f0e1bef
Use Sentry user email and name when set
antonis b9235f2
Simplifies email validation
antonis 6717a84
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis 39a67bd
Show success alert message
antonis 501a134
Aligns naming with JS and unmounts the form by default
antonis 4b290a2
Use the minimum config without props in the changelog
antonis 7109deb
Adds development not for unimplemented function
antonis c80c5cb
Show email and name conditionally
antonis 8c56753
Adds sentry branding (png logo)
antonis d6e9229
Adds sentry logo resource
antonis 5292475
Add assets in module exports
antonis efd809f
Revert "Add assets in module exports"
antonis bc7ae65
Revert "Adds sentry logo resource"
antonis 79ee5ba
Revert "Adds sentry branding (png logo)"
antonis ba13320
Add last event id
antonis 1f5fb56
Mock lastEventId
antonis 439367a
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis 9831482
Adds beta note in the changelog
antonis d92ea89
Autoinject feedback form
antonis 4097347
Updates changelog
antonis f8a82fd
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis 8b9f4d5
Merge branch 'antonis/3859-newCaptureFeedbackAPI-Form' into antonis/4…
antonis 30a7b10
Align colors with JS
antonis 3eccf25
Update CHANGELOG.md
antonis bc96fce
Update CHANGELOG.md
antonis 995a9ca
Update CHANGELOG.md
antonis 3aacaf7
Use regular fonts for both buttons
antonis 20e3a6c
Merge branch 'antonis/3859-newCaptureFeedbackAPI-Form' of https://git…
antonis 78e412c
Handle keyboard properly
antonis c45a5e6
Adds an option on whether the email should be validated
antonis 6e39119
Merge properties only once
antonis 57d99e9
Loads current user data on form construction
antonis 6fb8ab4
Remove unneeded extra padding
antonis fd2e317
Fix background color issue
antonis 0261e04
Merge branch 'antonis/3859-newCaptureFeedbackAPI-Form' into antonis/4…
antonis d4168c1
Adds feedback button
antonis 5a9c02d
Updates the changelog
antonis b793937
Fixes changelog typo
antonis b209ad6
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis 4408071
Merge branch 'antonis/3859-newCaptureFeedbackAPI-Form' into antonis/4…
antonis bdee51b
Merge branch 'antonis/4358-Feedback-Form-Autoinject' into antonis/435…
antonis a40fde6
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis 2a8f13f
Updates styles background color
antonis 0f3a244
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis 9a96e74
Use defaultProps
antonis 10c1c0e
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis 2be08a6
Correct defaultProps
antonis 0588552
Adds test to verify when getUser is called
antonis 89c66d3
Merge branch 'antonis/3859-newCaptureFeedbackAPI-Form' into antonis/4…
antonis 851b63e
Merge branch 'antonis/4358-Feedback-Form-Autoinject' into antonis/435…
antonis f05497c
Use smaller image
antonis 0eb4f68
Add margin next to the icon
antonis fbc8f77
Adds bottom spacing in the ErrorScreen so that the feedback button do…
antonis e0ec92d
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis fada0fb
Merge branch 'antonis/3859-newCaptureFeedbackAPI-Form' into antonis/4…
antonis 2d30fd7
Merge branch 'antonis/4358-Feedback-Form-Autoinject' into antonis/435…
antonis 265e629
(2.2) feat: Add Feedback Form UI Branding logo (#4357)
antonis da0e3ea
Autoinject feedback form (#4370)
antonis a931ba9
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis 5de8841
Merge branch 'antonis/3859-newCaptureFeedbackAPI-Form' into antonis/4…
antonis 5f9dec6
Align changelog entry
antonis 8359696
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis 1e8aa8f
Merge branch 'antonis/3859-newCaptureFeedbackAPI-Form' into antonis/4…
antonis 76518cc
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis cabd570
Merge branch 'antonis/3859-newCaptureFeedbackAPI-Form' into antonis/4…
antonis b0384ed
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis 61886c2
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-Form
antonis 9853630
Update changelog
antonis 209a29b
Merge branch 'antonis/3859-newCaptureFeedbackAPI-Form' into antonis/4…
antonis fe3dc15
Disable bouncing
antonis 72eef2d
Add modal ui appearance
antonis ccc808b
Update snapshot tests
antonis fd47fd2
Fix bottom margin
antonis dcc5d3b
Merge branch 'feedback-ui' into antonis/feedback-modal-ui
antonis 9ecd8a2
Fix sheet height
antonis 05f94f8
Remove extra modal border
antonis d88a599
Do not expose modal styles
antonis ce1de86
Animate background color
antonis a7a4e56
Avoid keyboard in modal
antonis 22fd47b
Merge branch 'feedback-ui' into antonis/4358-Feedback-Form-Autoinject…
antonis 8779886
Merge branch 'feedback-ui' into antonis/feedback-modal-ui
antonis 7832765
Merge branch 'antonis/feedback-modal-ui' into antonis/4358-Feedback-F…
antonis 447e3fe
Update changelog
antonis 47f0fc4
Fix changelog
antonis 63bfc6d
Updates comment
antonis 6f60162
Extract FeedbackButtonProps
antonis ae80f7d
Merge branch 'feedback-ui' into antonis/feedback-modal-ui
antonis 079a436
Merge branch 'antonis/feedback-modal-ui' into antonis/4358-Feedback-F…
antonis 3e5be69
Merge branch 'feedback-ui' into antonis/4358-Feedback-Form-Autoinject…
antonis 0dc5f27
Merge branch 'feedback-ui' into antonis/4358-Feedback-Form-Autoinject…
antonis f80a48d
Merge branch 'feedback-ui' into antonis/4358-Feedback-Form-Autoinject…
antonis b3eec7e
Merge branch 'feedback-ui' into antonis/4358-Feedback-Form-Autoinject…
antonis a79951c
Merge branch 'feedback-ui' into antonis/4358-Feedback-Form-Autoinject…
antonis b08debb
Merge branch 'feedback-ui-2' into antonis/4358-Feedback-Form-Autoinje…
antonis e601785
Add public function description to satisfy lint check
antonis 2e0e5d2
Adds tests
antonis 2620101
Merge branch 'feedback-ui-2' into antonis/4358-Feedback-Form-Autoinje…
antonis 9f631e2
Fix tests
antonis 620d273
Add test ids in feedback widget
antonis e24238d
Add feedback widget button in test app
antonis d90dc52
WIP: Add feedback test
antonis 30c3b28
Merge branch 'main' into antonis/feedback-e2e
antonis 3d66cfc
Update snapshot tests with the added test ids
antonis 5b793ee
Merge branch 'main' into antonis/feedback-e2e
antonis 1d96dff
Android happy path test
antonis cd693a7
Check field validation
antonis ead0e9e
Scroll if button is not visible
antonis 6851c5a
Adds accessibility labels
antonis fa3bdfc
Remove extended initial checks due to flakiness
antonis 90402cb
Merge branch 'feedback-ui-2' into antonis/4358-Feedback-Form-Autoinje…
antonis 1b1d1c8
Merge branch 'main' into antonis/feedback-e2e
antonis ca18f5c
Revert "Remove extended initial checks due to flakiness"
antonis 307839d
Merge branch 'feedback-ui-2' into antonis/4358-Feedback-Form-Autoinje…
antonis df1653b
Add hardcoded dark and light color themes
antonis 13bf507
Rename theme options
antonis 0b3e4cb
Update snapshot tests
antonis 2fbbf11
Include in the feedback integration
antonis bae1620
Fix circular dependency
antonis 0f3faa2
Merge branch 'antonis/4358-Feedback-Form-Autoinject-Button' into anto…
antonis 522e24f
Add theme integration options
antonis 110069c
Adds changelog
antonis 3bd4682
Add comment note
antonis 183796c
Align with JS api
antonis be791cd
Remove unneeded line
antonis 13de5af
Merge branch 'feedback-ui-2' into antonis/4358-Feedback-Form-Autoinje…
antonis 04f1a8d
Place widget button below the feedback widget shadow
antonis 06adadd
Expose showFeedbackButton/hideFeedbackButton methods
antonis 7473c58
Add dummy integration for tracking usage
antonis 24b3df0
Adds button border
antonis 10a70a3
Fixes tests
antonis c05fc5f
Merge branch 'antonis/4358-Feedback-Form-Autoinject-Button' into anto…
antonis c831eee
Add accentBackground and accentForeground colors
antonis 6e7b61b
Extract integration getter in a helper function
antonis b3fe27c
Merge branch 'feedback-ui-2' into antonis/4358-Feedback-Form-Autoinje…
antonis 0a37f7f
Merge branch 'antonis/4358-Feedback-Form-Autoinject-Button' into anto…
antonis 7a331b6
Adds dynamic theming support
antonis 6c63d03
Add snapshot tests
antonis 3285669
Show screenshot button UI
antonis 013fc26
Add screenshot button integration
antonis 4b51b45
Add screenshot icon
antonis 7ee09d2
Adds Take a screenshot button in FeedbackWidget
antonis 184c9c4
Updates snapshot tests
antonis e28d388
Fix circularDepCheck
antonis 67fcf61
Fix circularDepCheck
antonis 96c6324
Attache captured screenshot
antonis 30cae3d
Hide the take screenshot button when there is a screenshot
antonis 7660f80
Convert uint8Array to Base64 on the native side
antonis 7b77183
ref(feedback): Extracts FeedbackWidgetProvider in a separate file
antonis 8ad3494
Updates exposed comments
antonis a6d0c48
Adds snapshot tests
antonis 00f65b9
Disable functionality on the Web
antonis 2aabccf
Add screenshot button in the sample expo app
antonis 07c2ba6
Merge branch 'antonis/screenshot-button' into antonis/ref-feedback-cy…
antonis 573f3b7
Merge branch 'feedback-ui-2' into antonis/feedback-theme
antonis ba98685
Adds system theme tests
antonis 3b4a1de
Test dynamically changed theme
antonis 1fdf125
Remove showScreenshotButton and hideScreenshotButton from the exposed…
antonis 7af42d3
Fix function name typo
antonis 476d181
Adds enableTakeScreenshot option
antonis a33e0e1
Merge branch 'antonis/feedback-theme' into antonis/screenshot-button
antonis 631d43b
Adds happy flow test
antonis 1089557
Make flow tests more granular
antonis d6990ef
Increate wait time out to fix flakiness on ci
antonis a8785d8
Reset widget state after each test
antonis a0c4842
Fix CI flakiness
antonis 3afd74e
Merge branch 'antonis/screenshot-button' into antonis/ref-feedback-cy…
antonis 885399c
Remove flaky test
antonis 4d4400c
Merge branch 'antonis/screenshot-button' into antonis/ref-feedback-cy…
antonis f5cc248
fix(feedback): Fixes accessibility issue on iOS
antonis 85d4f9e
Add changelog
antonis a911e39
Merge branch 'antonis/ios-accessibility' into antonis/feedback-e2e
antonis 45b3bd4
Properly wrap root app component
antonis 2fc5c16
Handle undefined AppRegistryIntegration.onRunApplication gracefully
antonis 8cd61bc
Fix lint issue
antonis 719f91d
Do not validate all fields for visibility
antonis 3e361a1
Take screenshots for debugging
antonis eaec268
Revert "Take screenshots for debugging"
antonis a8ab86f
Simplify test scenario
antonis 6308038
Try without hiding the keyboard
antonis 304824f
Test Feedback button
antonis 8913ffc
Test screenshot capture
antonis 32f1c8b
Show an error if screenshot capture fails
antonis 9590707
Test error flow
antonis f6e950e
Merge branch 'feedback-ui-2' into antonis/capture-screenshot-error
antonis 5e7bc3d
Merge branch 'antonis/capture-screenshot-error' into antonis/feedback…
antonis accfccf
Revert unneeded change
antonis e7c31bf
Test with latest Maestro
antonis c5d1d5f
Revert "Test with latest Maestro"
antonis 3822f5b
Revert "Test screenshot capture"
antonis dc75821
Merge branch 'feedback-ui-2' into antonis/feedback-e2e
antonis b385650
Skip for 0.65.3
antonis 8c67cea
Remove version check
antonis 39a69c2
Merge branch 'feedback-ui-2' into antonis/feedback-e2e
antonis 920bdd5
Merge branch 'feedback-ui-2' into antonis/feedback-e2e
antonis 22ca32b
Use testId for feedback button
antonis fd8a3ae
Skip for 0.65.3
antonis 211170d
Update snapshots
antonis 882c22e
Merge branch 'feedback-ui-2' into antonis/feedback-e2e
antonis 8176d4f
Cleanup testIds and accessibility labels
antonis 9137fb3
Enable for all RN versions
antonis e20aff2
Temp: remove modal supported check
antonis 1a68b93
Do not use native driver for backgroundOpacity animation
antonis 910d86e
Revert "Temp: remove modal supported check"
antonis cb20fbe
Do not use native driver for backgroundOpacity animation
antonis e122ade
Use text instead of test ids
antonis b7fee86
Separate iOS and Android tests
antonis 842824c
Merge branch 'feedback-ui-2' into antonis/feedback-e2e
antonis File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
appId: ${APP_ID} | ||
jsEngine: graaljs | ||
--- | ||
- runFlow: utils/launchTestAppClear.yml | ||
|
||
|
||
# The following tests are happy path tests for the feedback widget on both iOS and Android. | ||
# They verify that the feedback form can be opened, filled out, and submitted successfully. | ||
# The tests are separate because iOS tests work better with `testID` and Android tests work better with `text`. | ||
|
||
- runFlow: | ||
file: feedback/happyFlow-ios.yml | ||
when: | ||
platform: iOS | ||
|
||
- runFlow: | ||
file: feedback/happyFlow-android.yml | ||
when: | ||
platform: Android |
39 changes: 39 additions & 0 deletions
39
dev-packages/e2e-tests/maestro/feedback/happyFlow-android.yml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# This is a happy path test for the feedback widget on Android. | ||
# It verifies that the feedback form can be opened, filled out, and submitted successfully | ||
appId: ${APP_ID} | ||
jsEngine: graaljs | ||
--- | ||
|
||
# Show feedback button | ||
- tapOn: 'Feedback' | ||
|
||
# Open feedback widget | ||
- tapOn: 'Report a Bug' | ||
|
||
# Assert that the feedback form is visible | ||
- extendedWaitUntil: | ||
visible: 'Report a Bug' | ||
timeout: 5_000 | ||
|
||
# Fill out name field | ||
- tapOn: 'Your Name' | ||
- inputText: 'John Doe' | ||
|
||
# Fill out email field | ||
- tapOn: 'your.email@example.org' | ||
- inputText: 'test@email.com' | ||
|
||
# Fill out message field | ||
- tapOn: "What's the bug? What did you expect?" | ||
- inputText: 'This is a test feedback message from CI e2e tests' | ||
|
||
# Submit feedback | ||
- scrollUntilVisible: | ||
element: | ||
text: 'Send Bug Report' | ||
- tapOn: 'Send Bug Report' | ||
- assertVisible: 'Thank you for your report!' | ||
- tapOn: 'OK' | ||
|
||
# Verify feedback form is closed and the home screen is visible | ||
- assertVisible: 'Welcome to React Native' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# This is a happy path test for the feedback widget on iOS. | ||
# It verifies that the feedback form can be opened, filled out, and submitted successfully | ||
appId: ${APP_ID} | ||
jsEngine: graaljs | ||
--- | ||
|
||
# Show feedback button | ||
- tapOn: 'Feedback' | ||
|
||
# Open feedback widget | ||
- tapOn: | ||
id: 'sentry-feedback-button' | ||
|
||
# Assert that the feedback form is visible | ||
- extendedWaitUntil: | ||
visible: | ||
id: 'sentry-feedback-form-title' | ||
timeout: 5_000 | ||
|
||
# Fill out name field | ||
- tapOn: | ||
id: 'sentry-feedback-name-input' | ||
- inputText: 'John Doe' | ||
|
||
# Fill out email field | ||
- tapOn: | ||
id: 'sentry-feedback-email-input' | ||
- inputText: 'test@email.com' | ||
|
||
# Fill out message field | ||
- tapOn: | ||
id: 'sentry-feedback-message-input' | ||
- inputText: 'This is a test feedback message from CI e2e tests' | ||
|
||
# Submit feedback | ||
- scrollUntilVisible: | ||
element: | ||
id: 'sentry-feedback-submit-button' | ||
- tapOn: | ||
id: 'sentry-feedback-submit-button' | ||
- assertVisible: 'Thank you for your report!' | ||
- tapOn: 'OK' | ||
|
||
# Verify feedback form is closed and the home screen is visible | ||
- assertVisible: 'Welcome to React Native' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Android Test is super clean, sad that is doesn't work for iOS.
Is it flaky or the elements are not found?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On iOS legacy text lookups fail consistently :(