Recording of the visual regression run on openhouserentals.org · Open House Rentals — signed-in renter walkthrough.

In this video· click a step to jump to it

O
Passed

Test recording

Open House Rentals — signed-in renter walkthrough

88,362 ms · 62,507 pixels changed

We built this regression test for openhouserentals.org — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against openhouserentals.org. 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_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, 1100); await new Promise(r => setTimeout(r, 450)); })()";

  // ─── Scenario 1: signed-in experience chooser ─────────────────────────────
  stepLogger.log('Scenario 1: Signed-in welcome — two connected experiences');
  await page.goto(baseUrl + '/welcome', { waitUntil: 'domcontentloaded' });
  await page.getByText('Enter Open House Rentals').first().waitFor({ state: 'visible', timeout: 25000 });
  await page.waitForTimeout(1800);
  await page.screenshot({ path: shot(1, 'signed-in-welcome'), fullPage: true });

  // ─── Scenario 2: the rental search surface ────────────────────────────────
+86 more lines claim the test to get the full code.

Checks run

Run
Visual
19.18%
Text
DOM
Network
+1243 −1243
Console
A11y
A
Perf
198 over
URL
11 diverged
Variables
Full report
Log in →
62,507
Diff px
1m 28s
Duration
A
Accessible
WCAG 2.2 · 93
B
Fast
Web Vitals · 85

Notes from the demo run

AI-generated

We signed into Open House Rentals with Google and drove the renter journey end to end: the two-experience welcome, Find Rentals, a location search, a listing, the Genesis renter-confidence panel, saving to Favourites, the saved-homes list, the Genesis leasing concierge (including a real grounded question), open houses and vacancy alerts. The thing that stands out is how much of the fair-housing discipline is written into the UI rather than buried in a policy page.

Highlights
  • Genesis actually stays grounded
    We asked for the cheapest verified rental with pets. It answered only from OHR inventory, listed both verified options with prices in a Decision context panel, and said it would flag anything OHR cannot verify instead of filling in the blanks. Most AI concierges in this category will happily invent a pet policy.
  • Fair-housing guardrails are in the interface
    'Genesis does not make screening decisions, infer protected characteristics, or invent missing housing facts' sits directly under the composer, and the language picker says 'Your language choice is personalization, not a housing-screening signal.' That is the right place for it.
  • The confidence score rates the listing, not the renter
    68/100 NEEDS CLARITY with an explicit 'this is not an applicant score, eligibility decision or prediction about you'. Scoring decision-clarity instead of people is a genuinely good product decision in this space.
Friction points
  • Favourites has three names and one of them 404s
    The header links to /my-rentals, the saved-homes page lives at /saved-listings, and /favorites - the URL a visitor is most likely to guess - returns your 404 page. One canonical route with redirects from the other two is a small change that removes a dead end.
  • The header on /find-rentals says 'Sign In' while you are signed in
    Reproducible on the same session: /find-rentals renders 'Switch Experience · OHR Lens · Sign In', while /listing/... renders 'Favorites · Vacancy alerts'. Two header variants disagree about auth state, and the search page - your highest-traffic page - is the one that looks logged out.
Couldn't reach
  • /favorites·404 - real route is /saved-listings

2 visual changes

Step 962,496 px changed
Before
Before
After
After
Diff
Diff
Step 1111 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
56,880 test runs recorded · 1,047 products tested with Lastest

This test was built for openhouserentals.org — 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.