_test.md file that produced the run. Each step in the file is written in natural language and ends with a check, so Kane CLI fails the run when what the shopper sees stops matching what the store recorded.
Run these recipes
Save any recipe below as a file ending in_test.md, change the url to your own store, and replace the product names and prices with values from your catalog. Then run it:
kane-cli testrun run --tags ecommerce --parallel 4 --headless. See Test.md and Batch Runs for the full format and flags.
The same files run against a native app on an Android emulator or an iOS simulator when you add
target and app to the frontmatter. See Mobile Testing.Search and product pages
Search and product pages decide whether a shopper reaches the right item at the right price. These recipes check that the result, the product page, and the selection controls all describe the same product.Search to product page
A search that opens the wrong product page still looks like a working search. This recipe searches the storefront, opens the result, and checks that the title, brand, price, and buy box on the product page match the item that was searched for.search-to-product-page_test.md
Search with filters
A size that can be selected but has no stock is a lost order. This recipe searches for running shoes, applies a size filter and a price band, opens the only result, and then checks that size 8 is selectable and actually in stock.search-with-filters_test.md
Add to cart with a variant
On a product with several colours and connection types, each variant can carry its own price. This recipe switches colour and connection, checks that the price and the selection label update together at every step, and then confirms the cart received the exact variant and price.add-to-cart-with-variant_test.md
Size guide and size selection
A size guide is only useful if the size picked from it is the size that ends up in the bag. This recipe opens the size guide, selects a size from the conversion table, confirms a sold-out size is disabled, and checks the bag carries the chosen size.size-guide-and-selection_test.md
Shop search and favorites
Favorites that disappear after a reload make a marketplace feel broken even when no error appears. This recipe searches for a shop, favorites one listing, opens the favorites page, and reloads it to confirm the favorite was saved.shop-search-and-favorite_test.md
Cart and checkout
Checkout is where a wrong number costs money directly. These recipes check totals, payment, and confirmation together, so a page that loads with the wrong amount still fails.Storefront guest checkout
Guest checkout is the shortest path to an order, and every field on it can break the order. This recipe adds a product, fills contact and shipping details as a guest, pays with a test card, and checks the thank-you page for the order number and the total.storefront-guest-checkout_test.md
One-click checkout
One-click checkout depends on a saved address and a saved card being the ones actually charged. This recipe confirms the saved address and card in the buy box, buys with one click, and checks the confirmation for the order number and the card that was charged.one-click-checkout_test.md
Discount code application
A discount code can appear in the order summary while the total stays the same, and nothing on the page looks broken. This recipe tries an invalid code first, then applies a ten percent code and checks both the discount line and the final total.discount-code-application_test.md
Buy It Now checkout
An order confirmation page shows that a purchase started, and the buyer’s purchase history shows that the store recorded it. This recipe buys a listing with a saved card and then follows the order into the purchase history to check the item, price, and card.buy-it-now-checkout_test.md
Checkout extension render
A checkout extension adds custom fields and upsells to the payment page, and a broken extension can block payment entirely. This recipe confirms the extension block renders, fills its custom field, takes the gift-wrap upsell, and then completes payment.checkout-extension-render_test.md
Grocery, pickup, and delivery
Grocery and delivery flows carry preferences, slots, and per-store fees through checkout. These recipes check that each choice the shopper makes survives to the order summary and the confirmation.Multi-store cart
A cart with items from two stores needs two sets of fees and two delivery windows. This recipe adds items from two stores and checks that checkout shows a separate service fee and a separately selectable delivery window for each store.multi-store-cart_test.md
Delivery slot checkout
A priority delivery slot adds a fee, and that fee has to reach the confirmation. This recipe picks a priority slot, adds a tip, pays with a test card, and checks that the confirmation carries the same window, service fee, and priority fee.delivery-slot-checkout_test.md
Store pickup selection
Changing the pickup store or time should change the order summary too. This recipe chooses a nearby store and a free pickup slot, and then checks that the summary shows the same store, the same slot, and a free pickup fee.store-pickup-selection_test.md
Grocery substitution preference
If a substitution setting stops saving, the shopper receives a brand they refused. This recipe sets a same-brand-only preference on one item, places an order, and checks that the preference is still attached to that item after checkout.grocery-substitution_test.md
Membership upsell
Every offer added to checkout raises one review question: what happens when the shopper says no. This recipe triggers the membership offer with an express slot, checks the plan prices, declines the offer, and confirms checkout is still usable.membership-upsell_test.md
Reorder from history
A reorder button is only useful if it brings back the same items in the same quantities. This recipe reorders a past purchase and checks the cart for every item, the quantity of each, and the subtotal.reorder-from-history_test.md
Orders, returns, and loyalty
After the purchase, shoppers come back to track, return, review, and spend rewards. These recipes check that post-purchase pages read from the same order data the checkout wrote.Order tracking
A tracking page that shows the wrong stage sends customers to support. This recipe opens the order list, opens tracking for an in-transit order, and checks the delivery date, the carrier and tracking ID, and the current stage on the timeline.order-tracking_test.md
Return initiation
A return flow has to end with a return authorization and the right refund amount. This recipe opens a delivered order, starts a return with a reason and a pickup method, and checks for a return authorization number and the refund line.return-initiation_test.md
Review submission
A review form needs to reject empty reviews and keep the photo a buyer attaches. This recipe submits an empty review to check validation, then posts a five-star review with a photo and checks that both appear under the listing.review-submission_test.md
Loyalty balance
A rewards balance that renders as an error or a blank looks like lost money to the shopper. This recipe checks that the balance renders as a number and that the coin history and lifetime totals back it up.supercoins-balance_test.md
Members-only launch draw
A product launch draw has to block signed-out visitors and accept signed-in members. This recipe tries to enter while signed out, signs in, tries again without a size, and then enters with a size and checks the entry ID and status.snkrs-draw-entry_test.md
Store admin
Changes in the admin can break the storefront without anyone touching storefront code. These recipes drive the admin side and then check the result where shoppers or staff will see it.Admin draft order creation
Staff create draft orders for phone and email customers, and a draft that never becomes a paid order is a lost sale. This recipe builds a draft order with a customer and a line item, saves it, marks it paid, and checks the orders list.admin-order-creation_test.md
Theme update smoke test
Publishing a new theme can hide a product grid or break the path to checkout. This recipe publishes a different theme from the admin, confirms the storefront picked it up, and walks a product all the way to the payment step.theme-update-smoke_test.md
Next steps
- Payments Testing: cards, wallets, pay later, payment links, refunds, and webhook parity
- Test.md: the file format used by every recipe on this page
- Batch Runs: run a tagged suite with one command and one exit code
- CI/CD & DevOps Testing: gate a deploy on these recipes