| 1 | package daemon |
| 2 | |
| 3 | import ( |
| 4 | "testing" |
| 5 | |
| 6 | "github.com/FelineStateMachine/tinyrelay/internal/event" |
| 7 | ) |
| 8 | |
| 9 | func TestCollaborationTitleAndSearch(t *testing.T) { |
| 10 | cases := []struct { |
| 11 | name string |
| 12 | event event.Event |
| 13 | want string |
| 14 | }{ |
| 15 | {name: "subject tag" , event: event.Event{Tags: [][]string{{"subject" , "Fix login" }}, Content: "details" }, want: "Fix login" }, |
| 16 | {name: "json title" , event: event.Event{Content: `{"title":"Add files"}` }, want: "Add files" }, |
| 17 | {name: "first line" , event: event.Event{Content: "Improve docs\nMore details" }, want: "Improve docs" }, |
| 18 | } |
| 19 | for _, tc := range cases { |
| 20 | t.Run(tc.name, func(t *testing.T) { |
| 21 | if got := collaborationTitle(tc.event); got != tc.want { |
| 22 | t.Fatalf("title = %q, want %q" , got, tc.want) |
| 23 | } |
| 24 | }) |
| 25 | } |
| 26 | if !collaborationMatches(event.Event{Tags: [][]string{{"t" , "security" }}, Content: "please review" }, "SEC" ) { |
| 27 | t.Fatal("label search did not match" ) |
| 28 | } |
| 29 | } |
| 30 | |
| 31 | func TestStatusFromEventsUsesNewestEvent(t *testing.T) { |
| 32 | rows := []event.Event{{ID: "b" , Kind: 1630, CreatedAt: 10}, {ID: "a" , Kind: 1632, CreatedAt: 11}, {ID: "c" , Kind: 1633, CreatedAt: 11}} |
| 33 | if got := statusFromEvents(event.Event{}, rows); got != "closed" { |
| 34 | t.Fatalf("status = %q, want closed" , got) |
| 35 | } |
| 36 | } |