fix: MFA setup completion not updating UI state
Root cause: the MFA status endpoint returned `mfa_enabled` as the JSON key but the TypeScript MfaStatus interface expected `enabled`. At runtime, `mfaStatus.value?.enabled` was always `undefined`, so `isEnabled` was always false — the banner never hid and the method cards never showed "Geconfigureerd". Additionally, the auth store had no way to re-fetch /auth/me after initialization, so `mfaSetupRequired` was never properly refreshed from the backend after MFA setup. Fixes: - Rename `mfa_enabled` → `enabled` in the MFA status endpoint response to match the TypeScript type (and the /auth/me MeResource which already used `enabled`) - Add `refreshUser()` to the auth store for post-initialization re-fetching of /auth/me - Call `refreshUser()` in onSetupCompleted so the store reflects the backend state without a full page reload - Update backend tests to match the renamed response key Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -147,7 +147,7 @@ class MfaSetupControllerTest extends TestCase
|
||||
$response->assertOk()
|
||||
->assertJson([
|
||||
'data' => [
|
||||
'mfa_enabled' => false,
|
||||
'enabled' => false,
|
||||
'method' => null,
|
||||
'confirmed_at' => null,
|
||||
'backup_codes_remaining' => 0,
|
||||
@@ -164,7 +164,7 @@ class MfaSetupControllerTest extends TestCase
|
||||
$response->assertOk()
|
||||
->assertJson([
|
||||
'data' => [
|
||||
'mfa_enabled' => true,
|
||||
'enabled' => true,
|
||||
'method' => 'totp',
|
||||
'backup_codes_remaining' => 10,
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user