package notification_test

import (
	"testing"

	"git.secluded.site/crush/internal/ui/notification"
	"github.com/stretchr/testify/require"
)

func TestNoopBackend_Send(t *testing.T) {
	t.Parallel()

	backend := notification.NoopBackend{}
	err := backend.Send(notification.Notification{
		Title:   "Test Title",
		Message: "Test Message",
	})
	require.NoError(t, err)
}

func TestNativeBackend_Send(t *testing.T) {
	t.Parallel()

	backend := notification.NewNativeBackend(nil)

	var capturedTitle, capturedMessage string
	var capturedIcon any
	backend.SetNotifyFunc(func(title, message string, icon any) error {
		capturedTitle = title
		capturedMessage = message
		capturedIcon = icon
		return nil
	})

	err := backend.Send(notification.Notification{
		Title:   "Hello",
		Message: "World",
	})
	require.NoError(t, err)
	require.Equal(t, "Hello", capturedTitle)
	require.Equal(t, "World", capturedMessage)
	require.Nil(t, capturedIcon)
}
