notification_test.go

 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}