/** * i18n PR11 — combobox surfaces. * * Proves the new country / timezone / phone / subdivision combobox triggers * actually render in the create sheets we wired in PR6–8. Doesn't exercise * the full data round-trip (covered by integration tests + form-spec * coverage); this spec just guards the wiring against regression. */ import { test, expect } from '@playwright/test'; import { login, navigateTo, waitForSheet } from './helpers'; test.describe('i18n combobox wiring', () => { test.beforeEach(async ({ page }) => { await login(page, 'super_admin'); }); test('new residential client form exposes phone, country, timezone, subdivision pickers', async ({ page, }) => { await navigateTo(page, '/residential/clients'); await page.locator('main').getByRole('button', { name: /^new$/i }).first().click(); await waitForSheet(page); const sheet = page.locator('[role="dialog"]'); // PhoneInput renders a flag dropdown + national-format input. await expect(sheet.locator('[data-testid="rc-phone-country"]')).toBeVisible(); // Country / timezone combobox triggers. await expect(sheet.locator('[data-testid="rc-nationality"]')).toBeVisible(); await expect(sheet.locator('[data-testid="rc-timezone"]')).toBeVisible(); // Country of residence + subdivision (subdivision is disabled until country picked). await expect(sheet.locator('[data-testid="rc-residence-country"]')).toBeVisible(); await expect(sheet.locator('[data-testid="rc-residence-subdivision"]')).toBeVisible(); }); test('new client form swaps nationality input for CountryCombobox', async ({ page }) => { await navigateTo(page, '/clients'); // Sheet trigger label varies by tenant — stick to the topbar action. await page .locator('main') .getByRole('button', { name: /^new client$/i }) .first() .click(); await waitForSheet(page); const sheet = page.locator('[role="dialog"]'); await expect(sheet.locator('[data-testid="client-nationality"]')).toBeVisible(); await expect(sheet.locator('[data-testid="client-timezone"]')).toBeVisible(); }); test('new company form exposes incorporation country + subdivision pickers', async ({ page }) => { await navigateTo(page, '/companies'); await page .locator('main') .getByRole('button', { name: /^new company$/i }) .first() .click(); await waitForSheet(page); const sheet = page.locator('[role="dialog"]'); await expect(sheet.locator('[data-testid="company-incorp-country"]')).toBeVisible(); await expect(sheet.locator('[data-testid="company-incorp-subdivision"]')).toBeVisible(); }); });