feat: backend service
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
package integration_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"galaxy/integration/testenv"
|
||||
usermodel "galaxy/model/user"
|
||||
"galaxy/transcoder"
|
||||
)
|
||||
|
||||
// TestUserProfileUpdate exercises `user.profile.update` over the
|
||||
// authenticated gateway gRPC surface and verifies that the new
|
||||
// display_name is reflected by a subsequent `user.account.get`.
|
||||
func TestUserProfileUpdate(t *testing.T) {
|
||||
plat := testenv.Bootstrap(t, testenv.BootstrapOptions{})
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)
|
||||
defer cancel()
|
||||
|
||||
sess := testenv.RegisterSession(t, plat, "pilot+profile@example.com")
|
||||
gw, err := sess.DialAuthenticated(ctx, plat)
|
||||
if err != nil {
|
||||
t.Fatalf("dial: %v", err)
|
||||
}
|
||||
defer gw.Close()
|
||||
|
||||
const newName = "Captain Pilot"
|
||||
updatePayload, err := transcoder.UpdateMyProfileRequestToPayload(&usermodel.UpdateMyProfileRequest{
|
||||
DisplayName: newName,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("encode update payload: %v", err)
|
||||
}
|
||||
res, err := gw.Execute(ctx, usermodel.MessageTypeUpdateMyProfile, updatePayload, testenv.ExecuteOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("execute update profile: %v", err)
|
||||
}
|
||||
if res.ResultCode != "ok" {
|
||||
t.Fatalf("update result_code = %q, want ok", res.ResultCode)
|
||||
}
|
||||
updated, err := transcoder.PayloadToAccountResponse(res.PayloadBytes)
|
||||
if err != nil {
|
||||
t.Fatalf("decode update response: %v", err)
|
||||
}
|
||||
if updated.Account.DisplayName != newName {
|
||||
t.Fatalf("update returned display_name = %q, want %q", updated.Account.DisplayName, newName)
|
||||
}
|
||||
|
||||
// Re-fetch the account to confirm persistence.
|
||||
getPayload, err := transcoder.GetMyAccountRequestToPayload(&usermodel.GetMyAccountRequest{})
|
||||
if err != nil {
|
||||
t.Fatalf("encode get payload: %v", err)
|
||||
}
|
||||
gres, err := gw.Execute(ctx, usermodel.MessageTypeGetMyAccount, getPayload, testenv.ExecuteOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("execute get-account: %v", err)
|
||||
}
|
||||
got, err := transcoder.PayloadToAccountResponse(gres.PayloadBytes)
|
||||
if err != nil {
|
||||
t.Fatalf("decode get response: %v", err)
|
||||
}
|
||||
if got.Account.DisplayName != newName {
|
||||
t.Fatalf("re-fetched display_name = %q, want %q", got.Account.DisplayName, newName)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user