Skip to content

Commit cff5db3

Browse files
committed
gitquery: add integration tests skeleton
Signed-off-by: Miguel Molina <[email protected]>
1 parent 926707a commit cff5db3

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

integration_test.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package gitquery_test
2+
3+
import (
4+
"context"
5+
"testing"
6+
7+
"github.com/src-d/gitquery"
8+
"github.com/src-d/gitquery/internal/function"
9+
"github.com/stretchr/testify/require"
10+
fixtures "gopkg.in/src-d/go-git-fixtures.v3"
11+
sqle "gopkg.in/src-d/go-mysql-server.v0"
12+
"gopkg.in/src-d/go-mysql-server.v0/sql"
13+
)
14+
15+
func TestIntegration(t *testing.T) {
16+
engine := sqle.New()
17+
require.NoError(t, fixtures.Init())
18+
defer func() {
19+
require.NoError(t, fixtures.Clean())
20+
}()
21+
22+
path := fixtures.ByTag("worktree").One().Worktree().Root()
23+
pool := gitquery.NewRepositoryPool()
24+
_, err := pool.AddGit(path)
25+
require.NoError(t, err)
26+
27+
engine.AddDatabase(gitquery.NewDatabase("foo", &pool))
28+
function.Register(engine.Catalog)
29+
30+
testCases := []struct {
31+
query string
32+
result [][]interface{}
33+
}{
34+
// TODO: add tests
35+
// {"SELECT 1 FROM repositories", [][]interface{}{{int64(1)}}},
36+
}
37+
38+
for _, tt := range testCases {
39+
t.Run(tt.query, func(t *testing.T) {
40+
require := require.New(t)
41+
session := gitquery.NewSession(context.TODO(), &pool)
42+
_, iter, err := engine.Query(session, tt.query)
43+
require.NoError(err)
44+
rows, err := sql.RowIterToRows(iter)
45+
require.NoError(err)
46+
require.Equal(tt.result, rows)
47+
})
48+
}
49+
}

0 commit comments

Comments
 (0)