| 15 | ) |
| 16 | |
| 17 | func TestSaveToken_PersistsUserIdentity(t *testing.T) { |
| 18 | keyring.MockInit() |
| 19 | |
| 20 | resp := &dashboard.OAuthTokenResponse{ |
| 21 | AccessToken: "access-token", |
| 22 | RefreshToken: "refresh-token", |
| 23 | ExpiresIn: 7200, |
| 24 | CreatedAt: time.Now().Unix(), |
| 25 | Scope: "scope:test", |
| 26 | User: &dashboard.User{ |
| 27 | ID: 42, |
| 28 | Email: "user@test.com", |
| 29 | Name: "Test User", |
| 30 | }, |
| 31 | } |
| 32 | |
| 33 | require.NoError(t, SaveToken(resp)) |
| 34 | |
| 35 | stored := LoadToken() |
| 36 | require.NotNil(t, stored) |
| 37 | assert.Equal(t, "access-token", stored.AccessToken) |
| 38 | assert.Equal(t, "42", stored.UserID) |
| 39 | assert.Equal(t, "user@test.com", stored.Email) |
| 40 | assert.Equal(t, "Test User", stored.Name) |
| 41 | } |
| 42 | |
| 43 | func TestSaveToken_WithoutUserLeavesIdentityEmpty(t *testing.T) { |
| 44 | keyring.MockInit() |