package notification import ( "testing" "github.com/stretchr/testify/assert" ) func TestChannelIDsDifference(t *testing.T) { tests := []struct { Name string New []string Old []string ExpectedAdditions []string ExpectedRemovals []string }{ { Name: "No change", New: []string{ "channel-1", "channel-2", }, Old: []string{ "channel-2", "channel-1", }, }, { Name: "Add new channel", New: []string{ "channel-1", "channel-2", "channel-3", }, Old: []string{ "channel-2", "channel-1", }, ExpectedAdditions: []string{ "channel-3", }, }, { Name: "Remove old channel", New: []string{ "channel-2", }, Old: []string{ "channel-2", "channel-1", }, ExpectedRemovals: []string{ "channel-1", }, }, { Name: "Add and remove channels", New: []string{ "channel-1", "channel-3", }, Old: []string{ "channel-2", "channel-1", }, ExpectedAdditions: []string{ "channel-3", }, ExpectedRemovals: []string{ "channel-2", }, }, } for _, test := range tests { t.Run(test.Name, func(t *testing.T) { diff := NewChannelIDsDifference(test.New, test.Old) assert.ElementsMatch(t, test.ExpectedAdditions, diff.Additions()) assert.ElementsMatch(t, test.ExpectedRemovals, diff.Removals()) }) } }