theappbusiness/TABTestKit

Step description

stefanrenne opened this issue · 0 comments

It would be great to have a separate XCTContext activity for every step, because this will make it easier to pinpoint where things went wrong. Based on a spike that I did, this will be generated for the unit tests. Feedback is welcome :)

Scenario: Seeing the Face ID permissions prompt
Given I see the biometric login screen
And device biometrics are enabled
When I tap on the log in button
Then I see the do you want to allow “TABTestKit_Example” to use face ID alert

Scenario: Allowing permission but failing authentication
Given I see the do you want to allow “TABTestKit_Example” to use face ID alert
And I tap on the OK button in the alert
When I fail to authenticate biometrics
Then I see the alert

Scenario: Cancelling Face ID
Given I see the alert
When I dismiss the alert
And I do not see the alert
Then I see the login failed alert

Scenario: Dismissing failure alert
Given I see the login failed alert
When I dismiss the login failed alert
Then I see the biometric login screen
And I do not see the table screen

Scenario: Logging in with biometrics
Given I see the biometric login screen
When I complete the biometric login screen
Then I do not see the biometric login screen

Scenario: Relaunching the app
Given I do not see the biometric login screen
When I relaunch the app
Then I go back to the TABTestKit Example app
And I see the biometric login screen

Scenario: Seeing the Face ID permissions prompt
Given I see the biometric login screen
And device biometrics are enabled
When I tap on the log in button
Then I see the do you want to allow “TABTestKit_Example” to use face ID alert

Scenario: Denying permission and seeing an error alert
Given I see the do you want to allow “TABTestKit_Example” to use face ID alert
When I dismiss the do you want to allow “TABTestKit_Example” to use face ID alert
Then I see the login failed alert

Scenario: Confirming the error alert
Given I see the login failed alert
When I dismiss the login failed alert
Then I do not see the login failed alert
And I see the biometric login screen
And I do not see the table screen

Scenario: Completing biometric login and tapping the collection tab bar button
Given I complete the biometric login screen
When I tap on the collection button
Then I see the collection view screen
And the label of the collection header is 'Collection'

Scenario: Refreshing the collection view screen
Given I see the collection view screen
When I refresh the collection view screen
Then the state of the collection cell 0 cell is visible

Scenario: Scrolling until the first cell is hidden
Given the state of the collection cell 0 cell is visible
When I scroll the collection view screen from middle to top until the collection cell 49 cell exists and is visible in the collection view
Then the state of the collection cell 0 cell does not exist

Scenario: Scrolling until the last cell is hidden
Given the state of the collection cell 49 cell is visible
When I scroll the collection view screen from middle to bottom until the collection cell 49 cell does not exist
Then the state of the collection cell 0 cell does not exist
And the state of the collection cell 49 cell does not exist

Scenario: Deep linking from current state
Given I complete the biometric login screen
When I tap on the other button
And I open 'myamazingapp://deeplink'
Then I see the other elements screen

Scenario: Deep linking from terminated state
Given I see the other elements screen
When I terminate the app
And I open 'myamazingapp://deeplink'
And I wait for the app to be running foreground
Then I do not see the other elements screen
And I see the biometric login screen

Scenario: Navigating to the screen with other elements
Given I complete the biometric login screen
And I see the tab bar screen
When I tap on the other button
Then I see the other elements screen
And the label of the other elements header is 'Other elements'

Scenario: Seeing the label and button
Given I see the other elements screen
And I see the example label label
And I see the example button button
When I tap on the example button button
Then I see the activity list view activity sheet

Scenario: Dismissing the share sheet
Given I see the activity list view activity sheet
When I dismiss the activity list view activity sheet
Then I do not see the activity list view activity sheet
And I see the other elements screen

Scenario: Seeing and interacting with the segmented control
Given I see the segmented control
Then I tap on the second button
And the state of the first button is not selected
And the state of the second button is selected
And I tap on the third button
And the state of the second button is not selected
And the state of the third button is selected

