In this video· click a step to jump to it
Test recording
CredHill — app walkthrough
68,908 ms · 0 pixels changed · matches baseline
We built this regression test for credhill.in — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against credhill.in. 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');
await page.goto(baseUrl + '/dashboard', { waitUntil: 'domcontentloaded' });
await page.getByRole('link', { name: /Item Master/i }).first().waitFor({ state: 'visible', timeout: 25000 });
await page.waitForTimeout(2500);
await page.screenshot({ path: shot(1, 'dashboard'), fullPage: true });
await page.goto(baseUrl + '/clients', { waitUntil: 'domcontentloaded' });
await page.getByText('Northline Retail Pvt Ltd').first().waitFor({ state: 'visible', timeout: 20000 });
await page.waitForTimeout(1200);
await page.screenshot({ path: shot(2, 'clients'), fullPage: true });
await page.goto(baseUrl + '/item_master', { waitUntil: 'domcontentloaded' });
await page.getByText('Annual QA automation licence').first().waitFor({ state: 'visible', timeout: 20000 });Checks run
Notes from the demo run
AI-generatedWe used CredHill as a new Indian business would: signed in with Google, filled the company profile, added a client and an item, then built a real GST invoice for 3 licences at Rs 48,000 and previewed it. The invoice builder is the best part. It picked CGST plus SGST automatically from the two GSTINs, split 12,960 each and spelled the total out in words without being asked. The flagship feature on your landing page is the one thing that did not run for us.
- Tax type decided from the GSTINsBoth parties are 27 (Maharashtra), so it chose CGST + SGST (intra-state) and labelled it auto from GSTIN. That is the exact decision people get wrong by hand.
- Total in words, unpromptedONE LAKH SIXTY NINE THOUSAND NINE HUNDRED TWENTY RUPEES ONLY printed itself on the preview. Small thing, and it is what makes the document look filed rather than generated.
- Client and item are entered onceAfter one client and one item the whole invoice was two dropdowns, a quantity and a rate. The second invoice is genuinely seconds.
- AI Autofill returns 503Draft it with AI on /create_invoice posts to /api/parse-invoice and gets a 503, with no message on screen. The prompt just sits there and nothing fills in. It is the headline on your landing page and in the sidebar, so a visitor trying it first will conclude the product is broken. Even a 'the drafter is busy, fill it in manually' toast would save that visit.
- The profile form looks editable but is not/profile renders the company fields as inputs that are disabled until you press Edit. We tried to type into Your Company Name and nothing happened, with no hint that Edit was the unlock.
Share this run
Proof your app is not AI slop
This test was built for credhill.in — 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.