import { test, expect } from '@playwright/test';
import { BASE_URL, ADMIN, loginAs } from '../helpers';

test.describe('WFBO — Live Racing Settings', () => {

    test.beforeEach(async ({ page }) => {
        await loginAs(page, ADMIN.mobile, ADMIN.password);
    });

    test('settings page loads with the enable toggle and a commission rate field', async ({ page }) => {
        await page.goto(`${BASE_URL}/wfbo/live-racing/settings`);

        await expect(page.locator('[data-testid="live-racing-settings-form"]')).toBeVisible();
        await expect(page.locator('[data-testid="input-live-racing-enabled-wrapper"]')).toBeVisible();
        await expect(page.locator('[data-testid="input-live-racing-agent-commission-rate"]')).toBeVisible();
    });

    test('saving a commission rate persists and pre-fills on reload', async ({ page }) => {
        await page.goto(`${BASE_URL}/wfbo/live-racing/settings`);

        await page.fill('[data-testid="input-live-racing-agent-commission-rate"]', '12.5');
        await page.click('[data-testid="btn-save-live-racing-settings"]');

        await expect(page.locator('[data-testid="flash-success"]')).toBeVisible();

        await page.goto(`${BASE_URL}/wfbo/live-racing/settings`);
        await expect(page.locator('[data-testid="input-live-racing-agent-commission-rate"]')).toHaveValue('12.50');
    });

    test('a commission rate outside 0-100 is rejected', async ({ page }) => {
        await page.goto(`${BASE_URL}/wfbo/live-racing/settings`);

        await page.fill('[data-testid="input-live-racing-agent-commission-rate"]', '150');
        await page.click('[data-testid="btn-save-live-racing-settings"]');

        await expect(page.locator('[data-testid="live-racing-settings-form"]')).toContainText('Commission rate must be between 0 and 100');
    });

});
