Skip to content

Comments

Feat/e2e service full flow#1241

Open
rlho wants to merge 6 commits intomainfrom
feat/e2e-service-full-flow
Open

Feat/e2e service full flow#1241
rlho wants to merge 6 commits intomainfrom
feat/e2e-service-full-flow

Conversation

@rlho
Copy link
Collaborator

@rlho rlho commented Feb 23, 2026

Summary of Changes

Checklist

  • I checked for existing implementations and confirmed there is no duplication
  • I tested this feature locally
  • I had Copilot review the PR and incorporated feedback (or explained why not)
  • I confirmed there are no conflicts
  • I confirmed my PR passed all tests
  • I added or updated unit tests (or explained why not)
  • I attached screenshots or a video demonstrating the feature
  • I requested a code review from at least one other teammate

Screenshots / Video

dependabot bot and others added 5 commits February 20, 2026 20:16
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]>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 serverExternalPackages instead of experimental settings
  • Added exact: true to 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.

…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]>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant