9 Commits

Author SHA1 Message Date
Gitea Actions d8fb1b20d2 chore: bump version to v0.1.13 2026-04-27 03:57:11 +00:00
david 58e319d8e3 ci: update Playwright to v1.59.1 in CI base image
Build CI Images / build-ci-base (push) Failing after 18s
Release / release (push) Failing after 11s
2026-04-26 20:56:18 -07:00
Gitea Actions 72d4b85970 chore: bump version to v0.1.12 2026-04-27 03:40:52 +00:00
david 7cdc8d2eb4 ci: clear Bun cache before install to fix integrity check failures
Release / release (push) Failing after 12s
2026-04-26 20:40:42 -07:00
Gitea Actions 7a7b4dd122 chore: bump version to v0.1.11 2026-04-27 03:16:22 +00:00
david 926c6dfbec chore: update dependencies
Build CI Images / build-ci-base (push) Failing after 26s
Release / release (push) Failing after 14s
Fixes #16

Updated packages:
- @prisma/adapter-pg: 7.6.0 -> 7.8.0
- @prisma/client: 7.6.0 -> 7.8.0
- better-auth: 1.5.6 -> 1.6.9
- next: 16.2.1 -> 16.2.4
- prisma: 7.6.0 -> 7.8.0
- react: 19.2.4 -> 19.2.5
- react-dom: 19.2.4 -> 19.2.5
- @playwright/test: 1.58.2 -> 1.59.1
- tailwindcss: 4.2.2 -> 4.2.4
- react-hook-form: 7.72.0 -> 7.74.0
- And 74 other packages

All 27 Cucumber scenarios pass after update.
2026-04-27 03:14:44 +00:00
Gitea Actions 57b2bb760e chore: bump version to v0.1.10 2026-04-27 03:14:16 +00:00
david ce13bae949 fix: prevent content overflow on right side of screen
Pull Request / unit-tests (pull_request) Successful in 1m5s
Release / release (push) Failing after 16s
Pull Request / e2e-tests (pull_request) Failing after 4m7s
Pull Request / analyze-bump-type (pull_request) Has been skipped
Fixes #23

- Added overflow-x-hidden to body in root layout as defensive measure
- Changed table containers from overflow-hidden to overflow-x-auto
  in admin/players page and RankingsClient (3 tables)
- Added min-w-0 and overflow-hidden to Navigation flex containers
  to prevent links from pushing content off screen
