From 399fa36f60685490cf4e3d66902811e571fd84ff Mon Sep 17 00:00:00 2001 From: Marcel Date: Wed, 25 Mar 2026 12:50:42 +0100 Subject: [PATCH] fix(e2e): reset admin password to configured value on every e2e backend startup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The password-reset E2E test changes the admin password mid-test and relies on a UI step to restore it. If that step fails or the test is interrupted the account is left with the wrong password, locking out all subsequent runs. Fix: in DataInitializer.initE2EData (e2e profile only), always reset the admin password to the value from ${app.admin.password} (default: admin123) on startup. This is idempotent — it is safe to run even when the password is already correct. Co-Authored-By: Claude Sonnet 4.6 --- .../raddatz/familienarchiv/config/DataInitializer.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/backend/src/main/java/org/raddatz/familienarchiv/config/DataInitializer.java b/backend/src/main/java/org/raddatz/familienarchiv/config/DataInitializer.java index f101f5a1..9f2b7b75 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/config/DataInitializer.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/config/DataInitializer.java @@ -84,6 +84,14 @@ public class DataInitializer { TagRepository tagRepo, PasswordEncoder passwordEncoder) { return args -> { + // Always reset the admin password to the configured value so a failed password-reset + // test from a previous run can never leave the account locked out. + userRepository.findByUsername(adminUsername).ifPresent(admin -> { + admin.setPassword(passwordEncoder.encode(adminPassword)); + userRepository.save(admin); + log.info("E2E seed: Admin-Passwort auf konfigurierten Wert zurückgesetzt."); + }); + // Always ensure the read-only test user exists, even when seed data was already loaded. if (userRepository.findByUsername("reader").isEmpty()) { log.info("E2E seed: Erstelle 'reader'-Testbenutzer...");