Compare commits
3 Commits
73b501c8aa
...
5a586eb67a
| Author | SHA1 | Date | |
|---|---|---|---|
| 5a586eb67a | |||
| 6a945f8f20 | |||
| 39f8c86e8b |
@ -3218,3 +3218,142 @@ func TestResetOthersPin(t *testing.T) {
|
|||||||
|
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestResetValidPin(t *testing.T) {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
fm, err := NewFlagManager(flagsPath)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
flag_valid_pin, _ := fm.GetFlag("flag_valid_pin")
|
||||||
|
|
||||||
|
expectedResult := resource.Result{
|
||||||
|
FlagReset: []uint32{flag_valid_pin},
|
||||||
|
}
|
||||||
|
|
||||||
|
h := &MenuHandlers{
|
||||||
|
flagManager: fm,
|
||||||
|
}
|
||||||
|
|
||||||
|
res, err := h.ResetValidPin(ctx, "reset_valid_pin", []byte(""))
|
||||||
|
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
assert.Equal(t, expectedResult, res)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestResetUnregisteredNumber(t *testing.T) {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
fm, err := NewFlagManager(flagsPath)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
flag_unregistered_number, _ := fm.GetFlag("flag_unregistered_number")
|
||||||
|
|
||||||
|
expectedResult := resource.Result{
|
||||||
|
FlagReset: []uint32{flag_unregistered_number},
|
||||||
|
}
|
||||||
|
|
||||||
|
h := &MenuHandlers{
|
||||||
|
flagManager: fm,
|
||||||
|
}
|
||||||
|
|
||||||
|
res, err := h.ResetUnregisteredNumber(ctx, "reset_unregistered_number", []byte(""))
|
||||||
|
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
assert.Equal(t, expectedResult, res)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestConstructAccountAlias(t *testing.T) {
|
||||||
|
ctx, store := InitializeTestStore(t)
|
||||||
|
sessionId := "session123"
|
||||||
|
mockAccountService := new(mocks.MockAccountService)
|
||||||
|
|
||||||
|
ctx = context.WithValue(ctx, "SessionId", sessionId)
|
||||||
|
|
||||||
|
h := &MenuHandlers{
|
||||||
|
userdataStore: store,
|
||||||
|
accountService: mockAccountService,
|
||||||
|
}
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
firstName string
|
||||||
|
familyName string
|
||||||
|
publicKey string
|
||||||
|
expectedAlias string
|
||||||
|
aliasResponse *models.RequestAliasResult
|
||||||
|
aliasError error
|
||||||
|
expectedError error
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "Valid alias construction",
|
||||||
|
firstName: "John",
|
||||||
|
familyName: "Doe",
|
||||||
|
publicKey: "pubkey123",
|
||||||
|
expectedAlias: "JohnDoeAlias",
|
||||||
|
aliasResponse: &models.RequestAliasResult{Alias: "JohnDoeAlias"},
|
||||||
|
aliasError: nil,
|
||||||
|
expectedError: nil,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Account service fails to return alias",
|
||||||
|
firstName: "Jane",
|
||||||
|
familyName: "Smith",
|
||||||
|
publicKey: "pubkey456",
|
||||||
|
expectedAlias: "",
|
||||||
|
aliasResponse: nil,
|
||||||
|
aliasError: fmt.Errorf("service unavailable"),
|
||||||
|
expectedError: fmt.Errorf("Failed to retrieve alias: service unavailable"),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
if tt.firstName != "" {
|
||||||
|
err := store.WriteEntry(ctx, sessionId, storedb.DATA_FIRST_NAME, []byte(tt.firstName))
|
||||||
|
require.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if tt.familyName != "" {
|
||||||
|
err := store.WriteEntry(ctx, sessionId, storedb.DATA_FAMILY_NAME, []byte(tt.familyName))
|
||||||
|
require.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if tt.publicKey != "" {
|
||||||
|
err := store.WriteEntry(ctx, sessionId, storedb.DATA_PUBLIC_KEY, []byte(tt.publicKey))
|
||||||
|
require.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
aliasInput := fmt.Sprintf("%s%s", tt.firstName, tt.familyName)
|
||||||
|
|
||||||
|
// Mock service behavior
|
||||||
|
mockAccountService.On(
|
||||||
|
"RequestAlias",
|
||||||
|
tt.publicKey,
|
||||||
|
aliasInput,
|
||||||
|
).Return(tt.aliasResponse, tt.aliasError)
|
||||||
|
|
||||||
|
// Call the function under test
|
||||||
|
err := h.constructAccountAlias(ctx)
|
||||||
|
|
||||||
|
// Assertions
|
||||||
|
if tt.expectedError != nil {
|
||||||
|
assert.EqualError(t, err, tt.expectedError.Error())
|
||||||
|
} else {
|
||||||
|
assert.NoError(t, err)
|
||||||
|
if tt.expectedAlias != "" {
|
||||||
|
storedAlias, err := store.ReadEntry(ctx, sessionId, storedb.DATA_ACCOUNT_ALIAS)
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Equal(t, tt.expectedAlias, string(storedAlias))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure mock expectations were met
|
||||||
|
mockAccountService.AssertExpectations(t)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user