package deliberi

import (
	"reflect"
	"testing"
)

func TestExtractMentionHandles(t *testing.T) {
	got := extractMentionHandles("hey @bob.tngl.sh and @carol.tngl.sh, thanks!")
	want := []string{"bob.tngl.sh", "carol.tngl.sh"}
	if !reflect.DeepEqual(got, want) {
		t.Fatalf("got %v, want %v", got, want)
	}
}

func TestExtractMentionHandlesDedupes(t *testing.T) {
	got := extractMentionHandles("@bob.tngl.sh ping @bob.tngl.sh again")
	want := []string{"bob.tngl.sh"}
	if !reflect.DeepEqual(got, want) {
		t.Fatalf("got %v, want %v", got, want)
	}
}

func TestExtractMentionHandlesNone(t *testing.T) {
	if got := extractMentionHandles("no mentions in this body"); got != nil {
		t.Fatalf("got %v, want nil", got)
	}
}

func TestExtractMentionHandlesEmptyBody(t *testing.T) {
	if got := extractMentionHandles(""); got != nil {
		t.Fatalf("got %v, want nil", got)
	}
}
