package updatehistory import ( "testing" "time" "uuid" "gitgud.io/mike/mpv-manager/pkg/version" "github.com/stretchr/testify/assert" ) func TestRecordFromOutcomePreservesOriginAndTerminalMeaning(t *testing.T) { now := time.Now().UTC() originID := uuid.New().String() record := recordFromOutcome(&version.SelfUpdateOutcome{ TransactionID: uuid.NewV7().String(), OriginJobID: originID, State: version.UpdateTransactionRolledBack, Version: "1.3.0", Error: "health check failed", CompletedAt: now, Targets: []version.UpdateTarget{{Role: "primary", Outcome: "rolled_back"}}, }) assert.Equal(t, originID, record.ID) assert.Equal(t, "error", record.Status) assert.Equal(t, string(version.UpdateTransactionRolledBack), record.Phase) assert.Contains(t, record.Message, "rolled back") assert.Equal(t, "health check failed", record.Error) assert.Len(t, record.Output, 2) }