In this video· click a step to jump to it
Test recording
Creda — signed-in app walkthrough
83,632 ms · 1 pixels changed
We built this regression test for creda.ng — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against creda.ng. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const shot = (n, slug) => screenshotPath.replace('.png', `-${n}-${slug}.png`);
const BIZ_LINK = 'a[href^="/businesses/"]:not([href="/businesses/new"])';
const SCROLL_TO = (n) => "(async () => { const ease = t => 1 - Math.pow(1 - t, 3); const target = window.innerHeight * " + n + "; const from = window.scrollY; const anim = (a, b, ms) => new Promise(res => { const t0 = performance.now(); const step = now => { const p = Math.min(1, (now - t0) / ms); window.scrollTo(0, a + (b - a) * ease(p)); p < 1 ? requestAnimationFrame(step) : res(); }; requestAnimationFrame(step); }); await anim(from, target, 1000); await new Promise(r => setTimeout(r, 400)); })()";
// ─── Scenario 1: signed-in account space ──────────────────────────────────
stepLogger.log('Scenario 1: Signed-in account overview');
await page.goto(baseUrl + '/account', { waitUntil: 'domcontentloaded' });
await page.getByText('Your space').first().waitFor({ state: 'visible', timeout: 25000 });
await page.waitForTimeout(1600);
await page.screenshot({ path: shot(1, 'account-overview'), fullPage: true });
Checks run
Notes from the demo run
AI-generatedWe created an account on Creda, verified the email, and drove the signed-in product end to end: your space, your businesses, the saved shortlist, the directory, a keyword search, a business profile, saving it, and drafting a rated review. The seeded directory is the strongest thing here - Chowdeck, Flutterwave, Cowrywise, AltSchool and friends are already profiled 'from public information' with a Claim this business path, so the product is useful on day one instead of waiting for supply.
- The directory is not empty on day oneReal Nigerian businesses are pre-profiled from public information with a Claim this business route. That sidesteps the cold-start problem that kills most review directories, and it gives the claiming business a reason to show up.
- Save to shortlist closes the loop instantlySaving Air Peace from the profile put it in Saved businesses immediately, stamped 'Saved Sep 22, 2026' with a Remove control. No refresh, no stale list - we screenshotted both ends of the loop in the recording.
- The review composer is unusually honest'Post anonymously - hide your name from the public and the business. Creda admins can still see who posted it.' Saying the quiet part out loud is exactly the right call for a trust product, and it is rare.
- 'Best match' looks alphabetical, not relevance-rankedSearching 'booking' returns Air Peace, Calendza, Filmhouse Cinemas, GIG Mobility, Wakanow - strict A-Z. Calendza's own description is 'Create a booking page that respects your real availability', so the best match is ranked second by accident. Weighting name and description hits above alpha order would make the default sort feel intelligent.
- Your businesses lives on a different route namespaceThe account space is /account, /saved and /profile, but the 'Your businesses' item in the same sidebar goes to /dashboard/businesses. One stray /dashboard/* in an otherwise flat namespace is the kind of thing that bites later on auth middleware and analytics grouping.
Visual change
Share this run
Proof your app is not AI slop
This test was built for creda.ng — claim it free
One click copies the test and baseline screenshots into your own Lastest workspace. Re-run on every deploy and catch regressions before your users do — free, no card required.


