${isLogin ? 'Sign in to your account' : (redirect ? 'Create an account to continue your selected task or application.' : 'Request QA, browse services, or offer your skills — free to join.')}
diff --git a/frontend/tests/browser-regression.spec.js b/frontend/tests/browser-regression.spec.js
index 0353ec3..fc0be78 100644
--- a/frontend/tests/browser-regression.spec.js
+++ b/frontend/tests/browser-regression.spec.js
@@ -278,6 +278,27 @@ test.describe('GoHireHumans public/browser regression suite', () => {
expect(result.afterClear).toBeNull();
});
+ test('saved job draft context survives switching between login and registration', async ({ page }) => {
+ await setupDeterministicLocalPage(page);
+ const redirect = 'post-job?draft_title=Check+ten+AI+claims&draft_description=Return+a+sourced+issue+table';
+ await page.goto(`/#/login?redirect=${encodeURIComponent(redirect)}`, { waitUntil: 'domcontentloaded' });
+
+ await expect(page.locator('.auth2-title')).toHaveText('Your job draft is saved');
+ await expect(page.locator('.auth2-sub')).toHaveText('Sign in or create a free account to review it. Nothing has been posted or charged.');
+
+ await page.locator('.auth2-toggle a').click();
+ await expect(page).toHaveURL(new RegExp(`#\\/register\\?redirect=${encodeURIComponent(redirect).replace(/[.*+?^${}()|[\\]\\]/g, '\\$&')}$`));
+ await expect(page.locator('.auth2-title')).toHaveText('Your job draft is saved');
+ await expect(page.locator('.auth2-sub')).toHaveText('Sign in or create a free account to review it. Nothing has been posted or charged.');
+
+ await page.locator('.auth2-toggle a').click();
+ await expect(page).toHaveURL(new RegExp(`#\\/login\\?redirect=${encodeURIComponent(redirect).replace(/[.*+?^${}()|[\\]\\]/g, '\\$&')}$`));
+
+ await page.goto('/#/login?redirect=post-job', { waitUntil: 'domcontentloaded' });
+ await expect(page.locator('.auth2-title')).toHaveText('Your job draft is saved');
+ await expect(page.locator('.auth2-sub')).toHaveText('Sign in or create a free account to review it. Nothing has been posted or charged.');
+ });
+
test('job posting failure stays visible and retryable', async ({ page }) => {
await setupDeterministicLocalPage(page);
await page.goto('/', { waitUntil: 'domcontentloaded' });