Skip to main content

End-to-end testing

Learn how to run end-to-end tests against your deployment in your CI/CD workflow by creating an authentication bypass token.


Anchor to Step 1: Generate the authentication bypass tokenStep 1: Generate the authentication bypass token

  1. Generate a deployment token in the Shopify admin.

  2. Modify your CI/CD file to include the deploy command.

    Terminal

    npx shopify hydrogen deploy --auth-bypass-token --token $SHOPIFY_HYDROGEN_DEPLOYMENT_TOKEN
  3. The command outputs a file named h2_deploy_log.json, which contains the deployment URL and the authentication bypass token that you can feed into your end-to-end testing system.

By default, tokens are valid for two hours. You can modify this duration by supplying the --auth-bypass-token-duration flag to the deploy command. The duration can be set to any whole number of hours from 1 to 12.

Terminal

npx shopify hydrogen deploy --auth-bypass-token --auth-bypass-token-duration=5 --token $SHOPIFY_HYDROGEN_DEPLOYMENT_TOKEN

Anchor to Example GitHub workflowExample GitHub workflow

If you're using GitHub workflow files, then edit the deploy step per the following example. If you're using another CI/CD system, then refer to these example workflows.

.github/workflows/oxygen-deployment.yml

...

jobs:
deploy:
...
steps:
- name: Build and Publish to Oxygen
id: deploy
run:
- npx shopify hydrogen deploy --auth-bypass-token --token $SHOPIFY_HYDROGEN_DEPLOYMENT_TOKEN

- name: Run End-to-end Tests
run: |
export AUTH_BYPASS_TOKEN=$(jq -r '.authBypassToken' h2_deploy_log.json)
export DEPLOYMENT_URL=$(jq -r '.url' h2_deploy_log.json)
npm run e2e-test

Refer to a live example in the Hydrogen Demo Store.


Anchor to Step 2: Embed the authentication bypass token in the request headerStep 2: Embed the authentication bypass token in the request header

Your end-to-end testing system must embed the token within the header before navigating to the deployment URL.

oxygen-auth-bypass-token: <auth-bypass-token>

Was this page helpful?