- Added flex-shrink-0 to EuchreCamp wordmark link
2026-04-27 03:12:53 +00:00
Gitea Actions 48730fcf26 chore: bump version to v0.1.9 2026-04-27 02:39:24 +00:00
12 changed files with 288 additions and 10098 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ on:
paths: paths:
- 'Dockerfile.ci-base' - 'Dockerfile.ci-base'
- 'package.json' - 'package.json'
- 'bun.lockb' - 'bun.lock'
- '.gitea/workflows/build-ci-images.yml' - '.gitea/workflows/build-ci-images.yml'
schedule: schedule:
# Weekly rebuild to get latest Playwright/Bun versions # Weekly rebuild to get latest Playwright/Bun versions
+6
View File
@@ -16,6 +16,9 @@ jobs:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Clear Bun cache
run: bun pm cache rm || true
- name: Install dependencies - name: Install dependencies
run: bun install run: bun install
@@ -38,6 +41,9 @@ jobs:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Clear Bun cache
run: bun pm cache rm || true
- name: Install dependencies - name: Install dependencies
run: bun install run: bun install
+30
View File
@@ -1,3 +1,33 @@
## [0.1.13] - 2026-04-27
### Patch Changes
- ci: update Playwright to v1.59.1 in CI base image
## [0.1.12] - 2026-04-27
### Patch Changes
- ci: clear Bun cache before install to fix integrity check failures
## [0.1.11] - 2026-04-27
### Patch Changes
## [0.1.10] - 2026-04-27
### Patch Changes
- fix: prevent content overflow on right side of screen
## [0.1.9] - 2026-04-27
### Patch Changes
- test: remove migrated Playwright tests (epic3-rankings, home-page)
## [0.1.8] - 2026-04-27 ## [0.1.8] - 2026-04-27
### Patch Changes ### Patch Changes
+1 -1
View File
@@ -2,7 +2,7 @@
# Used for Gitea Actions CI workflows # Used for Gitea Actions CI workflows
# Uses Microsoft Playwright image as base (Ubuntu-based) with Bun added # Uses Microsoft Playwright image as base (Ubuntu-based) with Bun added
FROM mcr.microsoft.com/playwright:v1.58.0-jammy AS base FROM mcr.microsoft.com/playwright:v1.59.1-jammy AS base
# Install unzip (required for Bun installation) and other tools # Install unzip (required for Bun installation) and other tools
RUN apt-get update && apt-get install -y unzip && rm -rf /var/lib/apt/lists/* RUN apt-get update && apt-get install -y unzip && rm -rf /var/lib/apt/lists/*
+222 -222
View File
File diff suppressed because it is too large Load Diff
@@ -29,12 +29,6 @@ Given('I am on the login page', async function () {
await world.page.waitForLoadState('domcontentloaded'); await world.page.waitForLoadState('domcontentloaded');
}); });
Given('I am on the password reset page', async function () {
console.log('🌍 Navigating to password reset page');
await world.page.goto(`${world.baseURL}/auth/password-reset`);
await world.page.waitForLoadState('domcontentloaded');
});
Given('I am on the {string} page', async function (pageName: string) { Given('I am on the {string} page', async function (pageName: string) {
const pageUrls: Record<string, string> = { const pageUrls: Record<string, string> = {
'home': '/', 'home': '/',
-9840
View File
File diff suppressed because it is too large Load Diff
+19 -19
View File
@@ -1,6 +1,6 @@
{ {
"name": "euchre_camp", "name": "euchre_camp",
"version": "0.1.8", "version": "0.1.13",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "NEXT_PUBLIC_GIT_COMMIT=$(git rev-parse --short HEAD) next dev", "dev": "NEXT_PUBLIC_GIT_COMMIT=$(git rev-parse --short HEAD) next dev",
@@ -44,35 +44,35 @@
}, },
"dependencies": { "dependencies": {
"@hookform/resolvers": "^5.2.2", "@hookform/resolvers": "^5.2.2",
"@prisma/adapter-pg": "^7.6.0", "@prisma/adapter-pg": "^7.8.0",
"@prisma/client": "^7.6.0", "@prisma/client": "^7.8.0",
"@types/bcryptjs": "^2.4.6", "@types/bcryptjs": "^2.4.6",
"bcrypt": "^6.0.0", "bcrypt": "^6.0.0",
"bcryptjs": "^3.0.3", "bcryptjs": "^3.0.3",
"better-auth": "^1.5.6", "better-auth": "^1.6.9",
"glicko2": "^1.2.1", "glicko2": "^1.2.1",
"jose": "^6.2.2", "jose": "^6.2.2",
"next": "^16.2.1", "next": "^16.2.4",
"openskill": "^4.1.1", "openskill": "^4.1.1",
"papaparse": "^5.5.3", "papaparse": "^5.5.3",
"pg": "^8.20.0", "pg": "^8.20.0",
"prisma": "^7.6.0", "prisma": "^7.8.0",
"react": "^19.2.4", "react": "^19.2.5",
"react-dom": "^19.2.4", "react-dom": "^19.2.5",
"react-hook-form": "^7.72.0", "react-hook-form": "^7.74.0",
"zod": "^4.3.6" "zod": "^4.3.6"
}, },
"devDependencies": { "devDependencies": {
"@cucumber/cucumber": "^12.8.2", "@cucumber/cucumber": "^12.8.2",
"@playwright/test": "^1.58.2", "@playwright/test": "^1.59.1",
"@tailwindcss/postcss": "^4", "@tailwindcss/postcss": "^4.2.4",
"@testing-library/jest-dom": "^6.9.1", "@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2", "@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1", "@testing-library/user-event": "^14.6.1",
"@types/bcrypt": "^6.0.0", "@types/bcrypt": "^6.0.0",
"@types/bun": "^1.3.11", "@types/bun": "^1.3.13",
"@types/jsdom": "^28.0.1", "@types/jsdom": "^28.0.1",
"@types/node": "^20", "@types/node": "^20.19.39",
"@types/papaparse": "^5.5.2", "@types/papaparse": "^5.5.2",
"@types/pg": "^8.20.0", "@types/pg": "^8.20.0",
"@types/react": "^19.2.14", "@types/react": "^19.2.14",
@@ -80,12 +80,12 @@
"@vitejs/plugin-react": "^6.0.1", "@vitejs/plugin-react": "^6.0.1",
"argon2": "^0.44.0", "argon2": "^0.44.0",
"cucumber-pretty": "^6.0.1", "cucumber-pretty": "^6.0.1",
"eslint": "^8.57.0", "eslint": "^8.57.1",
"eslint-config-next": "^16.2.1", "eslint-config-next": "^16.2.4",
"jsdom": "^29.0.1", "jsdom": "^29.1.0",
"tailwindcss": "^4", "tailwindcss": "^4.2.4",
"tsx": "^4.21.0", "tsx": "^4.21.0",
"typescript": "^5", "typescript": "^5.9.3",
"vitest": "^4.1.2" "vitest": "^4.1.5"
} }
} }
+1 -1
View File
@@ -258,7 +258,7 @@ export default function AdminPlayersPage() {
</div> </div>
{/* Player Table */} {/* Player Table */}
<div className="bg-white shadow rounded-lg overflow-hidden"> <div className="bg-white shadow rounded-lg overflow-x-auto">
<table className="min-w-full divide-y divide-gray-200"> <table className="min-w-full divide-y divide-gray-200">
<thead className="bg-gray-50"> <thead className="bg-gray-50">
<tr> <tr>
+1 -1
View File
@@ -22,7 +22,7 @@ export default function RootLayout({
lang="en" lang="en"
className={`${inter.variable} h-full antialiased`} className={`${inter.variable} h-full antialiased`}
> >
<body className="min-h-full flex flex-col"> <body className="min-h-full flex flex-col overflow-x-hidden">
<SessionProvider> <SessionProvider>
{children} {children}
<Footer /> <Footer />
+3 -3
View File
@@ -59,7 +59,7 @@ export default function RankingsClient({ players }: { players: PlayerWithRatings
{/* Elo Rating Tab */} {/* Elo Rating Tab */}
{activeTab === "elo" && ( {activeTab === "elo" && (
<div className="bg-white shadow overflow-hidden sm:rounded-lg"> <div className="bg-white shadow overflow-x-auto sm:rounded-lg">
<h2 className="text-xl font-semibold text-gray-900 px-6 py-4 border-b"> <h2 className="text-xl font-semibold text-gray-900 px-6 py-4 border-b">
Elo Rating Rankings Elo Rating Rankings
</h2> </h2>
@@ -117,7 +117,7 @@ export default function RankingsClient({ players }: { players: PlayerWithRatings
{/* OpenSkill Rating Tab */} {/* OpenSkill Rating Tab */}
{activeTab === "openskill" && ( {activeTab === "openskill" && (
<div className="bg-white shadow overflow-hidden sm:rounded-lg"> <div className="bg-white shadow overflow-x-auto sm:rounded-lg">
<h2 className="text-xl font-semibold text-gray-900 px-6 py-4 border-b"> <h2 className="text-xl font-semibold text-gray-900 px-6 py-4 border-b">
OpenSkill Rating Rankings OpenSkill Rating Rankings
</h2> </h2>
@@ -178,7 +178,7 @@ export default function RankingsClient({ players }: { players: PlayerWithRatings
{/* Glicko2 Rating Tab */} {/* Glicko2 Rating Tab */}
{activeTab === "glicko2" && ( {activeTab === "glicko2" && (
<div className="bg-white shadow overflow-hidden sm:rounded-lg"> <div className="bg-white shadow overflow-x-auto sm:rounded-lg">
<h2 className="text-xl font-semibold text-gray-900 px-6 py-4 border-b"> <h2 className="text-xl font-semibold text-gray-900 px-6 py-4 border-b">
Glicko2 Rating Rankings Glicko2 Rating Rankings
</h2> </h2>
+4 -4
View File
@@ -50,14 +50,14 @@ export default function Navigation() {
<nav className="bg-white shadow-sm"> <nav className="bg-white shadow-sm">
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div className="flex justify-between h-16"> <div className="flex justify-between h-16">
<div className="flex items-center"> <div className="flex items-center min-w-0 overflow-hidden">
<Link <Link
href="/wordmark-redirect" href="/wordmark-redirect"
className="text-xl font-bold text-gray-900 no-underline" className="text-xl font-bold text-gray-900 no-underline flex-shrink-0"
> >
EuchreCamp EuchreCamp
</Link> </Link>
<div className="hidden md:ml-6 md:flex md:space-x-8"> <div className="hidden md:ml-6 md:flex md:space-x-8 min-w-0 overflow-hidden">
<Link <Link
href="/rankings" href="/rankings"
className="border-transparent text-gray-500 hover:text-gray-700 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium" className="border-transparent text-gray-500 hover:text-gray-700 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium"
@@ -110,7 +110,7 @@ export default function Navigation() {
)} )}
</div> </div>
</div> </div>
<div className="flex items-center"> <div className="flex items-center min-w-0 overflow-hidden">
{loading ? ( {loading ? (
<div className="text-gray-500">Loading...</div> <div className="text-gray-500">Loading...</div>
) : session ? ( ) : session ? (