docs: reorder & testing
This commit is contained in:
@@ -61,6 +61,113 @@ func TestUserRequestPayloadRoundTrips(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestUserSessionsPayloadRoundTrips(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
emptyList, err := ListMySessionsRequestToPayload(&usermodel.ListMySessionsRequest{})
|
||||
if err != nil {
|
||||
t.Fatalf("encode list-my-sessions request: %v", err)
|
||||
}
|
||||
if _, err := PayloadToListMySessionsRequest(emptyList); err != nil {
|
||||
t.Fatalf("decode list-my-sessions request: %v", err)
|
||||
}
|
||||
|
||||
revokeAll, err := RevokeAllMySessionsRequestToPayload(&usermodel.RevokeAllMySessionsRequest{})
|
||||
if err != nil {
|
||||
t.Fatalf("encode revoke-all-my-sessions request: %v", err)
|
||||
}
|
||||
if _, err := PayloadToRevokeAllMySessionsRequest(revokeAll); err != nil {
|
||||
t.Fatalf("decode revoke-all-my-sessions request: %v", err)
|
||||
}
|
||||
|
||||
revokeReq := &usermodel.RevokeMySessionRequest{DeviceSessionID: "device-7c8f"}
|
||||
revokePayload, err := RevokeMySessionRequestToPayload(revokeReq)
|
||||
if err != nil {
|
||||
t.Fatalf("encode revoke-my-session request: %v", err)
|
||||
}
|
||||
revokeDecoded, err := PayloadToRevokeMySessionRequest(revokePayload)
|
||||
if err != nil {
|
||||
t.Fatalf("decode revoke-my-session request: %v", err)
|
||||
}
|
||||
if !reflect.DeepEqual(revokeReq, revokeDecoded) {
|
||||
t.Fatalf("revoke-my-session request mismatch\nsource: %#v\ndecoded:%#v", revokeReq, revokeDecoded)
|
||||
}
|
||||
|
||||
now := time.Date(2026, time.April, 9, 10, 0, 0, 0, time.UTC)
|
||||
revokedAt := now.Add(time.Minute)
|
||||
lastSeenAt := now.Add(time.Second)
|
||||
|
||||
listResp := &usermodel.ListMySessionsResponse{
|
||||
Items: []usermodel.DeviceSession{
|
||||
{
|
||||
DeviceSessionID: "ds-1",
|
||||
UserID: "user-1",
|
||||
Status: "active",
|
||||
ClientPublicKey: "AAAAAAAAAAA=",
|
||||
CreatedAt: now,
|
||||
LastSeenAt: &lastSeenAt,
|
||||
},
|
||||
{
|
||||
DeviceSessionID: "ds-2",
|
||||
UserID: "user-1",
|
||||
Status: "revoked",
|
||||
CreatedAt: now,
|
||||
RevokedAt: &revokedAt,
|
||||
},
|
||||
},
|
||||
}
|
||||
listPayload, err := ListMySessionsResponseToPayload(listResp)
|
||||
if err != nil {
|
||||
t.Fatalf("encode list-my-sessions response: %v", err)
|
||||
}
|
||||
listDecoded, err := PayloadToListMySessionsResponse(listPayload)
|
||||
if err != nil {
|
||||
t.Fatalf("decode list-my-sessions response: %v", err)
|
||||
}
|
||||
if !reflect.DeepEqual(listResp, listDecoded) {
|
||||
t.Fatalf("list-my-sessions response mismatch\nsource: %#v\ndecoded:%#v", listResp, listDecoded)
|
||||
}
|
||||
|
||||
revokeResp := &usermodel.RevokeMySessionResponse{
|
||||
Session: usermodel.DeviceSession{
|
||||
DeviceSessionID: "ds-1",
|
||||
UserID: "user-1",
|
||||
Status: "revoked",
|
||||
CreatedAt: now,
|
||||
RevokedAt: &revokedAt,
|
||||
},
|
||||
}
|
||||
revokeRespPayload, err := RevokeMySessionResponseToPayload(revokeResp)
|
||||
if err != nil {
|
||||
t.Fatalf("encode revoke-my-session response: %v", err)
|
||||
}
|
||||
revokeRespDecoded, err := PayloadToRevokeMySessionResponse(revokeRespPayload)
|
||||
if err != nil {
|
||||
t.Fatalf("decode revoke-my-session response: %v", err)
|
||||
}
|
||||
if !reflect.DeepEqual(revokeResp, revokeRespDecoded) {
|
||||
t.Fatalf("revoke-my-session response mismatch\nsource: %#v\ndecoded:%#v", revokeResp, revokeRespDecoded)
|
||||
}
|
||||
|
||||
revokeAllResp := &usermodel.RevokeAllMySessionsResponse{
|
||||
Summary: usermodel.DeviceSessionRevocationSummary{
|
||||
UserID: "user-1",
|
||||
RevokedCount: 3,
|
||||
},
|
||||
}
|
||||
revokeAllPayload, err := RevokeAllMySessionsResponseToPayload(revokeAllResp)
|
||||
if err != nil {
|
||||
t.Fatalf("encode revoke-all-my-sessions response: %v", err)
|
||||
}
|
||||
revokeAllDecoded, err := PayloadToRevokeAllMySessionsResponse(revokeAllPayload)
|
||||
if err != nil {
|
||||
t.Fatalf("decode revoke-all-my-sessions response: %v", err)
|
||||
}
|
||||
if !reflect.DeepEqual(revokeAllResp, revokeAllDecoded) {
|
||||
t.Fatalf("revoke-all-my-sessions response mismatch\nsource: %#v\ndecoded:%#v", revokeAllResp, revokeAllDecoded)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAccountResponsePayloadRoundTrip(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user