Slide 1

Slide 1 text

A Starting Point into Login Page Testing with Cypress

Slide 2

Slide 2 text

Access granted! @leichteckig

Slide 3

Slide 3 text

Access granted! @leichteckig AGENDA • Login - Why bother? • Project Setup • "Default" UI login test • Social Login Test • What’s withPasswordless Is this a Cypress login workshop?

Slide 4

Slide 4 text

Access granted! @leichteckig

Slide 5

Slide 5 text

Access granted! @leichteckig HTTPS://AUTH0-VUE- SAMPLE.NETLIFY.APP/ test / TestTest1!

Slide 6

Slide 6 text

Access granted! @leichteckig

Slide 7

Slide 7 text

Access granted! @leichteckig CYPRESS SETUP <3

Slide 8

Slide 8 text

Access granted! @leichteckig

Slide 9

Slide 9 text

Access granted! @leichteckig

Slide 10

Slide 10 text

Access granted! @leichteckig WHAT DO I CONSIDER DEFAULT LOGIN? • A form with two input fields • Username / email and passwort • Single Factor Authentication …know. …have. …are.

Slide 11

Slide 11 text

Access granted! @leichteckig WHAT DO I CONSIDER DEFAULT LOGIN? • A form with two input fields • Username / email and passwort • Single Factor Authentication …know. …have. …are.

Slide 12

Slide 12 text

Access granted! @leichteckig WHAT DO I CONSIDER DEFAULT LOGIN? • A form with two input fields • Username / email and passwort • Single Factor Authentication …know. …have. …are. • Sends credentials to server, where validation takes place • If credentials map to user, they will be granted access

Slide 13

Slide 13 text

Access granted! @leichteckig DEFAULT LOGIN TEST <3

Slide 14

Slide 14 text

Access granted! @leichteckig TL;DR STANDARD LOGIN • cy.origin for multi domain testing • building a custom command "loginViaAuth0Ui" • Beware rate limit, can be cirmcumvented • Remove the blocked ip address by management API

Slide 15

Slide 15 text

Access granted! @leichteckig

Slide 16

Slide 16 text

Access granted! @leichteckig

Slide 17

Slide 17 text

Access granted! @leichteckig WHAT IS SOCIAL LOGIN? • Single sign on for end users • Using existing login information to sign in • Like Google, X, Facebook, GitHub, LinkedIn (Social Providers) • Social Provider validates the user‘s identity

Slide 18

Slide 18 text

Access granted! @leichteckig SOCIAL LOGIN <3

Slide 19

Slide 19 text

Access granted! @leichteckig TL;DR SOCIAL LOGIN • Evolution of the standard • "experimentalModifyObstructiveThirdPartyCode " must be set to true • Some querks of the social providers need to be taken into account • React to them inside your custom command

Slide 20

Slide 20 text

Access granted! @leichteckig TASK: WRITE A TEST • Install Cypress • Decide on the login case you want to use for your test • Try it out <3 • Let me know if you need support • Time: Let's meet back at 3:45

Slide 21

Slide 21 text

Access granted! @leichteckig CASE: PASSWORDLESS • Often, tools are involved, see next slide • Catch the mail and fetch OTP or link from it • Open source way: smtp-tester (SMTP server in Cypress) • In most tools: Setting up + Using custom commands or tasks • Alternative: Mocking

Slide 22

Slide 22 text

Access granted! @leichteckig Mailosaur-cypress Keep mailosaur on a minimum Mailhog-cypress

Slide 23

Slide 23 text

Access granted! @leichteckig EXTRA-CONTENT: LOGIN PER API • You will not likely log in per UI for every test • Just once, in dedicated Login test • Otherwise way too slow • use programmatic login

Slide 24

Slide 24 text

Access granted! @leichteckig PROGRAMMATIC LOGIN <3

Slide 25

Slide 25 text

Access granted! @leichteckig

Slide 26

Slide 26 text

Access granted! @leichteckig cy.origin

Slide 27

Slide 27 text

Access granted! @leichteckig cy.origin Social login is similar to default workflow

Slide 28

Slide 28 text

Access granted! @leichteckig cy.origin Social login is similar to default workflow Mailosaur or Mailhog

Slide 29

Slide 29 text

Access granted! @leichteckig cy.origin Social login is similar to default workflow Prefer tool usage over mocking Mailosaur or Mailhog

Slide 30

Slide 30 text

Access granted! @leichteckig

Slide 31

Slide 31 text

Access granted! @leichteckig These slides Find me ❤

Slide 32

Slide 32 text

Access granted! @leichteckig