Page MenuHomePhabricator

Automated browser tests for the donation application
Open, Needs TriagePublic

Description

work in progress

This Epic is supposed to resolve several issues with the current situation.

  • There are no browser tests in place for the recently introduced skin cat17.
  • Browser tests are not executed automatically.
  • The existing browser tests for the skin 10h16 may not work anymore.

High Level Goals

  • Setup an infrastructure on which the browser tests can be run
  • Automatically execute browser tests when master branches get an update, e. g.
    • wmde/FundraisingFrontend
    • wmde/fundraising-frontend-content
    • libraries of bounded contexts
  • Supplement existing browser tests to also cover the recently introduced skin cat17
  • Make browser tests for the skin 10h16 pass

Desired testable behaviour

  • All requested resources can be loaded
  • Walk through happy case of the donation process including confirmation pages
  • Walk through happy case of the membership application process including confirmation pages
  • (Responsiveness?)
  • Field interaction that reflects business logic
  • Validation results
  • Conditional notices, e. g.
    • house number missing in address field
    • JavaScript disabled
  • Behaviour of the supporter list
  • Pagination behaviour of the comment list

Donation form

  • Too high and too low donation amounts result in
    • the field rendering invalid
    • an error message to appear
    • the fieldset or section rendering invalid
    • the submit button not being clickable (although other sections are valid)
  • Entering a payment amount by predefined options or the custom amount field results in
    • the change being reflected in the overview section (right of and below the form in wide viewports; in the top bar and below the form in narrow viewports)
  • Switching the payment interval results in
    • a change of the message right of it
    • the change being reflected in the overview section (right of and below the form in wide viewports; in the top bar and below the form in narrow viewports); both as an icon and the corresponding text
  • Switching the payment method results in
    • a change of the message right of it
    • the fieldset for the bank data appearing on the right side, if direct-debit was selected
    • the change being reflected in the overview section (icon and text)
  • Switching the address type to "anonymous" results in
    • the notice regarding the donation receipt is being shown in the right area of the address section
    • the change being reflected in the overview section (right of and below the form in wide viewports; in the top bar and below the form in narrow viewports); both as an icon and the corresponding text
  • Entering an invalid IBAN into the respective field results in
    • the browser sending a request to the validation end-point check-iban
    • the server returning an error message
    • all bank data fields being rendered invalid
    • an error message appearing
    • no notice being shown in the overview section
  • Entering a valid German IBAN into the respective field results in
    • the browser sending a request to the validation end-point check-iban
    • the server returning a success response
    • the response containing supplement data for the fields BIC, account number, bank code and bank name
    • the supplemented data being programmatically entered into their respective fields
    • all bank data fields being rendered valid
    • no error message being visible
    • the IBAN and the BIC being shown in the overview section
    • a notice regarding the SEPA mandate being shown in the overview section
  • Entering an invalid non-German IBAN into the respective field results in
    • the browser sending a request to the validation end-point check-iban
    • the server returning an error message
    • all bank data fields being rendered invalid
    • an error message appearing
    • no notice being shown in the overview section
  • Entering a valid German IBAN into the respective field results in
    • the browser sending a request to the validation end-point check-iban
    • the server returning a success response
    • the response not containing supplement data for the fields BIC, account number, bank code and bank name
    • the fields for BIC, account number, bank code and bank name being emptied (there is a bug right now, BIC is being kept)
    • all bank data fields being rendered valid
    • no error message being visible
    • the IBAN being shown in the overview section (there is a bug right now, IBAN is not being shown)
    • a notice regarding the SEPA mandate being shown in the overview section
  • Submit button disabled/enabled

Donation confirmation page

  • General
    • Page reflects the desired payment interval and payment amount
    • Page contains the ID of the donation data set
    • Page contains the CTA for becoming a member
  • Viewing the confirmation page for the payment type "bank transfer"
    • Page contains the bank transfer code
  • Viewing the confirmation page for the payment type "direct debit"
    • Page contains a link for canceling the transaction
    • Page contains the SEPA mandate
    • SEPA mandate contains the given IBAN
    • SEPA mandate contains the given BIC
    • SEPA mandate does not show the label "BIC", if no BIC was given
    • SEPA mandate shows the place and date of issue
    • SEPA mandate is not being shown on-screen
    • SEPA mandate belongs to the printable version of the page

Membership form

  • When passing type=sustaining in the query string
    • Membership type options are not being displayed
    • Membership type is set to "Fördermitgliedschaft"
  • Entering an invalid IBAN into the respective field results in
    • the browser sending a request to the validation end-point check-iban
    • the server returning an error message
    • all bank data fields being rendered invalid
    • an error message appearing
    • no notice being shown in the overview section
  • Entering a valid German IBAN into the respective field results in
    • the browser sending a request to the validation end-point check-iban
    • the server returning a success response
    • the response containing supplement data for the fields BIC, account number, bank code and bank name
    • the supplemented data being programmatically entered into their respective fields
    • all bank data fields being rendered valid
    • no error message being visible
    • the IBAN and the BIC being shown in the overview section
    • a notice regarding the SEPA mandate being shown in the overview section
  • Entering an invalid non-German IBAN into the respective field results in
    • the browser sending a request to the validation end-point check-iban
    • the server returning an error message
    • all bank data fields being rendered invalid
    • an error message appearing
    • no notice being shown in the overview section
  • Entering a valid German IBAN into the respective field results in
    • the browser sending a request to the validation end-point check-iban
    • the server returning a success response
    • the response not containing supplement data for the fields BIC, account number, bank code and bank name
    • the fields for BIC, account number, bank code and bank name being emptied (there is a bug right now, BIC is being kept)
    • all bank data fields being rendered valid
    • no error message being visible
    • the IBAN being shown in the overview section (there is a bug right now, IBAN is not being shown)
    • a notice regarding the SEPA mandate being shown in the overview section