| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package models
- import (
- "encoding/json"
- "strings"
- "testing"
- "time"
- )
- func TestSessionSyncIndexItemOmitsConcreteContent(t *testing.T) {
- clientID := "client-1"
- updatedAt := time.Date(2026, 7, 26, 12, 30, 0, 123000000, time.UTC)
- session := CelestiaSession{
- ID: "session-1",
- ClientID: &clientID,
- Title: "现场记录",
- StartTime: updatedAt.Add(-time.Hour),
- DurationMs: 3_600_000,
- PhotoCount: 2,
- NoteCount: 3,
- Revision: 7,
- UpdatedAt: updatedAt,
- Events: []TimelineEvent{{ID: "event-1"}},
- Assets: []MediaAsset{{ID: "asset-1"}},
- }
- data, err := json.Marshal(session.SyncIndexItem())
- if err != nil {
- t.Fatalf("marshal sync index item: %v", err)
- }
- payload := string(data)
- if strings.Contains(payload, `"events"`) || strings.Contains(payload, `"assets"`) {
- t.Fatalf("sync index leaked concrete content: %s", payload)
- }
- if !strings.Contains(payload, `"updatedAt":"2026-07-26T12:30:00.123Z"`) {
- t.Fatalf("sync index missing precise updatedAt: %s", payload)
- }
- if !strings.Contains(payload, `"revision":7`) {
- t.Fatalf("sync index missing revision guard: %s", payload)
- }
- }
|