Skip to content

fix(e2e): close unterminated test.describe in material-hold-release spec#189

Merged
jakub-przepiora merged 1 commit into
developfrom
fix/e2e-material-hold-release-syntax
Jul 19, 2026
Merged

fix(e2e): close unterminated test.describe in material-hold-release spec#189
jakub-przepiora merged 1 commit into
developfrom
fix/e2e-material-hold-release-syntax

Conversation

@jakub-przepiora

Copy link
Copy Markdown
Contributor

The Playwright spec tests/e2e/material-hold-release.spec.ts was missing the final }); that closes its test.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 CI Laravel tests gate, 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 and playwright test --list shows its test.

🤖 Generated with claude-flow

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.
@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 56215d02-0359-46a5-afeb-5bdf4a795bc7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/e2e-material-hold-release-syntax

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@jakub-przepiora
jakub-przepiora merged commit 8ec1ffa into develop Jul 19, 2026
2 checks passed
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>
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