docs: reorder & testing

This commit is contained in:
Ilia Denisov
2026-05-07 00:58:53 +03:00
committed by GitHub
parent f446c6a2ac
commit 604fe40bcf
148 changed files with 9150 additions and 2757 deletions
+107
View File
@@ -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()