EvokeQA
All builds
Evoke

1.0.5 (76)

iOS TestFlight · API dev-api.evoke.black · channel preview · commit 83ccee3

Test cases

56

Testers

1

Passed

29

Failed

23

Bugs & ideas

3

Install Evoke 1.0.5 (76) from TestFlight. Work through each checklist, mark Pass or Fail, and describe every Fail. Then spend real time on Try to break it. Dev payments go through live Lenco: a K1 test costs a real K1.

Before you start
  • Payments are real. Use free, RSVP or K1 tiers only, never buy more than 1–2 tickets per test, ask Emmanuel before any payment above K5, and note every paid order number (refunds are manual).
  • Test data on dev: host Evoke QA Events (17 test events): k1-test-night (free, K1, K2 tiers, hidden K1 Crew tier, 3 add-ons), k1-online-workshop (virtual, K1), k1-charity-dinner (charity), k1-test-fundraiser (donations and goal), rsvp-test-meetup (free RSVP, capacity limit), plus ticketed, RSVP, fundraiser, charity, virtual, running-now, sold-out and hidden-tier events.
  • Accounts: test attendee qa.attendee@evoke.test (tickets in every state, plus two RSVPs). Ask Emmanuel for the password. Also test as a guest (not signed in) and with your own new account.
  • Devices: at least one small iPhone (SE / mini) and one large.
What's new
  • Event links & sharing (EVOKE-323 · 324), #86, #89: Every old and new link shape opens the right event. Shares and RSVP/waitlist emails use the short evoke.black/e/<slug> link; look-alike domains and junk links are refused.
  • Explore map (EVOKE-51 · 100), #87, #89: 3D map; pins and grouped pins open on tap. The sheet shows date, venue, price, host and View event. Real category chips; Discover categories open the map filtered.
  • Checkout & payments (EVOKE-167 · 168 · 169), #84, #89: Guest saved-contact bug fixed. Your saved default payment method is picked once it loads. Success sheet stays at the bottom. Cleaner Select Ticket header, padding and quantity box.
  • Event & ticket polish (EVOKE-175 · 176 · 177 · 179), #84, #85: Heart, spacing and chevron fixes; map pin icon; Apple Wallet pass shows the date top-right and the event cover; the Cancelled pill fits.
  • Expired sessions (EVOKE-244), #83, #89: If your session expires or the account is suspended you get a clear notice, not a silent switch to guest. Sign up with an email that already exists goes to sign-in. Guests' errors no longer wipe onboarding.
  • Host profiles (EVOKE-52), #82, #89, #90: New Map button on host profiles, with same-venue events grouped. Hosts without a logo show a dim colour and their initial everywhere, Home included.
  • Link previews (EVOKE-45), #88: Sharing an event on WhatsApp shows a proper card image (800×420, well under WhatsApp's ~300 KB limit). It used to fall back to the favicon.
  • Heatmap switched off (EVOKE-305), #81: Heatmap, “I'm here” and vibe are behind a feature flag and hidden in this build. No “Always” location wording.
  • Updates over the air, #85, #89: Fixes can now reach this build without a new TestFlight upload. The app applies an update after 15 minutes in the background, but never while a payment is pending.
  • Wallet pass images, #89: Apple Wallet pass strips are made one at a time, without duplicates, and a failure is retried later, so adding several passes quickly works.
  • Blocked users & version, #80: Profile › Blocked users opens again. App version is 1.0.5.
  • Build & release, #91: One-command TestFlight builds and uploads. Nothing for you to test, but it's why builds can arrive faster now.
Reporting
  • Log every Fail in Linear (team Evoke): what broke and where, build, iPhone model and iOS, numbered steps with the test code, expected vs actual, a screenshot or recording, and order numbers for anything with money.
  • Urgent: money moved wrongly, crash on launch, someone else's data. High: a main flow can't be finished. Medium: wrong info, stuck loading. Low: visual glitches.

A · Checkout & payments

