dendrite.nvim/test/test_integration/main_test.go

59 lines
982 B
Go

package integration_test
import (
"context"
"database/sql"
"encoding/json"
"os"
"testing"
"github.com/KristianJBorgwarth/dendrite.daemon/core/rpc"
"github.com/KristianJBorgwarth/dendrite.daemon/persistence"
)
type TestFixture struct {
Db *sql.DB
DbPath string
TestContext context.Context
}
func NewTestFixture() (*TestFixture, error) {
dbPath := os.TempDir() + "/dendrite_test_vault"
db, err := sql.Open("sqlite", dbPath)
if err != nil {
return nil, err
}
return &TestFixture{
Db: db,
DbPath: dbPath,
TestContext: context.Background(),
}, nil
}
var Fixture, err = NewTestFixture()
func TestMain(m *testing.M) {
err := persistence.InitializeIndex(Fixture.DbPath)
if err != nil {
panic(err)
}
code := m.Run()
os.RemoveAll(Fixture.DbPath)
os.Exit(code)
}
func CreateTestRequest(method string, ID int, params json.RawMessage) *rpc.Request {
return &rpc.Request{
Jsonrpc: "2.0",
ID: &ID,
Method: method,
Params: params,
}
}