In this video· click a step to jump to it
Test recording
Razo.tv — app walkthrough
55,066 ms · 0 pixels changed · matches baseline
We built this regression test for razo.tv — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against razo.tv. 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 SCROLL_THROUGH = "(async () => { const ease = t => 1 - Math.pow(1 - t, 3); const max = Math.max(0, document.body.scrollHeight - window.innerHeight); if (max < 40) return; 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(0, max, 1200); await new Promise(r => setTimeout(r, 300)); await anim(max, 0, 700); })()";
const ctx = page.context();
page.setDefaultTimeout(12000);
await ctx.setExtraHTTPHeaders({ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36" });
for (const pattern of ['**/cdn-cgi/scripts/**', '**/*sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/*.doubleclick.net/**', '**/googletagmanager.com/**']) {
await page.route(pattern, function (r) { r.abort().catch(function () {}); }).catch(function () {});
}
Checks run
Notes from the demo run
AI-generatedWe drove razo.tv end to end on a brand-new creator account: signed up, confirmed the email, then walked the creator studio and set a stream up for real. Your dashboard is unusually complete for a launch-week product — Stream, Chat, Clips, Events, Analytics, Payouts, Wallet and Settings all exist and render before a creator has ever gone live, and saving stream details plus generating an OBS key both worked first time.
- The creator studio is ready on day oneNine sub-sections render on a zero-history account. Setting a title, picking Creative, saving, and generating a stream key all worked in one pass — that is the whole go-live path, and it already works.
- Email gating is honest/wallet and /plus refuse to sell anything until the address is confirmed, with a clear 'Confirm your email' panel rather than a silent failure at checkout.
- The board looks alive before you invite anyoneCategories carry live viewer counts on first load, so a new visitor never lands on an empty product.
- The header search box is permanently disabledThe Search input renders full width at the top of every signed-in page but carries disabled + aria-disabled, so clicking it does nothing. Either wire it up or hide it until it works — a dead control in the most prominent slot reads as broken.
- /settings 404s while /settings/profile rendersThe bare /settings path returns your 404 page. A one-line redirect from /settings to /settings/profile removes a dead end people will reach by guessing.
Share this run
Proof your app is not AI slop
This test was built for razo.tv — 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.