Recording of the visual regression run on stockmarketscan.com · StockMarketScan — app walkthrough.

In this video· click a step to jump to it

S
Passed

Test recording

StockMarketScan — app walkthrough

56,541 ms · 6,005 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against stockmarketscan.com. Claim it into your own workspace and re-run it on every deploy — free.

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  const O = 'https://stockmarketscan.com';
  let idx = 1;
  function shot(s) { return screenshotPath.replace('.png', '-' + idx + '-' + String(s).replace(/[^a-z0-9]+/gi, '-').toLowerCase().slice(0, 24) + '.png'); }
  async function cap(s) { stepLogger.log('Scenario ' + idx + ': ' + s); await page.screenshot({ path: shot(s), fullPage: true }); idx++; }
  async function settle(ms) { await page.waitForLoadState('networkidle', { timeout: 7000 }).catch(function(){}); await page.waitForTimeout(ms || 1500); }
  async function dismiss() { await page.getByRole('button', { name: /^decline$|^accept$/i }).first().click({ timeout: 1500 }).catch(function(){}); }
  async function clickRow(n, label) { const row = page.locator('tbody tr').nth(n); if (await row.isVisible().catch(function(){return false;})) { await row.click({ timeout: 3000 }).catch(function(){}); await page.waitForTimeout(2000); await cap(label); } }
  // 1. public home
  await page.goto(O + '/', { waitUntil: 'domcontentloaded' }).catch(function(){}); await settle(1500); await dismiss(); await cap('home');
  // 2. screeners grid (authed)
  await page.goto(O + '/stock-screeners', { waitUntil: 'domcontentloaded' }).catch(function(){}); await settle(1800); await dismiss(); await cap('screeners-grid');
+21 more lines claim the test to get the full code.

Checks run

Run
Visual
1.06%
Text
DOM
Network
+276 −312
Console
A11y
Review
Perf
432 over
URL
Variables
Full report
Log in →
6,005
Diff px
57s
Duration
Review
Accessible
WCAG 2.2
C
Fast
Web Vitals · 70

Notes from the demo run

AI-generated

StockMarketScan is a clean, dark-themed stock screening platform that surfaces curated named setups (Momentum, Technical, Fundamental, Dividend) rather than raw data tables. The free tier provides 3 screeners plus a Watchlist and email alert. Post-login navigation is smooth: the Screeners page serves as the central hub, each screener loads a pre-filtered results grid, and the Alerts page provides a simple subscription UI. The dashboard doubles as the pricing/upgrade page.

Highlights
  • Curated screener grid
    24 named setups organised by category (Technical, Fundamental, Momentum, Dividend) with filter buttons that instantly re-sort the grid - very low friction for discovery.
  • Individual screener results
    Each screener (Strong Volume Gains, Top Tech Stocks, Income & Growth) renders a live table of matching tickers with price, volume, and % change columns.
  • Category filters
    One-click filter buttons (Technical 10, Fundamental 4, Momentum 6, Dividend 2) with live counts let users drill into their preferred style without a page reload.
  • Stock Alerts page
    Dedicated /screener-alerts route lets free users set up 1 email alert per screener trigger - clear upgrade prompts for more.
  • Watchlist integration
    My Watchlist panel slides in as an overlay from the nav bar, showing saved symbols and letting users track up to 10 tickers on the free plan.
  • Pricing transparency
    Dashboard/pricing page shows $0 / $14.99 / $29.99 tiers side-by-side with clear feature differentiation - no hidden fees messaging.
  • API & MCP access
    /docs page shows a clean REST API reference (GET /api/v1/screeners, GET /api/v1/patterns/:symbol) available from Basic plan, plus an MCP server for Claude/Cursor integration - strong developer appeal.
Friction points
Couldn't reach
  • ·
  • ·
  • ·
  • ·

4 visual changes

Step 12,678 px changed
Before
Before
After
After
Diff
Diff
Step 215 px changed
Before
Before
After
After
Diff
Diff
Step 10301 px changed
Before
Before
After
After
Diff
Diff
Step 123,011 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
tests
all passing
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
56,423 test runs recorded · 962 products tested with Lastest

This test was built for stockmarketscan.com — 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.