59 lines
982 B
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,
|
|
}
|
|
}
|
|
|
|
|