mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-06 13:43:09 -06:00
76 lines
1.4 KiB
Go
76 lines
1.4 KiB
Go
package fulltext
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/matrix-org/util"
|
|
)
|
|
|
|
func TestSearch(t *testing.T) {
|
|
// create new index
|
|
dataDir := t.TempDir()
|
|
fts, err := New(dataDir)
|
|
if err != nil {
|
|
t.Fatal("failed to open fulltext index:", err)
|
|
}
|
|
if err = fts.Close(); err != nil {
|
|
t.Fatal("unable to close fulltext index", err)
|
|
}
|
|
|
|
// open existing index
|
|
fts, err = New(dataDir)
|
|
if err != nil {
|
|
t.Fatal("failed to open fulltext index:", err)
|
|
}
|
|
defer fts.Close()
|
|
if fts == nil {
|
|
t.Fatal("fts is nil")
|
|
}
|
|
|
|
// add some data
|
|
e := IndexElement{
|
|
EventID: util.RandomString(16),
|
|
Type: "m.room.message",
|
|
RoomID: util.RandomString(8),
|
|
Content: "lorem ipsum",
|
|
}
|
|
|
|
if err = fts.IndexElement(e); err != nil {
|
|
t.Fatal("failed to index element", err)
|
|
}
|
|
|
|
eventID := util.RandomString(16)
|
|
e = IndexElement{
|
|
EventID: eventID,
|
|
Type: "m.room.message",
|
|
RoomID: util.RandomString(8),
|
|
Content: "lorem ipsum",
|
|
}
|
|
|
|
if err = fts.IndexElement(e); err != nil {
|
|
t.Fatal("failed to index element", err)
|
|
}
|
|
|
|
// search data
|
|
res, err := fts.Search("lorem")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if res.Total != 2 {
|
|
t.Fatalf("expected %d results, got %d", 2, res.Total)
|
|
}
|
|
|
|
// remove element
|
|
if err = fts.DeleteElement(eventID); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
res, err = fts.Search("lorem")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if res.Total != 1 {
|
|
t.Fatalf("expected %d results, got %d", 2, res.Total)
|
|
}
|
|
}
|