In this video· click a step to jump to it
R
Passed ✓
Test recording
Rainfrog — app walkthrough (authenticated)
38,295 ms · 3,229,763 pixels changed
We built this regression test for rainfrog.ai — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against rainfrog.ai. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
// Auth pre-loaded via setupOverrides.extraSteps storage_state (Rainfrog authed session).
// The app surface is on subdomain app.rainfrog.ai; baseUrl is the marketing rainfrog.ai
const APP_URL = 'https://app.rainfrog.ai';
const shot = (n, slug) => screenshotPath.replace('.png', `-${n}-${slug}.png`);
const settle = () => page.waitForLoadState('networkidle').catch(() => {});
const dismissModals = async () => {
const b = page.getByRole('button', { name: /accept|allow|got it|ok$|close|dismiss|skip|maybe later|not now/i }).first();
if (await b.isVisible({ timeout: 1000 }).catch(() => false)) await b.click({ timeout: 1500 }).catch(() => {});
};
// Public marketingChecks run
Run
✓
Visual
100.00%
Text
—
DOM
✓
Network
+230 −505
Console
✓
A11y
—
Perf
65 over
URL
30 diverged
Variables
—
Full report
Log in →
3,229,763
Diff px
38s
Duration
—
Accessible
C
Fast
Web Vitals · 70
“3,229,763 pixels changed. Review before ship.”
Built with Lastest — open-source visual regression testing.
4 visual changes
Share this run
Earned · Lastest awards
Proof your app is not AI slop
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,604 test runs recorded · 1,174 products tested with Lastest
This test was built for rainfrog.ai — 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.