Scenario: Seeing and interacting with the text field
Given I see the example text field text field
And the state of the example text field text field has no keyboard focus
Then I tap on the example text field text field
And the state of the example text field text field has keyboard focus
And I type 'Hello world' into the example text field text field
And the value of the example text field text field is 'Hello world'
And the keyboard is regular

Scenario: Number pad keyboard type
Given I scroll the other elements screen downwards until the number pad text field text field is hittable
When I tap on the number pad text field text field
Then the state of the number pad text field text field has keyboard focus
And the keyboard is number keypad

Scenario: Decimal pad keyboard type
Given I scroll the other elements screen downwards until the decimal pad text field text field is hittable
When I tap on the decimal pad text field text field
Then the state of the decimal pad text field text field has keyboard focus
And the keyboard is decimal keypad

Scenario: Email address keyboard type
Given I scroll the other elements screen downwards until the email address text field text field is hittable
When I tap on the email address text field text field
Then the state of the email address text field text field has keyboard focus
And the keyboard is email address

Scenario: Numbers and punctuation keyboard type
Given I scroll the other elements screen downwards until the numbers and punctuation text field text field is hittable
When I tap on the numbers and punctuation text field text field
Then the state of the numbers and punctuation text field text field has keyboard focus
And the keyboard is numbers and punctuation

Scenario: Phone pad keyboard type
Given I scroll the other elements screen downwards until the phone pad text field text field is hittable
When I tap on the phone pad text field text field
Then the state of the phone pad text field text field has keyboard focus
And the keyboard is telephone keypad

Scenario: Twitter keyboard type
Given I scroll the other elements screen downwards until the twitter text field text field is hittable
When I tap on the twitter text field text field
Then the state of the twitter text field text field has keyboard focus
And the keyboard is twitter

Scenario: URL keyboard type
Given I scroll the other elements screen downwards until the uRLText field text field is hittable
When I tap on the uRLText field text field
Then the state of the uRLText field text field has keyboard focus
And the keyboard is url

Scenario: Web search keyboard type
Given I scroll the other elements screen downwards until the web search text field text field is hittable
When I tap on the web search text field text field
Then the state of the web search text field text field has keyboard focus
And the keyboard is web search

Scenario: Seeing and interacting with the secure text field
Given I see the example secure text field secure text field
And the state of the example secure text field secure text field has no keyboard focus
Then I tap on the example secure text field secure text field
And the state of the example secure text field secure text field has keyboard focus
And I type 'Password!' into the example secure text field secure text field
And the value of the example secure text field secure text field is '•••••••••'

Scenario: Seeing and interacting with the slider
Given I tap on the return key
And I see the example slider slider
When I adjust the example slider slider to '1.0'
Then I adjust the example slider slider to '0.0'

Scenario: Seeing and interacting with the switch
Given I see the example switch switch
And the value of the example switch switch is 'on'
Then I adjust the example switch switch to 'off'
And the value of the example switch switch is 'off'

Scenario: Seeing and interacting with the stepper
Given I see the example stepper stepper
And the state of the decrement button is not enabled
And the state of the increment button is enabled
Then I tap on the increment button
And the state of the decrement button is enabled
And the state of the increment button is enabled
And I tap on the increment button
And the state of the decrement button is enabled
And the state of the increment button is not enabled

Scenario: Seeing and interacting with the page indicator
Given I see the example page control page indicator
Then the value of the example page control page indicator is 'page 1 of 3'

Scenario: Seeing the image
Given I scroll the other elements screen downwards until the example picker picker is visible
When I see the example image image
Then the value of the example image image is 'Optional("Ottoman")'

Scenario: Seeing and interacting with the picker
Given I see the example picker picker
And the value of the wheel is 'Hello'
When I adjust the wheel to 'World'
Then the value of the wheel is 'World'