mitgliederverwaltung/test/membership
Simon 2bb01bd201
All checks were successful
continuous-integration/drone/push Build is passing
Improve UX of join requests and fix minor bugs (#492)
## Description of the implemented changes
The changes were:
- [x] Bugfixing
- [x] New Feature
- [ ] Breaking Change
- [ ] Refactoring

This PR improves the join-request flow and presentation quality, fixes several data-display issues in join/join-request screens, and adds a usability improvement in global settings (directly opening the join link). It also includes dependency updates and changelog maintenance.

## What has been changed?
- Join form (`JoinLive`) now renders inputs based on actual field types (including checkbox/date/number/email behavior instead of generic text-only handling).
- Join form custom-field labels are resolved from configured custom fields (fallback remains safe if lookup fails).
- Join-request details page (`JoinRequestLive.Show`) now:
  - resolves and shows custom field names instead of raw IDs,
  - formats boolean-like values (`on/true/1`, `off/false/0`) as localized `Yes/No`,
  - formats ISO date strings for better readability,
  - keeps legacy field handling while improving output consistency.
- Join-request detail layout was improved semantically and visually (`dl/dt/dd` structure for label/value rows).
- Global settings page now includes an **Open** button for the join URL (`target="_blank"`, `rel="noopener noreferrer"`, ARIA label).
- Added/updated tests around:
  - join field type rendering,
  - custom field labels in join-request views,
  - related auth/global-settings behavior.
- Updated translations (`default.pot`, `en`, `de`) for new UI strings.
- Updated dependencies/tooling (`mix.lock`, `mix.exs`, CI/renovate-related updates).
- Updated `CHANGELOG.md` entries for unreleased changes.

## Definition of Done
### Code Quality
- [x] No new technical depths
- [x] Linting passed
- [x] Documentation is added were needed

### Accessibility
- [x] New elements are properly defined with html-tags
- [x] Colour contrast follows WCAG criteria
- [x] Aria labels are added when needed
- [x] Everything is accessible by keyboard
- [x] Tab-Order is comprehensible
- [x] All interactive elements have a visible focus

### Testing
- [x] Tests for new code are written
- [ ] All tests pass
- [ ] axe-core dev tools show no critical or major issues

## Additional Notes
- Reviewer focus areas:
  - `lib/mv_web/live/join_live.ex`: input type derivation and custom field lookup strategy (`authorize?: false` read path used intentionally for field metadata).
  - `lib/mv_web/live/join_request_live/show.ex`: value-formatting logic (especially backward compatibility for legacy `form_data` payloads).
  - `lib/mv_web/live/global_settings_live.ex`: external-link behavior and accessibility attributes.
- The branch also contains dependency update commits; please review lockfile and CI-related changes separately from functional join/join-request changes.

Reviewed-on: #492
Co-authored-by: Simon <s.thiessen@local-it.org>
Co-committed-by: Simon <s.thiessen@local-it.org>
2026-05-06 14:34:42 +02:00
..
custom_field_deletion_test.exs Tests: use code interface for Member create/update (actor propagation) 2026-01-29 16:10:12 +01:00
custom_field_show_in_overview_test.exs Add actor parameter to all tests requiring authorization 2026-01-24 02:21:02 +01:00
custom_field_slug_test.exs test: remove skipped custom field slug lookup test 2026-03-10 20:17:27 +01:00
custom_field_validation_test.exs feat: type not editable 2026-02-18 16:42:54 +01:00
custom_field_value_validation_test.exs chore: remove unused aliases in tests 2026-01-30 00:00:33 +01:00
fuzzy_search_test.exs Add actor parameter to all tests requiring authorization 2026-01-24 02:21:02 +01:00
group_database_constraints_test.exs test: add tests for group resource #371 2026-01-27 15:04:26 +01:00
group_integration_test.exs refactor: move slow performance tests to extra test suite 2026-01-28 12:00:32 +01:00
group_test.exs tests: add tests 2026-02-09 13:34:57 +01:00
join_request_approval_domain_test.exs feat: prevent join requests with equal mail 2026-03-13 11:18:34 +01:00
join_request_approval_policy_test.exs feat: prevent join requests with equal mail 2026-03-13 11:18:34 +01:00
join_request_submit_email_failure_test.exs fix: join confirmation mail configuration 2026-03-13 09:34:56 +01:00
join_request_submit_email_test.exs fix: adapt tests to updated deps 2026-04-07 15:52:19 +02:00
join_request_test.exs feat: prevent join requests with equal mail 2026-03-13 11:18:34 +01:00
member_available_for_linking_test.exs test: move slow and less critical tests to nightly suite 2026-01-28 14:34:05 +01:00
member_cycle_calculations_test.exs Fix Credo Readability (strict) 2026-03-04 16:21:14 +01:00
member_email_sync_test.exs Add actor parameter to all tests requiring authorization 2026-01-24 02:21:02 +01:00
member_field_visibility_test.exs test: add tests for atomic member field visibility updates 2026-01-08 11:38:41 +01:00
member_fuzzy_search_linking_test.exs Add actor parameter to all tests requiring authorization 2026-01-24 02:21:02 +01:00
member_group_test.exs tests: add tests 2026-02-09 13:34:57 +01:00
member_groups_relationship_test.exs Improve UX of join requests and fix minor bugs (#492) 2026-05-06 14:34:42 +02:00
member_required_custom_fields_test.exs Add actor parameter to all tests requiring authorization 2026-01-24 02:21:02 +01:00
member_search_groups_integration_test.exs fix: adress review comments 2026-02-18 13:05:31 +01:00
member_search_with_custom_fields_test.exs Tests: use code interface for Member create/update (actor propagation) 2026-01-29 16:10:12 +01:00
member_test.exs Merge branch 'main' into feat/299_plz 2026-02-24 10:40:26 +01:00
member_type_change_integration_test.exs Fix Credo Readability (strict) 2026-03-04 16:21:14 +01:00
membership_fee_settings_test.exs Member/Setting/validations: domain, actor, and seeds 2026-02-03 23:52:16 +01:00
setting_env_test.exs adds tests 2025-12-01 10:42:10 +01:00
setting_join_form_test.exs fix: failing tests 2026-03-13 19:43:04 +01:00
setting_smtp_test.exs feat: add smtp settings 2026-03-12 13:39:48 +01:00
setting_test.exs Tests: restore settings in on_exit to avoid leftover state 2026-02-23 22:51:18 +01:00