In this video· click a step to jump to it
Test recording
haloon — app walkthrough
54,303 ms · 0 pixels changed · matches baseline
We built this regression test for haloon.ai — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against haloon.ai. 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 COOKIE = "•••";
const LS = {"app_current_user_id": "usr-32eff9cc-3033-4110-8eaf-5fcef796b30e", "app_session_sync": "1783948293658", "global-storage-1.0.57": "{\"state\":{\"users\":{\"list\":{\"data\":[{\"id\":\"usr-32eff9cc-3033-4110-8eaf-5fcef796b30e\",\"created_at\":\"2026-07-13T13:03:53.49015Z\",\"updated_at\":\"2026-07-13T13:11:05.043987Z\",\"org_id\":\"org-6258886b-61e7-4c9e-93d7-98cffcfd6549\",\"email\":\"[email protected]\",\"email_confirmed\":true,\"first_name\":\"Viktor\",\"last_name\":\"Lastest\",\"avatar_url\":\"https://lh3.googleusercontent.com/a/ACg8ocLlvZLLng298VQmnJiCgH6VdTOzKsCUMDwbU911P_wDVmTuGxQ=s96-c\",\"birthday\":\"1990-06-15\",\"security\":{\"two_factor_enabled\":false},\"settings\":{\"language\":\"en\",\"theme\":\"system\",\"timezone\":\"Europe/Budapest\"},\"notification\":{\"allow_account_mail\":true,\"allow_marketing_mail\":true,\"push\":false}}],\"total_size\":0},\"current_user\":{\"id\":\"usr-32eff9cc-3033-4110-8eaf-5fcef796b30e\",\"created_at\":\"2026-07-13T13:03:53.49015Z\",\"updated_at\":\"2026-07-13T13:11:05.043987Z\",\"org_id\":\"org-6258886b-61e7-4c9e-93d7-98cffcfd6549\",\"email\":\"[email protected]\",\"email_confirmed\":true,\"first_name\":\"Viktor\",\"last_name\":\"Lastest\",\"avatar_url\":\"https://lh3.googleusercontent.com/a/ACg8ocLlvZLLng298VQmnJiCgH6VdTOzKsCUMDwbU911P_wDVmTuGxQ=s96-c\",\"birthday\":\"1990-06-15\",\"security\":{\"two_factor_enabled\":false},\"settings\":{\"language\":\"en\",\"theme\":\"system\",\"timezone\":\"Europe/Budapest\"},\"notification\":{\"allow_account_mail\":true,\"allow_marketing_mail\":true,\"push\":false},\"permissions\":[\"MANAGE_ORGANIZATION\",\"MANAGE_FORM\",\"MANAGE_USERS\",\"MANAGE_FORM_ANSWER\",\"MANAGE_THREAD\",\"ACCESS_FILES\"]}},\"files\":{\"list\":{\"data\":[],\"total_size\":0}},\"organization\":null,\"errors\":{\"data\":{}},\"forms\":{\"list\":{\"data\":[],\"total_size\":0},\"history_list\":{\"data\":[],\"total_size\":0}},\"llm\":{\"threads\":{\"thd-19765b1c-8800-40c9-8492-635dd52246a1\":{\"id\":\"thd-19765b1c-8800-40c9-8492-635dd52246a1\",\"created_at\":\"2026-07-13T13:12:10.968952Z\",\"updated_at\":\"2026-07-13T13:12:10.968953Z\",\"org_id\":\"org-6258886b-61e7-4c9e-93d7-98cffcfd6549\",\"user_id\":\"usr-32eff9cc-3033-4110-8eaf-5fcef796b30e\",\"status\":\"REGULAR\",\"external_id\":\"__LOCALID_E1yOwCm\",\"model_name\":\"gpt-fast\",\"forked_messages_ids\":[],\"project_id\":\"prj-f8b9a5f9-9198-42af-88c2-691cf4a094bb\"}},\"metadata\":{\"model_name\":\"gpt-fast\",\"current_thread_id\":\"thd-19765b1c-8800-40c9-8492-635dd52246a1\"},\"media_config\":{\"video\":{},\"audio\":{},\"image\":{}}},\"projects\":{\"list\":{\"total_size\":1,\"data\":[{\"id\":\"prj-f8b9a5f9-9198-42af-88c2-691cf4a094bb\",\"created_at\":\"2026-07-13T13:03:53.542785Z\",\"updated_at\":\"2026-07-13T13:03:53.542786Z\",\"org_id\":\"org-6258886b-61e7-4c9e-93d7-98cffcfd6549\",\"owner_id\":\"usr-32eff9cc-3033-4110-8eaf-5fcef796b30e\",\"name\":\"Chat\",\"is_default\":true,\"icon\":\"AppLogo\",\"file_ids\":[]}]}}},\"version\":100057}", "i18nextLng": "en", "app_version": "1.0.57", "app-theme": "supernova", "haloon-ui-theme": "system"};
await page.context().setExtraHTTPHeaders({ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36' });
for (const pattern of ['**/cdn-cgi/scripts/**/email-decode.min.js', '**/sentry-cdn.com/**', '**/browser.sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/*.posthog.com/**']) {
await page.route(pattern, function (r) { r.abort(); }).catch(function () {});
}
await page.context().addCookies([{ name: 'haloon', value: COOKIE, url: 'https://haloon.ai', httpOnly: true, secure: true, sameSite: 'Lax' }]);
await page.addInitScript(function (ls) { try { for (const k in ls) localStorage.setItem(k, ls[k]); } catch (e) {} }, LS);Checks run
Notes from the demo run
AI-generatedWe drove Haloon signed in as a new user through onboarding and into the chat workspace. The pitch (all AI models, one subscription) lands: the chat sends a prompt and returns a real model answer complete with a Reasoning trace, and the left rail keeps New Chat, Media library, Projects and search one click away. It feels like a polished multi-model client, not a thin wrapper.
- Reasoning shown inlineResponses include an expandable Reasoning section above the answer, which builds trust that the model actually worked the problem rather than guessing.
- Projects + media in one shellBeyond chat, the workspace bundles a Media library and Projects, so the product is a workspace to return to rather than a single chat box.
- 3-step profile wall before first chatNew users must complete language, name and date-of-birth steps before they can send a single message; letting people try one prompt first would show value before asking for details.
- Onboarding dropdown is easy to stall onThe language step Continue only enables after the custom dropdown registers a real selection - a subtle spot where a hurried user can feel stuck.
Share this run
Proof your app is not AI slop
This test was built for haloon.ai — 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.