Files
new-api-custom/dto/channel_constraints_test.go
T
Codex bb7968b612
Publish Docker image (Multi-arch) / Build & push (amd64) (push) Failing after 9m20s
Release (Linux, macOS, Windows) / Linux Release (push) Failing after 55m7s
Publish Docker image (Multi-arch) / Build & push (arm64) (push) Canceled after 0s
Release (Linux, macOS, Windows) / macOS Release (push) Canceled after 0s
Release (Linux, macOS, Windows) / Windows Release (push) Canceled after 0s
Publish Docker image (Multi-arch) / Create multi-arch manifests (push) Canceled after 0s
feat: publish v1.0.0-rc.36-custom.1
2026-09-11 05:07:48 +08:00

47 lines
1.8 KiB
Go

package dto
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestResolvedPinPriorityAndMerge(t *testing.T) {
t.Run("token pin beats origin pin on a different channel", func(t *testing.T) {
constraints := &ChannelConstraints{}
constraints.AddPin(ChannelPin{ChannelId: 10, Source: PinSourceOriginTask, Rank: PinRankOriginTask, RetryMode: PinRetrySameChannel})
constraints.AddPin(ChannelPin{ChannelId: 1, Source: PinSourceToken, Rank: PinRankToken, RetryMode: PinRetrySingleAttempt})
pin, found, overridden := constraints.ResolvedPin()
require.True(t, found)
assert.Equal(t, 1, pin.ChannelId)
assert.Equal(t, PinSourceToken, pin.Source)
assert.Equal(t, PinRetrySingleAttempt, pin.RetryMode)
require.Len(t, overridden, 1)
assert.Equal(t, PinSourceOriginTask, overridden[0].Source)
assert.Equal(t, 10, overridden[0].ChannelId)
})
t.Run("same channel pins merge to the stricter retry mode", func(t *testing.T) {
constraints := &ChannelConstraints{}
constraints.AddPin(ChannelPin{ChannelId: 7, Source: PinSourceOriginTask, Rank: PinRankOriginTask, RetryMode: PinRetrySameChannel})
constraints.AddPin(ChannelPin{ChannelId: 7, Source: PinSourceToken, Rank: PinRankToken, RetryMode: PinRetrySingleAttempt})
pin, found, overridden := constraints.ResolvedPin()
require.True(t, found)
assert.Equal(t, 7, pin.ChannelId)
assert.Equal(t, PinSourceToken, pin.Source)
assert.Equal(t, PinRetrySingleAttempt, pin.RetryMode)
assert.Empty(t, overridden)
assert.True(t, constraints.SuppressesRetry())
})
t.Run("empty set has no pin", func(t *testing.T) {
pin, found, overridden := (*ChannelConstraints)(nil).ResolvedPin()
assert.False(t, found)
assert.Zero(t, pin.ChannelId)
assert.Nil(t, overridden)
})
}