alfred/test-updates #15
| @ -3401,3 +3401,88 @@ func TestInsertProfileItems(t *testing.T) { | |||||||
| 		assert.Equal(t, profileItems[i], string(storedValue)) | 		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