notification_test.go 945 B

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