fix(e2e): close unterminated test.describe in material-hold-release spec#189
Merged
Merged
Conversation
The spec was missing the final `});` closing its `test.describe(...)` block, so Playwright failed to parse it — and because collection aborts on the first unparseable file, this broke the ENTIRE E2E suite (0 specs could run). E2E isn't part of the CI test gate, so it slipped onto develop unnoticed. Adds the missing close; the file now parses and lists its test.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
jakub-przepiora
added a commit
that referenced
this pull request
Jul 19, 2026
* feat: required operators * fix: styles * test: fix e2e disposition flow and create English scenario variant * [feat] Per-order machines to run supervisor view #89 * Update tests and localization * fix to test can capture all step from multi users by logout and login * fix test error * clean: remove temporary development files and compiled output * translate: translate Operator Workstation and Work Order details to Vietnamese * fix: address code review comments for i18n localization and backend logic * fix: address remaining PR comments on docker-compose mount, reset script fail-fast, and e2e spec safety * fix: adjust lot pick layout font sizes and make E2E dropdown lot selection robust * fix: localize Start and Complete step buttons under Operator panel * style: polish LotPickModal row spacing and fonts to avoid vertical overlapping * fix: wait for start API response before expecting step Complete button in vi spec * fix: refine confirmBtn locator in E2E spec to avoid partial text matching * fix: unconditionally scan and fill selects in E2E lot picking modal * fix: refine createBtn button locator regex pattern * fix: use explicit workstation button label in E2E spec to avoid strict createBtn helper mismatches * fix: streamline startBtn visibility and click handler logic in E2E spec * fix: add robust re-click startBtn fallback to start batch step in E2E spec * translate: localize work order operator modals and actions to support vietnamese * fix(materials): make material_type_id optional in StoreMaterialRequest * chore: remove reset-test cmd files * fix(i18n): address PR reviews for operator controllers translation gaps * chore: remove car-production-buildout spec files * fix(i18n): align media type badge localization mapping key with select options * feat: mobile * fix: restore removed migration 2026_06_18_120000 (make material_type_id nullable) Also remove composer.phar and empty .rr.yaml from git tracking. * Address order machines review feedback * fix: logs * feat: accepnt informations * feat: finish up whole feature * fix: address CodeRabbit review on customer/priority PR - PriorityRuleRequest: reject non-"equals" conditions for the customer.tier source (a numeric comparison casts the tier string to 0 and matches nonsense). - CustomerMetricsService: lock and re-check the work order inside the transaction so concurrent completions can't double-count revenue/orders. - Priority Settings band editor: block save when any threshold is blank instead of silently coercing an empty field to 0. Adds tests and en/pl strings. Full suite green (1690). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(workstation): shop-floor device registration + live admin roster (#175) * feat(workstation): shop-floor device registration + live admin roster Workstation client PCs self-register against the MAIN app by IP and heartbeat; Admin → Structure → Workstation Devices shows them live (online/offline derived from last_seen_at) via an Electric shape. - Public, rate-limited API: POST /api/workstations/register + /heartbeat - WorkstationDevice model (soft-delete + audit), migration with a partial unique index on device_uuid, factory - Web admin roster page (ResourceTable) + forget (soft-delete) - Registered in SoftDeleteRegistry + ShapeRegistry; i18n en/pl parity - Tests: registration/heartbeat/validation, admin authz + soft-delete * docs(roadmap): add workflow/UX orchestration items from field feedback Operator/supervisor/scheduler workflow items surfaced by a high-volume plant's feedback (unified production+scrap reporting, role-based entry points, machine-counter reporting, shift board, start-of-shift + multi-day Gantt scheduling, made-to-order vs stock order entry). Tagged 'probable'. * ci(release): build desktop installers (win/mac/linux) + Android apk (#187) Extends the release workflow so a tag/dispatch produces installers for every platform, all attached to the same GitHub Release: - web: existing self-contained ZIP (unchanged) — creates the release - desktop: Tauri matrix (windows .exe/NSIS, macOS .dmg, linux .deb/.rpm), each bundling PHP + the backend; PHP runtime fetched per-OS, backend built (composer + vite) and injected via bundle-resources + --config - mobile: Expo prebuild + Gradle assembleRelease -> Android .apk Jobs fan out from the web job (needs: web) and upload to the release by tag, so a desktop/mobile failure never blocks the web artifact. * feat(desktop): OpenMES Desktop app (Tauri) + unattended install preset (#186) * feat(desktop): OpenMES Desktop app (Tauri) + unattended install preset Brings the desktop platform app to develop alongside mobile/. A Tauri (Rust + webview) shell that bundles PHP + the backend and runs OpenMES as a local desktop app / LAN MES server, with an in-app self-updater. - desktop/: Tauri app (src-tauri Rust, TS control panel, icons, build scripts for self-contained Windows .exe and Linux .deb/.rpm) - Backend INSTALLER_PRESET mode: unattended install (skips env/db wizard steps, straight to admin creation) that the desktop shell drives — InstallController + install views + bootstrap/app.php - InstallPresetTest covers the preset behaviour The shop-floor workstation feature lands separately in #175. * fix(desktop): address CodeRabbit review on #186 - installer: stop leaking raw PDO exception messages to pre-auth visitors (log instead); reject path-traversal in sqlite db_database before it hits storage_path(); move admin-step validation into a CreateAdminRequest Form Request (per project convention) - tauri: harden config — withGlobalTauri=false + a CSP (permissive only for localhost so the served MES app's websockets/SSE keep working) - panel: AbortController in ensureDbMode so boot retries don't stack duplicate DB-choice listeners - updater: snapshot the SQLite DB before migrating and restore it on rollback, so restored old code never runs against the migrated schema * feat(work-orders): add elapsed-time "Age" column to work-order lists (#185) * feat(work-orders): add elapsed-time "Age" column to work-order lists Add an "Age" column (now - created_at) to the admin and supervisor work-order lists, showing a compact human-readable duration (just now / 5m / 3h / 2d / 1y) with the exact creation time on hover. - New reusable elapsed() formatter in lib/i18n.js - Opt-in `live: true` column flag on ResourceTable: a shared 30s clock ticks live cells via context, so tables without one schedule no timer - Opt-in `sortAccessor` column flag so "Age" sorts by actual age (ascending = youngest first) while global search keeps using created_at - Vitest setup covering the duration formatting; wired into CI + pre-commit created_at was already synced on the work-order Electric shapes, so no schema or shape change. Closes #100 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * perf(work-orders): isolate live-clock ticks to a provider component Move the 30s clock state out of ResourceTable into a small LiveClockProvider wrapper, so a tick re-renders only the provider and the NowContext consumers (the live cells) rather than the whole ResourceTable body. Previously the tick re-ran the live query/filter and handed DataTable freshly allocated props (visibleRows, the inline rangeLabel), defeating its memoization and reconciling the entire grid every 30s. Addresses CodeRabbit review on #185. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(routes): drop dangling __e2e__ block; 404 (not 500) on non-numeric report ids (#188) - Remove the WIP `__e2e__` test-control route group and its import: it referenced App\Http\Controllers\TestControl\TenantController, the EnsureE2eEnabled middleware and config/e2e.php — none of which exist in the repo (leaked from 'feat: custom fields wip'). It broke `php artisan route:list` and would 500 on /__e2e__/* instead of the intended 404. No spec references it; reintroduce complete (routes + controller + middleware + config) if the isolated-tenant harness is wanted. - Constrain reports.show / cost-reports.show to `whereNumber('workOrder')` so a non-numeric id (e.g. /admin/reports/net-requirements) 404s instead of hitting the controller with a string id and 500ing on an invalid-integer query. * feat(bom): select multi bom in orders (#183) * feat(bom): select multi bom in orders * fix(refactor): code fixes reported in code review by CodeRabbit --------- Co-authored-by: jakub-przepiora <jakub.przepioraa@gmail.com> * fix(e2e): close unterminated test.describe in material-hold-release spec (#189) The spec was missing the final `});` closing its `test.describe(...)` block, so Playwright failed to parse it — and because collection aborts on the first unparseable file, this broke the ENTIRE E2E suite (0 specs could run). E2E isn't part of the CI test gate, so it slipped onto develop unnoticed. Adds the missing close; the file now parses and lists its test. * chore(release): v0.17.0 --------- Co-authored-by: Mateusz Łuczyński <mateusz.luczynski01@gmail.com> Co-authored-by: AlexAnh <soibien@gmail.com> Co-authored-by: ElNinio978 <Kacperwos2005@gmail.com> Co-authored-by: JanKolo04 <jankolodziej04@gmail.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: Mateusz Łuczyński <100802495+Svannte@users.noreply.github.com> Co-authored-by: Jan Kołodziej <76879087+JanKolo04@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Playwright spec
tests/e2e/material-hold-release.spec.tswas missing the final});that closes itstest.describe(...)block. Playwright fails to parse the file (Unexpected token (119:0)), and since collection aborts on the first unparseable spec, the whole E2E suite couldn't run (0 tests collected). E2E specs aren't in the CILaravel testsgate, so this landed on develop unnoticed (commit 7fe83c2).Found while running the full E2E suite against a fresh develop checkout. One-line fix: add the missing
});. Verified — the file now parses andplaywright test --listshows its test.🤖 Generated with claude-flow