1package notification_test
2
3import (
4 "testing"
5
6 "github.com/charmbracelet/crush/internal/ui/notification"
7 "github.com/stretchr/testify/require"
8)
9
10func TestNoopBackend_Send(t *testing.T) {
11 t.Parallel()
12
13 backend := notification.NoopBackend{}
14 err := backend.Send(notification.Notification{
15 Title: "Test Title",
16 Message: "Test Message",
17 })
18 require.NoError(t, err)
19}
20
21func TestNativeBackend_Send(t *testing.T) {
22 t.Parallel()
23
24 backend := notification.NewNativeBackend(nil)
25
26 var capturedTitle, capturedMessage string
27 var capturedIcon any
28 backend.SetNotifyFunc(func(title, message string, icon any) error {
29 capturedTitle = title
30 capturedMessage = message
31 capturedIcon = icon
32 return nil
33 })
34
35 err := backend.Send(notification.Notification{
36 Title: "Hello",
37 Message: "World",
38 })
39 require.NoError(t, err)
40 require.Equal(t, "Hello", capturedTitle)
41 require.Equal(t, "World", capturedMessage)
42 require.Nil(t, capturedIcon)
43}