Testing
What to check before releasing a storefront change, given there are no automated tests, and how to test bookings without affecting Zoho.
asc-shopify-src has no automated tests, no linting and no type check. The only automated checks are Prettier, run by the pre-commit hook, and the AI review action on theme pull requests. Testing is manual, on a preview theme or a development theme.
The two services have their own suites: asc-api-membership-pass uses Vitest and asc-api-src-zoho-integration uses Jest.
Before opening a pull request
npm run check
npm run buildnpm run check runs Prettier in check mode across the repository. npm run build must finish without errors, and git -C theme status should show the rebuilt files you expect.
To catch type errors that the build does not report:
npx tsc --noEmit -p srcThe code has existing type errors, so compare the output before and after your change rather than expecting none.
Pages to check
Check at desktop and mobile widths, in a private window, on the preview theme.
| Area changed | Check |
|---|---|
| Camp listings, cards, filters | A city page, a sport page, a partner program page, the Get Started map |
| Maps | A city page map, the home page Camps Map, a booking page Camp Location map |
| Booking form | Open from a camp card with Reveal booking form ticked, and from the Book Camp button. Complete two participants. Test as a guest and logged in |
| Cart | A camp and a physical product together. Quantity change, remove, checkout button |
| Membership pass | Logged out, logged in without a pass, logged in with a pass on an ASC camp and on a partner program |
| Header and menus | Desktop hover menus and the mobile menu, which is built differently |
| Theme settings or sections | Every template that uses the section |
Anything in theme.liquid | The same change in theme.product.liquid if it should apply to booking pages |
Open the browser console on each page. The storefront should not log errors from theme or bundle code.
Testing bookings without a real camp
An ASC camp variant with Expose For Testing set to true shows in camp lists while out of season. Its Book Camp button stays disabled, so open the booking form by adding &start_booking to the booking page URL.
Orders and Zoho
There is no staging Zoho organisation. A completed checkout on any theme, including a preview theme, creates a real order. Zapier sends it to Zoho and the customer confirmation email is sent.
Stop at the cart or the checkout page unless the test needs a completed order. If it does, tell the bookings team first, use a 100% discount code, and remove the resulting Zoho records afterwards.
Testing the services locally
asc-api-membership-pass and asc-api-src-zoho-integration both run locally with their own .env files. To point a development theme at a local pass service, change the theme setting Google Cloud API URL on the development theme only. The live theme setting must not change.
Club search is fixed into the bundle at build time. Build with a local ZOHO_INTEGRATION_API_ENDPOINT, test, then rebuild with the production value before committing.