This page lists every browser e2e suite in web-client/, grouped by the area of Cluster ERP it covers. It is a lookup table for finding the suite that guards a feature. How the suites run, and the rules they must follow, are on e2e battery.
Scope and source¶
- Defined in: the files
web-client/_e2e_*.mjs. - Count: 197 suites, counted with
ls web-client/_e2e_*.mjs. The runner selects the same set (web-client/_run_battery.mjs:42-46). - Grouping: each suite was placed in one area from its file name and the first comment line of the file. A suite appears in one group only. The 15 group counts add up to 197.
Suites by area¶
| Area | Count | Suites |
|---|---|---|
| Analytics | 12 | _e2e_analytics.mjs, _e2e_analytics_app.mjs, _e2e_analytics_classify.mjs, _e2e_analytics_forecast.mjs, _e2e_analytics_infer.mjs, _e2e_analytics_models.mjs, _e2e_analytics_profile.mjs, _e2e_analytics_recipe.mjs, _e2e_analytics_reports.mjs, _e2e_analytics_statistics.mjs, _e2e_analytics_summaries.mjs, _e2e_analytics_widget.mjs |
| App store, licensing, and versioning | 8 | _e2e_app_store.mjs, _e2e_assets.mjs, _e2e_license.mjs, _e2e_records_entitlement.mjs, _e2e_seat.mjs, _e2e_store.mjs, _e2e_store_uibook.mjs, _e2e_versioning.mjs |
| Approvals | 4 | _e2e_approval_role.mjs, _e2e_approvals.mjs, _e2e_approvals_integrity.mjs, _e2e_approvals_widget.mjs |
| Security, sessions, and access control | 20 | _e2e_abac_policy_crud.mjs, _e2e_attachment_idor.mjs, _e2e_auth_panels.mjs, _e2e_body_limit.mjs, _e2e_cookie_session.mjs, _e2e_dialog_xss.mjs, _e2e_email_records_validation.mjs, _e2e_employee_field_gate.mjs, _e2e_lockout.mjs, _e2e_login_rate_limit.mjs, _e2e_logout_revoke.mjs, _e2e_password_change.mjs, _e2e_privilege_ceiling.mjs, _e2e_refresh_session.mjs, _e2e_rfq_portal_token.mjs, _e2e_rls_backstop.mjs, _e2e_security_headers.mjs, _e2e_sep_companies.mjs, _e2e_sep_roles.mjs, _e2e_session_remember.mjs |
| Tenancy, residency, privacy, and operations | 9 | _e2e_backup_restore.mjs, _e2e_operator_console.mjs, _e2e_perf_budget.mjs, _e2e_privacy_requests.mjs, _e2e_residency.mjs, _e2e_retention.mjs, _e2e_tenant_isolation.mjs, _e2e_tenant_regions.mjs, _e2e_tenant_signup.mjs |
| Tenant-defined fields | 6 | _e2e_tenant_fields.mjs, _e2e_tenant_fields_catalog.mjs, _e2e_tenant_fields_list.mjs, _e2e_tenant_fields_phase4.mjs, _e2e_tenant_fields_phase4b.mjs, _e2e_tenant_fields_phase4c.mjs |
| Record lifecycle, history, documents, and forms | 14 | _e2e_changed.mjs, _e2e_data_refresh.mjs, _e2e_deactivate_reason.mjs, _e2e_deactivate_ui.mjs, _e2e_doc_version.mjs, _e2e_doc_viewer.mjs, _e2e_fk_labels.mjs, _e2e_form_draft.mjs, _e2e_form_draft_matrix.mjs, _e2e_lifecycle.mjs, _e2e_passives.mjs, _e2e_record_docs.mjs, _e2e_status_actions.mjs, _e2e_unique_soft_delete.mjs |
| Home screen, dock, launcher, and widgets | 23 | _e2e_app_wheel.mjs, _e2e_dock_back_zone.mjs, _e2e_dock_close_all.mjs, _e2e_dock_open_grace.mjs, _e2e_dock_pins.mjs, _e2e_dup_home_tiles.mjs, _e2e_keepalive_paint.mjs, _e2e_library.mjs, _e2e_library_search.mjs, _e2e_mobile_app.mjs, _e2e_mobile_home.mjs, _e2e_no_text_select.mjs, _e2e_switcher.mjs, _e2e_switcher_close_all.mjs, _e2e_switcher_dock.mjs, _e2e_touch_sweep.mjs, _e2e_widget_move.mjs, _e2e_widget_projects.mjs, _e2e_widget_scope.mjs, _e2e_widget_swap.mjs, _e2e_widgets_ai_sched.mjs, _e2e_widgets_clock.mjs, _e2e_widgets_spot.mjs |
| Interface standards, language, and search | 20 | _e2e_action_sheet.mjs, _e2e_assistant.mjs, _e2e_command_palette.mjs, _e2e_density.mjs, _e2e_dropdown.mjs, _e2e_lang.mjs, _e2e_lang_background.mjs, _e2e_login_a11y.mjs, _e2e_logs_profile.mjs, _e2e_search.mjs, _e2e_settings_full.mjs, _e2e_table_alignment.mjs, _e2e_ui_a11y.mjs, _e2e_ui_details.mjs, _e2e_ui_forms.mjs, _e2e_ui_motion.mjs, _e2e_ui_states.mjs, _e2e_ui_tokens.mjs, _e2e_ui_typescale.mjs, _e2e_universal_search.mjs |
| Intranet | 15 | _e2e_intranet.mjs, _e2e_intranet_acl.mjs, _e2e_intranet_audience.mjs, _e2e_intranet_authz.mjs, _e2e_intranet_compose_ui.mjs, _e2e_intranet_confidential.mjs, _e2e_intranet_events_lifecycle.mjs, _e2e_intranet_feed_ui.mjs, _e2e_intranet_home.mjs, _e2e_intranet_isolation.mjs, _e2e_intranet_leave_rules.mjs, _e2e_intranet_mydocs.mjs, _e2e_intranet_notif_i18n.mjs, _e2e_intranet_selfservice.mjs, _e2e_intranet_services.mjs |
| Fleet | 9 | _e2e_fleet_analytics.mjs, _e2e_fleet_assets.mjs, _e2e_fleet_fuel.mjs, _e2e_fleet_maintenance.mjs, _e2e_fleet_meters.mjs, _e2e_fleet_operations.mjs, _e2e_fleet_paranoid.mjs, _e2e_fleet_telematics.mjs, _e2e_fleet_workorders.mjs |
| Procurement and MRP | 16 | _e2e_mrp_atp_faz8.mjs, _e2e_mrp_capacity_faz3.mjs, _e2e_mrp_ddmrp_faz6.mjs, _e2e_mrp_deferred_faz7.mjs, _e2e_mrp_explosion_faz4.mjs, _e2e_mrp_faz5.mjs, _e2e_mrp_hygiene_faz0.mjs, _e2e_mrp_pir_faz1.mjs, _e2e_mrp_stability_faz2.mjs, _e2e_procurement_app.mjs, _e2e_procurement_audit_deferred.mjs, _e2e_procurement_audit_high.mjs, _e2e_procurement_audit_low.mjs, _e2e_procurement_audit_medium.mjs, _e2e_procurement_gr.mjs, _e2e_purchasing_quotations_app.mjs |
| Products, BOM, engineering, costing, and nesting | 17 | _e2e_bom_app.mjs, _e2e_bom_bugfix_batch.mjs, _e2e_bom_me2m.mjs, _e2e_bom_me2m_matrix.mjs, _e2e_bom_open_in_explorer.mjs, _e2e_costing_app.mjs, _e2e_deseng_currencies.mjs, _e2e_ebom_operation_staging.mjs, _e2e_ebom_scaffold.mjs, _e2e_ebom_wizard.mjs, _e2e_make_or_buy_stock.mjs, _e2e_nesting_app.mjs, _e2e_product_model_versions.mjs, _e2e_products.mjs, _e2e_products_service.mjs, _e2e_quote_line_bom.mjs, _e2e_soline_bom_action.mjs |
| Projects, production, scheduling, and calendars | 12 | _e2e_calendars_app.mjs, _e2e_capacity_cap.mjs, _e2e_capacity_units.mjs, _e2e_production_app.mjs, _e2e_project_board.mjs, _e2e_project_calendar.mjs, _e2e_project_evm_phase2c.mjs, _e2e_project_key_phase0.mjs, _e2e_project_otd.mjs, _e2e_project_pegging_phase2b.mjs, _e2e_project_plan_phase1.mjs, _e2e_project_stock_phase2a.mjs |
| Parties, sales, mail, inventory, and subscriptions | 12 | _e2e_inventory_app.mjs, _e2e_mail.mjs, _e2e_mail_drafts.mjs, _e2e_mailapp.mjs, _e2e_order_shipment_chain.mjs, _e2e_parties.mjs, _e2e_parties_supplier.mjs, _e2e_party_form_fixes.mjs, _e2e_party_photo.mjs, _e2e_quotations_app.mjs, _e2e_sales_orders_app.mjs, _e2e_subscriptions.mjs |
Shared helpers used by the suites¶
| Helper file | Suites that import it | Purpose | Source |
|---|---|---|---|
_shared_e2e_base.mjs |
197 | Target address, database name, platform helpers, result line | web-client/_shared_e2e_base.mjs:4-17 |
_ui_state_guard.mjs |
192 | Test account and home-layout guard | web-client/_ui_state_guard.mjs:1-11 |
_shared_fixtures.mjs |
18 | Preconditions created through the public API | web-client/_shared_fixtures.mjs:1-4 |
_shared_history.mjs |
7 | Analytics history in a window relative to today | web-client/_shared_history.mjs:1-13 |
The counts were made with grep -l on the import name. 118 suites call guardUiState; the others import only the test account constants from the guard file.
Constraints and validation¶
- Seven suites are self-hosted: they start their own server and databases. They are listed on e2e battery.
- 195 suites call
reportfrom the shared base module to print their result line (counted withgrep -l "report("). The other two print the line themselves; the runner accepts any line that matchesN passed, M failed(web-client/_run_battery.mjs:97). - Every suite is checked by
tests/test_e2e_db_isolation.py, which parametrises its tests over the same file pattern (tests/test_e2e_db_isolation.py:30).
Related pages¶
Verified against commit 92f8051 on 2026-11-13.