EVOKE-167 · 168 · 169 · Live Lenco

  1. A1

    Do:Open k1-test-night › Get tickets. Look at the Select Ticket screen.

    Expect:Header, padding and quantity box look right; free, K1 and K2 tiers show; K1 Crew does not.

  2. A2

    Do:As a guest, get a free ticket with name, email and phone.

    Expect:Order completes; success sheet sits at the bottom; ticket email arrives.

  3. A3

    Do:As a guest, start a second order. Check the contact fields.

    Expect:Your saved contact is filled in correctly and can be edited.

  4. A4

    Do:Signed in with a saved payment method, open checkout.

    Expect:Your default method is selected once it loads, not a different one.

  5. A5

    Do:Buy one K1 ticket with mobile money. Approve the prompt.

    Expect:Prompt shows K1 (plus the provider's fee); ticket appears in Tickets.

  6. A6

    Do:Add an add-on at checkout on k1-test-night.

    Expect:Add-on shows in the total and on the order.

  7. A7

    Do:Make a K1 donation on k1-test-fundraiser, typing “1”.

    Expect:One prompt only; no false “failed”; the goal moves.

B · Sign-in & expired sessions

EVOKE-244

  1. B1

    Do:Sign up with qa.attendee@evoke.test (an existing email).

    Expect:App sends you to sign in, not to a dead end.

  2. B2

    Do:Sign up a new account; on the code screen go back and sign in instead.

    Expect:No half-finished sign-up is left behind; sign-in works.

  3. B3

    Do:Ask Emmanuel to end your session on the server, then use the app.

    Expect:A clear “signed out” notice; you're not silently made a guest.

  4. B4

    Do:As a guest, browse, then open a screen that needs sign-in.

    Expect:You're asked to sign in; onboarding answers are kept.

  5. B5

    Do:Sign out, then sign back in.

    Expect:Tickets and saved events come back; no other person's data shows.

  6. B6

    Do:Kill the app while signed in, reopen with no internet.

    Expect:Tickets and QR codes still open offline.

C · Event links & sharing

EVOKE-323 · 324

  1. C1

    Do:On any event tap Share and copy the link.

    Expect:Link is evoke.black/e/<slug>?invited=true.

  2. C2

    Do:Paste that link in Notes/WhatsApp and tap it (app installed).

    Expect:App opens on the right event, with the invited banner.

  3. C3

    Do:Open an old-style link evoke.black/events/<slug>/<id>.

    Expect:Same event opens.

  4. C4

    Do:Open a hidden-tier link for K1 Crew (ask Emmanuel for it).

    Expect:Event opens with K1 Crew preselected and buyable.

  5. C5

    Do:RSVP to rsvp-test-meetup; open the link in the email.

    Expect:Email link is /e/<slug> and opens the meetup.

  6. C6

    Do:Share from a ticket (Tickets › ticket › Share).

    Expect:Same short slug link.

  7. C7

    Do:Share an event to WhatsApp and wait for the preview.

    Expect:Card with the event image and title, not the Evoke favicon.

D · Explore map & categories

EVOKE-51 · 100

  1. D1

    Do:Open Explore › map. Tilt with two fingers.

    Expect:Map is 3D; buildings and pins look right; nothing jumps.

  2. D2

    Do:Tap a single pin.

    Expect:Sheet opens with date, venue, price, host and View event.

  3. D3

    Do:Tap a grouped pin (several events at one place).

    Expect:A list of those events opens; each opens the right event.

  4. D4

    Do:Tap View event from the sheet.

    Expect:Event page opens; Back returns to the map in the same place.

  5. D5

    Do:Tap category chips at the top.

    Expect:Real categories (not venue names); pins filter to match.

  6. D6

    Do:From Discover tap a category tile.

    Expect:Map opens already filtered to that category.

  7. D7

    Do:Switch categories fast, then back to All.

    Expect:Map reframes each time; no blank map or stale pins.

E · Hosts, tickets & Wallet

EVOKE-52 · 175 · 176 · 177 · 179

  1. E1

    Do:Open Evoke QA Events' profile › Map.

    Expect:Upcoming events on a map; same-venue events grouped into a list.

  2. E2

    Do:Find a host without a logo (Home rails, event page, search).

    Expect:Dim colour circle with their initial, never a broken image.

  3. E3

    Do:On an event, tap the heart twice, then check Saved.

    Expect:Heart state and Saved list agree.

  4. E4

    Do:Open a cancelled ticket in Tickets › Past and cancelled.

    Expect:Cancelled pill fits on one line; ticket still opens.

  5. E5

    Do:Add a ticket to Apple Wallet.

    Expect:Pass shows the event cover strip and the date top-right.

  6. E6

    Do:Add two or three passes quickly, one after another.

    Expect:Every pass adds, each with its own image.

  7. E7

    Do:Profile › Blocked users.

    Expect:Screen opens; list or empty state shows.

F · Feature flags, version & updates

EVOKE-305 · OTA

  1. F1

    Do:Look for the heatmap, “I'm here” and vibe.

    Expect:None of them appear anywhere in this build.

  2. F2

    Do:Check location permission wording when asked.

    Expect:“While using the app” only; no “Always”.

  3. F3

    Do:Profile/settings: check the version.

    Expect:Shows 1.0.5.

  4. F4

    Do:When Emmanuel announces an update: leave the app in the background 15+ minutes, then open it.

    Expect:App reloads once onto the new version; you stay signed in.

  5. F5

    Do:Start a mobile-money payment, background the app 15+ minutes while it's pending, return.

    Expect:No reload mid-payment; the order finishes or can be retried.

  6. F6

    Do:Turn on airplane mode and cold-start the app.

    Expect:Opens with cached data and an offline state, no crash or endless shimmer.

X · Try to break it: be unkind to the app

Edge cases

  1. X1

    Do:Turn on airplane mode after tapping Pay, before approving.

    Expect:Clear error; no duplicate order; retry works once back online.

  2. X2

    Do:Double- or triple-tap Pay, Get ticket, RSVP.

    Expect:Only one order, one prompt, one RSVP.

  3. X3

    Do:Force-quit the app while the mobile-money prompt is open; approve it; reopen.

    Expect:Ticket shows up (may take a minute); you're not charged twice.

  4. X4

    Do:Decline or ignore the prompt until it times out.

    Expect:Order fails cleanly; you can try again; no ticket appears.

  5. X5

    Do:Change quantity to 0, 99, or paste letters in the quantity / donation box.

    Expect:Blocked or capped; nothing odd reaches checkout.

  6. X6

    Do:Try to buy a sold-out event and a cancelled event.

    Expect:Clear “sold out” / “cancelled”; no way to pay.

  7. X7

    Do:Open a hidden-tier link with a wrong or missing accessKey.

    Expect:Tier stays hidden; event still opens normally.

  8. X8

    Do:RSVP to rsvp-test-meetup twice, from two devices on one account.

    Expect:Second one says you're already registered.

Y · Try to break it: bad networks, bad timing

Edge cases

  1. Y1

    Do:Open look-alike links: evoke.black.evil.example/e/x, evil.example/e/x.

    Expect:Never open inside the app as an event.

  2. Y2

    Do:Open evoke.black/e/../../x and evoke.black/e/a%2F..%2Fb.

    Expect:“Event not found” with Back. No crash.

  3. Y3

    Do:Open a link to a deleted or made-up slug.

    Expect:“Event not found” with Back, not an endless loader.

  4. Y4

    Do:Get signed out while on checkout (ask Emmanuel to end the session).

    Expect:Clear notice, back to sign-in; return-to brings you back.

  5. Y5

    Do:Switch between guest and signed-in mid-flow (start as guest, sign in at checkout).

    Expect:Cart and tier choice are kept; no duplicate account.

  6. Y6

    Do:Tap a push notification with the app fully closed.

    Expect:Opens on the right screen, not just Home.

  7. Y7

    Do:Rotate, use the largest text size, and Dark Mode.

    Expect:Nothing cut off or overlapping on a small iPhone.

  8. Y8

    Do:Bad network: Settings › Developer › Network Link “Very Bad Network”; use every tab.

    Expect:Loaders end in content or Try again, never a blank screen.