In this video· click a step to jump to it
Test recording
ai2human — app walkthrough
45,239 ms · 0 pixels changed · matches baseline
We built this regression test for ai2human.app — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against ai2human.app. 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, 1400); await new Promise(r => setTimeout(r, 350)); await anim(max, 0, 800); })()";
// Inject captured Supabase session (localStorage) before any page script runs
const LS = {"humanizer_session": "da981788-6a88-42d2-abf0-d96a60eeafb0", "sb-pojuagdortmhylhqtjov-auth-token": "•••", "sb-pojuagdortmhylhqtjov-auth-token_created_at": "1783904908931"};
await page.addInitScript((ls) => { try { for (const k in ls) { window.localStorage.setItem(k, ls[k]); } } catch (e) {} }, LS);
await page.context().addCookies([
{ name: 'anon_session', value: 'da981788-6a88-42d2-abf0-d96a60eeafb0', url: 'https://ai2human.app', httpOnly: true },
{ name: 'g_state', value: '{"i_l":0,"i_ll":1783904888059,"i_b":"AKaLCMc3Q+QjlTPnfHKPoTGcCDodUsEldKk9YVR23rM","i_e":{"enable_itp_optimization":24},"i_et":1783904888059}', url: 'https://ai2human.app' }
]).catch(function () {});
for (const pattern of ['**/cdn-cgi/scripts/**/email-decode.min.js', '**/browser.sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**']) {Checks run
Notes from the demo run
AI-generatedWe signed into Ai2Human with Google and walked the authenticated dashboard end-to-end. It greets you by name ("Welcome back, lastestcloud"), surfaces a clean usage meter (0/1,000 words humanized, 0/5 AI scans on Free), and gives one-click access to five tools — Humanizer, AI Detector, Grammar Checker, Citation Generator, Translator — each on its own focused screen.
- Usage meter front-and-centerThe dashboard shows Words Humanized, Words Remaining and AI Scans as three tiles up top, so a free user always knows exactly how much runway they have before upgrading.
- Humanizer UX is well-consideredThe Humanizer screen exposes Intensity (Light/Medium/Heavy), a Mode selector and a 2,000-char counter before you type — the controls a power user wants are visible without hunting.
- Announcement bar reappears on every tool screenThe "2.0 supports 50+ languages" banner re-renders at the top of the dashboard and each tool view; persisting the dismissal would keep the workspace calmer.
- Humanizer input is a contenteditable, not a textareaThe paste area is a styled div rather than a real textarea, which trips programmatic fills and some paste-managers; a plain textarea (or an explicit paste target) would be friendlier to automation and clipboard tools.
Share this run
Proof your app is not AI slop
This test was built for ai2human.app — 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.