Compare commits
2 Commits
5a586eb67a
...
ff3c597158
Author | SHA1 | Date | |
---|---|---|---|
ff3c597158 | |||
09c5f3a14c |
@ -19,6 +19,7 @@ import (
|
||||
"git.grassecon.net/grassrootseconomics/sarafu-api/models"
|
||||
"git.grassecon.net/grassrootseconomics/sarafu-api/testutil/mocks"
|
||||
"git.grassecon.net/grassrootseconomics/sarafu-api/testutil/testservice"
|
||||
"git.grassecon.net/grassrootseconomics/sarafu-vise/profile"
|
||||
"git.grassecon.net/grassrootseconomics/sarafu-vise/store"
|
||||
storedb "git.grassecon.net/grassrootseconomics/sarafu-vise/store/db"
|
||||
|
||||
@ -3357,3 +3358,131 @@ func TestConstructAccountAlias(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestInsertProfileItems(t *testing.T) {
|
||||
ctx, store := InitializeTestStore(t)
|
||||
sessionId := "session123"
|
||||
mockState := state.NewState(128)
|
||||
|
||||
fm, err := NewFlagManager(flagsPath)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
profileDataKeys := []storedb.DataTyp{
|
||||
storedb.DATA_FIRST_NAME,
|
||||
storedb.DATA_FAMILY_NAME,
|
||||
storedb.DATA_GENDER,
|
||||
storedb.DATA_YOB,
|
||||
storedb.DATA_LOCATION,
|
||||
storedb.DATA_OFFERINGS,
|
||||
}
|
||||
|
||||
profileItems := []string{"John", "Doe", "Male", "1990", "Nairobi", "Software"}
|
||||
|
||||
h := &MenuHandlers{
|
||||
userdataStore: store,
|
||||
flagManager: fm,
|
||||
st: mockState,
|
||||
profile: &profile.Profile{
|
||||
ProfileItems: profileItems,
|
||||
Max: 6,
|
||||
},
|
||||
}
|
||||
|
||||
res := &resource.Result{}
|
||||
err = h.insertProfileItems(ctx, sessionId, res)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Loop through profileDataKeys to validate stored values
|
||||
for i, key := range profileDataKeys {
|
||||
storedValue, err := store.ReadEntry(ctx, sessionId, key)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, profileItems[i], string(storedValue))
|
||||
}
|
||||
}
|
||||
|
||||
func TestUpdateAllProfileItems(t *testing.T) {
|
||||
ctx, store := InitializeTestStore(t)
|
||||
sessionId := "session123"
|
||||
publicKey := "0X13242618721"
|
||||
|
||||
ctx = context.WithValue(ctx, "SessionId", sessionId)
|
||||
|
||||
mockState := state.NewState(128)
|
||||
mockAccountService := new(mocks.MockAccountService)
|
||||
|
||||
fm, err := NewFlagManager(flagsPath)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
flag_firstname_set, _ := fm.GetFlag("flag_firstname_set")
|
||||
flag_familyname_set, _ := fm.GetFlag("flag_familyname_set")
|
||||
flag_yob_set, _ := fm.GetFlag("flag_yob_set")
|
||||
flag_gender_set, _ := fm.GetFlag("flag_gender_set")
|
||||
flag_location_set, _ := fm.GetFlag("flag_location_set")
|
||||
flag_offerings_set, _ := fm.GetFlag("flag_offerings_set")
|
||||
|
||||
profileDataKeys := []storedb.DataTyp{
|
||||
storedb.DATA_FIRST_NAME,
|
||||
storedb.DATA_FAMILY_NAME,
|
||||
storedb.DATA_GENDER,
|
||||
storedb.DATA_YOB,
|
||||
storedb.DATA_LOCATION,
|
||||
storedb.DATA_OFFERINGS,
|
||||
}
|
||||
|
||||
profileItems := []string{"John", "Doe", "Male", "1990", "Nairobi", "Software"}
|
||||
|
||||
expectedResult := resource.Result{
|
||||
FlagSet: []uint32{
|
||||
flag_firstname_set,
|
||||
flag_familyname_set,
|
||||
flag_yob_set,
|
||||
flag_gender_set,
|
||||
flag_location_set,
|
||||
flag_offerings_set,
|
||||
},
|
||||
}
|
||||
|
||||
h := &MenuHandlers{
|
||||
userdataStore: store,
|
||||
flagManager: fm,
|
||||
st: mockState,
|
||||
accountService: mockAccountService,
|
||||
profile: &profile.Profile{
|
||||
ProfileItems: profileItems,
|
||||
Max: 6,
|
||||
},
|
||||
}
|
||||
|
||||
err = store.WriteEntry(ctx, sessionId, storedb.DATA_PUBLIC_KEY, []byte(publicKey))
|
||||
require.NoError(t, err)
|
||||
|
||||
aliasInput := fmt.Sprintf("%s%s", profileItems[0], profileItems[1])
|
||||
|
||||
// Mock the account alias response
|
||||
mockAccountService.On(
|
||||
"RequestAlias",
|
||||
publicKey,
|
||||
aliasInput,
|
||||
).Return(&models.RequestAliasResult{Alias: "JohnDoe"}, nil)
|
||||
|
||||
// Call the function under test
|
||||
res, err := h.UpdateAllProfileItems(ctx, "symbol", nil)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Loop through profileDataKeys to validate stored values
|
||||
for i, key := range profileDataKeys {
|
||||
storedValue, err := store.ReadEntry(ctx, sessionId, key)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, profileItems[i], string(storedValue))
|
||||
}
|
||||
|
||||
// Validate alias storage
|
||||
storedAlias, err := store.ReadEntry(ctx, sessionId, storedb.DATA_ACCOUNT_ALIAS)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "JohnDoe", string(storedAlias))
|
||||
assert.Equal(t, expectedResult, res)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user