QA sign-in
Let the QA agent sign in to your preview so it can verify pages behind a login.
Overview
QA verifies your acceptance criteria on the deployed preview, in a real browser. In most apps, most pages are behind a login, and QA cannot guess how your login works. You give QA the sign-in steps in ship.yml.
If ship.yml has no sign-in, QA still checks every page that it can open while signed out. A criterion that needs a signed-in page fails, and QA gives the reason: it had no way to sign in. QA never tries a sign-in method of its own.
Configuration
Add a qa.signIn block to the ship.yml at the root of your repository:
version: 1
qa:
signIn:
path: /login
steps: >-
Enter operator@riverbank.studio in the Email field and press
"Send magic link". The demo signs you straight in.| Field | What it is |
|---|---|
path | The sign-in page, relative to the address of the preview. It must start with a single / and contain no backslashes or spaces, so it can only point to your preview. |
steps | What to do on that page, in plain words. QA does the steps with normal browser actions (it types and clicks) in the same recorded session that it keeps as proof. The maximum is 2,000 characters. |
QA opens the page and follows your steps. Before QA captures proof, it makes sure that it is signed in. If the steps do not sign QA in, the criteria behind the login fail, and QA gives that reason. QA does not try a different way.
What it's for
Use it for a sign-in that needs no secret, for example:
- a demo login
- a magic-link stub that signs you in immediately
- a seeded test account with a public password
Do not put a real password or token in steps. Everything in ship.yml goes into your repository, and the agent sees all of it. SHIP does not support sign-ins that need a secret, SSO or MFA yet.
Where it's read from
SHIP reads qa.signIn from your base branch, not from the pull request that QA tests. Because of this, a pull request cannot change how QA signs in to test it. A change to the block applies to missions after the change merges.
How is this page?