import { test as base } from '@playwright/test';
import { ApiClient } from '../helpers/api-client.js';

type SeedFixtures = {
  apiClient: ApiClient;
};

/**
 * Seed-Fixture: stellt einen authentifizierten ApiClient bereit.
 *
 * Strategie (zu klären in Phase 1):
 *   Option A – DB-Reset vor jeder Suite via Spring Boot test-Profile + Liquibase
 *   Option B – Test-Daten mit zufälligen Namen (UUID-Suffix) zur Isolation
 *
 * Aktuell: Option B als pragmatischer Einstieg.
 */
export const test = base.extend<SeedFixtures>({
  apiClient: async ({ request }, use) => {
    const res = await request.post('/api/auth/login', {
      data: {
        username: process.env.TEST_USER_ADMIN ?? 'admin',
        password: process.env.TEST_USER_ADMIN_PASS ?? 'admin123',
      },
    });
    const { token } = await res.json();
    const client = new ApiClient(request, token);
    await use(client);
  },
});
