intake/core/channel_test.go

71 lines
2.2 KiB
Go
Raw Normal View History

2025-02-01 01:23:41 +00:00
package core
import "testing"
func TestChannel(t *testing.T) {
db := EphemeralDb(t)
if err := AddSource(db, "one"); err != nil {
t.Fatalf("failed to add source: %v", err)
}
if err := AddSource(db, "two"); err != nil {
t.Fatalf("failed to add source: %v", err)
}
// Add sources to channel
if err := AddSourceToChannel(db, "channel", "one"); err != nil {
t.Fatalf("failed to add source to channel: %v", err)
}
if err := AddSourceToChannel(db, "channel", "two"); err != nil {
t.Fatalf("failed to add source to channel: %v", err)
}
// Both sources are in the channel
sources, err := GetSourcesInChannel(db)
if err != nil {
t.Fatalf("failed to get sources in channel: %v", err)
}
if len(sources["channel"]) != 2 || sources["channel"][0] != "one" || sources["channel"][1] != "two" {
t.Fatalf("expected two sources, got %d: %v", len(sources), sources)
}
// Get sources in channel after deletion
if err := DeleteSourceFromChannel(db, "channel", "one"); err != nil {
t.Fatalf("failed to delete source from channel: %v", err)
}
sources, err = GetSourcesInChannel(db)
if err != nil {
t.Fatalf("failed to get sources in channel: %v", err)
}
if len(sources) != 1 || sources["channel"][0] != "two" {
t.Fatalf("unexpected sources in channel after deletion: %v", sources)
}
if err := AddSourceToChannel(db, "channel", "one"); err != nil {
t.Fatalf("failed to add source to channel: %v", err)
}
// Items on both sources appear in the channel
if err := AddItems(db, []Item{
{"one", "a", 0, true, "", "", "", "", 0, nil},
{"two", "b", 0, true, "", "", "", "", 0, nil},
}); err != nil {
t.Fatalf("failed to add items to one: %v", err)
}
if _, err := DeactivateItem(db, "one", "a"); err != nil {
t.Fatalf("failed to deactivate item: %v", err)
}
items, err := GetAllItemsForChannel(db, "channel")
if err != nil {
t.Fatalf("failed to get all items in channel: %v", err)
}
if len(items) != 2 || items[0].Id != "a" || items[1].Id != "b" {
t.Fatalf("expected two items, got %d: %v", len(items), items)
}
items, err = GetActiveItemsForChannel(db, "channel")
if err != nil {
t.Fatalf("failed to get all items in channel: %v", err)
}
if len(items) != 1 || items[0].Id != "b" {
t.Fatalf("expected one item, got %d: %v", len(items), items)
}
}