Conversation
Bumps the npm_and_yarn group with 5 updates in the /booking-app directory: | Package | From | To | | --- | --- | --- | | [axios](https://github.com/axios/axios) | `1.13.3` | `1.13.5` | | [next](https://github.com/vercel/next.js) | `14.2.30` | `15.5.10` | | [undici](https://github.com/nodejs/undici) | `6.19.7` | `removed` | | [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) | `4.5.3` | `5.3.7` | | [qs](https://github.com/ljharb/qs) | `6.14.1` | `6.15.0` | Bumps the npm_and_yarn group with 2 updates in the /booking-app/components/src/test directory: [minimatch](https://github.com/isaacs/minimatch) and [qs](https://github.com/ljharb/qs). Updates `axios` from 1.13.3 to 1.13.5 - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](axios/axios@v1.13.3...v1.13.5) Updates `next` from 14.2.30 to 15.5.10 - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](vercel/next.js@v14.2.30...v15.5.10) Removes `undici` Updates `fast-xml-parser` from 4.5.3 to 5.3.7 - [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases) - [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/commits/v5.3.7) Updates `qs` from 6.14.1 to 6.15.0 - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](ljharb/qs@v6.14.1...v6.15.0) Updates `minimatch` from 3.1.2 to 10.2.2 - [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md) - [Commits](isaacs/minimatch@v3.1.2...v10.2.2) Updates `qs` from 6.13.0 to 6.14.2 - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](ljharb/qs@v6.14.1...v6.15.0) --- updated-dependencies: - dependency-name: axios dependency-version: 1.13.5 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: next dependency-version: 15.5.10 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: undici dependency-version: dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: fast-xml-parser dependency-version: 5.3.7 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: qs dependency-version: 6.15.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: minimatch dependency-version: 10.2.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: qs dependency-version: 6.14.2 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <[email protected]>
…ated options - Pin eslint-config-next to 15.5.12 and @next/eslint-plugin-next to ^15.5.12 to maintain ESLint 8 compatibility (16.x requires ESLint >=9) - Migrate all route handlers to use async params (Next.js 15 breaking change): API routes use `await params`, client pages use `React.use(params)` - Update [tenant]/layout.tsx server component to await params - Move serverComponentsExternalPackages to top-level serverExternalPackages - Remove deprecated experimental.instrumentationHook (now default in Next.js 15) Co-Authored-By: Claude Opus 4.6 <[email protected]>
Merge main's shouldBypassAuth/getTestTenantSchema logic with the Next.js 15 async params fix (using awaited `tenant` variable). Co-Authored-By: Claude Opus 4.6 <[email protected]>
…ools conflict Next.js injects a Dev Tools button with aria-label containing "Next", causing strict mode violations when getByRole matches 2 elements. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Two new end-to-end tests covering the complete service lifecycle flows that were previously untested: - Service approval full flow: Requested → Pre-Approved → Services Request → (approve all 6 services one by one) → Approved - Service closeout full flow: Checked Out → Service Closeout → (closeout all 6 services one by one) → Closed Each service action uses a full page reload to avoid the combobox re-click bug that disabled the original services-approve.e2e.test.ts. Co-Authored-By: Claude Opus 4.6 <[email protected]>
There was a problem hiding this comment.
Pull request overview
This PR adds comprehensive E2E tests for full service approval and closeout flows, while upgrading critical dependencies including Next.js (14.2.30 → 15.5.10) and Firebase (10.12.4 → 12.9.0). The changes primarily focus on testing infrastructure and adapting to Next.js 15's breaking changes around async route parameters.
Changes:
- Added two new E2E test files (999 and 882 lines) for service approval and closeout workflows
- Upgraded Next.js to v15 with corresponding API changes (async params)
- Updated Firebase SDK to v12 and other dependencies (axios, eslint plugins)
- Migrated all dynamic route params to async Promises (Next.js 15 requirement)
- Updated Next.js config to use stable
serverExternalPackagesinstead of experimental settings - Added
exact: trueto button selectors in E2E tests for more precise matching
Reviewed changes
Copilot reviewed 23 out of 25 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| xstate-service-full-flow.e2e.test.ts | New comprehensive E2E test for service approval flow (999 lines) |
| xstate-service-closeout-full-flow.e2e.test.ts | New E2E test for service closeout workflow (882 lines) |
| tsconfig.json | Formatting improvements and ES2017 target added |
| next.config.mjs | Updated for Next.js 15 (experimental → stable serverExternalPackages) |
| package.json | Major dependency upgrades (Next.js 15, Firebase 12, axios 1.13.5) |
| Various [id]/page.tsx files | Updated to handle async params via React.use() hook |
| [tenant]/layout.tsx | Updated to await params in async server component |
| API route files | Updated to await params in route handlers |
| booking-test-helpers.ts | Added exact: true to button selectors |
| playwright.config.ts | Added new test files to worker configuration |
| components/src/test/package-lock.json | Dependency updates for test utilities |
Files not reviewed (1)
- booking-app/components/src/test/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
booking-app/tests/e2e/xstate-service-closeout-full-flow.e2e.test.ts
Outdated
Show resolved
Hide resolved
…mock schema - Extract registerMockBookingsFeed to shared helper in xstate-mocks.ts - Remove ~340-line duplicated function from both full-flow test files - Fix noShowedAt: use null instead of zeroTimestamp - Fix machineId: use "MC Booking Request" matching actual xstate config - Add missing "use client" directive to edit/role/[id]/page.tsx Co-Authored-By: Claude Opus 4.6 <[email protected]>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 24 out of 26 changed files in this pull request and generated 7 comments.
Files not reviewed (1)
- booking-app/components/src/test/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary of Changes
Checklist
Screenshots / Video