aboutsummaryrefslogblamecommitdiffstats
path: root/cache/filter_test.go
blob: 2c7fabc0e9951acec8b22e765a8aa504831268bb (plain) (tree)





























                                                                                                      
                                                                       


                  
package cache

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestTitleFilter(t *testing.T) {
	tests := []struct {
		name  string
		title string
		query string
		match bool
	}{
		{name: "complete match", title: "hello world", query: "hello world", match: true},
		{name: "partial match", title: "hello world", query: "hello", match: true},
		{name: "no match", title: "hello world", query: "foo", match: false},
		{name: "cased title", title: "Hello World", query: "hello", match: true},
		{name: "cased query", title: "hello world", query: "Hello", match: true},

		// Those following tests should work eventually but are left for a future iteration.

		// {name: "cased accents", title: "ÑOÑO", query: "ñoño", match: true},
		// {name: "natural language matching", title: "Århus", query: "Aarhus", match: true},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			filter := TitleFilter(tt.query)
			excerpt := &BugExcerpt{Title: tt.title}
			assert.Equal(t, tt.match, filter(excerpt, nil))
		})
	}
}