arche / internal/issues/testing.go

commit 154431fd
 1package issues
 2
 3import (
 4	"database/sql"
 5
 6	_ "github.com/mattn/go-sqlite3"
 7)
 8
 9func OpenForTesting() (*Store, error) {
10	db, err := sql.Open("sqlite3", ":memory:")
11	if err != nil {
12		return nil, err
13	}
14	db.SetMaxOpenConns(1)
15	_, err = db.Exec(`
16CREATE TABLE issue_events (
17    event_id TEXT PRIMARY KEY,
18    issue_id TEXT NOT NULL,
19    hlc_ms   INTEGER NOT NULL,
20    hlc_seq  INTEGER NOT NULL,
21    kind     TEXT NOT NULL,
22    payload  TEXT NOT NULL,
23    author   TEXT NOT NULL DEFAULT '',
24    created  INTEGER NOT NULL
25);
26CREATE INDEX idx_ie_issue ON issue_events(issue_id);
27`)
28	if err != nil {
29		db.Close()
30		return nil, err
31	}
32	return &Store{db: db}, nil
33}
34
35func (s *Store) Close() error { return s.db.Close() }