| 1234567891011121314151617181920212223242526272829 |
- //go:build unit
- package repository
- import (
- "testing"
- dbent "github.com/Wei-Shaw/sub2api/ent"
- "github.com/Wei-Shaw/sub2api/internal/service"
- "github.com/stretchr/testify/require"
- )
- func TestChannelMonitorDuplicateOperationMetadataStaysOutOfRuntimeHeaders(t *testing.T) {
- monitor := &service.ChannelMonitor{
- ExtraHeaders: map[string]string{"User-Agent": "Codex"},
- DuplicateOperationID: "operation-digest",
- }
- persisted := channelMonitorHeadersForPersistence(monitor)
- require.Equal(t, "operation-digest", persisted[service.ChannelMonitorDuplicateOperationIDMetadataKey])
- require.Equal(t, "Codex", persisted["User-Agent"])
- require.NotContains(t, monitor.ExtraHeaders, service.ChannelMonitorDuplicateOperationIDMetadataKey)
- restored := entToServiceMonitor(&dbent.ChannelMonitor{ExtraHeaders: persisted})
- require.Equal(t, "operation-digest", restored.DuplicateOperationID)
- require.Equal(t, map[string]string{"User-Agent": "Codex"}, restored.ExtraHeaders)
- require.NotContains(t, restored.ExtraHeaders, service.ChannelMonitorDuplicateOperationIDMetadataKey)
- require.Equal(t, "operation-digest", persisted[service.ChannelMonitorDuplicateOperationIDMetadataKey], "decoding must not mutate the ent row")
- }
|