chore: save WIP before workstation switch

This commit is contained in:
2026-05-18 17:33:31 -07:00
parent 98b18de00a
commit 2c5666e419
30 changed files with 765 additions and 395 deletions
+13 -12
View File
@@ -7,6 +7,7 @@
import { test, expect } from '@playwright/test';
import { prisma } from '@/lib/prisma';
const BASE_URL = process.env.CI ? 'https://euchre-ci.notsosm.art' : 'http://localhost:3000';
function getTestCredentials() {
const timestamp = Date.now();
@@ -28,11 +29,11 @@ test.describe.serial('Issue #22: Team Configuration', () => {
testPassword = credentials.password;
// Create admin user via API
const response = await fetch('http://localhost:3000/api/auth/sign-up/email', {
const response = await fetch(`${BASE_URL}/api/auth/sign-up/email`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Origin: 'http://localhost:3000',
Origin: BASE_URL,
},
body: JSON.stringify({
email: testEmail,
@@ -77,14 +78,14 @@ test.describe.serial('Issue #22: Team Configuration', () => {
test('Tournament creation form shows team configuration options', async ({ page }) => {
// Login
await page.goto('http://localhost:3000/auth/login');
await page.goto('/auth/login');
await page.fill('input[name="email"]', testEmail);
await page.fill('input[name="password"]', testPassword);
await page.click('button[type="submit"]');
await page.waitForURL(/\/(admin|players)/, { timeout: 10000 });
// Navigate to tournament creation
await page.goto('http://localhost:3000/admin/tournaments/new');
await page.goto('/admin/tournaments/new');
// Select Round Robin format
await page.selectOption('select[name="format"]', 'round_robin');
@@ -100,14 +101,14 @@ test.describe.serial('Issue #22: Team Configuration', () => {
test('Create tournament with permanent teams', async ({ page }) => {
// Login
await page.goto('http://localhost:3000/auth/login');
await page.goto('/auth/login');
await page.fill('input[name="email"]', testEmail);
await page.fill('input[name="password"]', testPassword);
await page.click('button[type="submit"]');
await page.waitForURL(/\/(admin|players)/, { timeout: 10000 });
// Navigate to tournament creation
await page.goto('http://localhost:3000/admin/tournaments/new');
await page.goto('/admin/tournaments/new');
// Fill in tournament details
await page.fill('input[name="name"]', `Test Tournament ${Date.now()}`);
@@ -175,14 +176,14 @@ test.describe.serial('Issue #22: Team Configuration', () => {
test('Create tournament with variable teams and partner rotation', async ({ page }) => {
// Login
await page.goto('http://localhost:3000/auth/login');
await page.goto('/auth/login');
await page.fill('input[name="email"]', testEmail);
await page.fill('input[name="password"]', testPassword);
await page.click('button[type="submit"]');
await page.waitForURL(/\/(admin|players)/, { timeout: 10000 });
// Navigate to tournament creation
await page.goto('http://localhost:3000/admin/tournaments/new');
await page.goto('/admin/tournaments/new');
// Fill in tournament details
await page.fill('input[name="name"]', `Variable Teams Tournament ${Date.now()}`);
@@ -237,11 +238,11 @@ test.describe.serial('Issue #22: Team Configuration', () => {
test('Edit tournament team configuration', async ({ page }) => {
// First create a tournament with default settings
const createResponse = await fetch('http://localhost:3000/api/tournaments', {
const createResponse = await fetch(`${BASE_URL}/api/tournaments`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Origin: 'http://localhost:3000',
Origin: BASE_URL,
},
body: JSON.stringify({
name: `Edit Test Tournament ${Date.now()}`,
@@ -253,14 +254,14 @@ test.describe.serial('Issue #22: Team Configuration', () => {
tournamentId = createData.tournament.id;
// Login
await page.goto('http://localhost:3000/auth/login');
await page.goto('/auth/login');
await page.fill('input[name="email"]', testEmail);
await page.fill('input[name="password"]', testPassword);
await page.click('button[type="submit"]');
await page.waitForURL(/\/(admin|players)/, { timeout: 10000 });
// Navigate to edit tournament page
await page.goto(`http://localhost:3000/admin/tournaments/${tournamentId}/edit`);
await page.goto(`/admin/tournaments/${tournamentId}/edit`);
// Check that team configuration section is visible
await expect(page.locator('text=Team Configuration')).toBeVisible();