Skip to content

Commit 0b891b1

Browse files
authored
Merge pull request #69 from carlosms/issue-32-fixes
Small fixes for unit tests
2 parents b0f881f + 0eb82f4 commit 0b891b1

File tree

5 files changed

+58
-58
lines changed

5 files changed

+58
-58
lines changed
File renamed without changes.

server/handler/common_unit_test.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package handler
2+
3+
import (
4+
"net/http"
5+
6+
"github.com/src-d/gitbase-playground/server/service"
7+
sqlmock "gopkg.in/DATA-DOG/go-sqlmock.v1"
8+
9+
"github.com/pressly/lg"
10+
"github.com/sirupsen/logrus"
11+
"github.com/stretchr/testify/suite"
12+
)
13+
14+
type HandlerUnitSuite struct {
15+
suite.Suite
16+
db service.SQLDB
17+
mock sqlmock.Sqlmock
18+
handler http.Handler
19+
logger *logrus.Logger
20+
requestProcessFunc func(db service.SQLDB) RequestProcessFunc
21+
IsIntegration bool
22+
}
23+
24+
func (suite *HandlerUnitSuite) SetupSuite() {
25+
// logger
26+
suite.logger = logrus.New()
27+
suite.logger.SetLevel(logrus.FatalLevel)
28+
}
29+
30+
func (suite *HandlerUnitSuite) SetupTest() {
31+
var err error
32+
suite.db, suite.mock, err = sqlmock.New()
33+
if err != nil {
34+
suite.T().Fatalf("failed to initialize the mock DB. '%s'", err)
35+
}
36+
37+
h := APIHandlerFunc(suite.requestProcessFunc(suite.db))
38+
suite.handler = lg.RequestLogger(suite.logger)(h)
39+
}
40+
41+
func (suite *HandlerUnitSuite) TearDownTest() {
42+
suite.db.Close()
43+
}

server/handler/query.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,14 +157,15 @@ func columnsInfo(rows *sql.Rows) ([]string, []string, error) {
157157
return names, typesStr, nil
158158
}
159159

160+
var noCommentsRegexp = regexp.MustCompile(`\/\*(?s:.)*?\*\/`)
161+
160162
// addLimit adds LIMIT to the query if it's a SELECT, avoiding '; limit'
161163
func addLimit(query string, limit int) string {
162164
if limit <= 0 {
163165
return query
164166
}
165167

166-
re := regexp.MustCompile(`\/\*(?s:.)*?\*\/`)
167-
noComments := re.ReplaceAllLiteralString(query, "")
168+
noComments := noCommentsRegexp.ReplaceAllLiteralString(query, "")
168169

169170
query = strings.TrimRight(strings.TrimSpace(noComments), ";")
170171
if strings.HasPrefix(strings.ToUpper(query), "SELECT") {

server/handler/query_test.go

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,44 +7,23 @@ import (
77
"strings"
88
"testing"
99

10-
"github.com/pressly/lg"
11-
"github.com/sirupsen/logrus"
12-
"github.com/src-d/gitbase-playground/server/service"
1310
"github.com/stretchr/testify/assert"
1411
"github.com/stretchr/testify/suite"
1512
"gopkg.in/DATA-DOG/go-sqlmock.v1"
1613
)
1714

1815
type QuerySuite struct {
19-
suite.Suite
20-
db service.SQLDB
21-
mock sqlmock.Sqlmock
22-
handler http.Handler
23-
}
24-
25-
func (suite *QuerySuite) SetupTest() {
26-
var err error
27-
suite.db, suite.mock, err = sqlmock.New()
28-
if err != nil {
29-
suite.T().Fatalf("failed to initialize the mock DB. '%s'", err)
30-
}
31-
32-
logger := logrus.New()
33-
logger.SetLevel(logrus.FatalLevel)
34-
35-
h := APIHandlerFunc(Query(suite.db))
36-
suite.handler = lg.RequestLogger(logger)(h)
37-
}
38-
39-
func (suite *QuerySuite) TearDownTest() {
40-
suite.db.Close()
16+
HandlerUnitSuite
4117
}
4218

4319
// Tests
4420
// -----------------------------------------------------------------------------
4521

4622
func TestQuerySuite(t *testing.T) {
47-
suite.Run(t, new(QuerySuite))
23+
s := new(HandlerUnitSuite)
24+
s.requestProcessFunc = Query
25+
26+
suite.Run(t, s)
4827
}
4928

5029
func (suite *QuerySuite) TestAddLimit() {

server/handler/schema_test.go

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,34 @@
1-
package handler_test
1+
package handler
22

33
import (
44
"net/http"
55
"net/http/httptest"
66
"testing"
77

8-
"github.com/pressly/lg"
9-
"github.com/sirupsen/logrus"
10-
"github.com/src-d/gitbase-playground/server/handler"
11-
"github.com/src-d/gitbase-playground/server/service"
12-
138
"github.com/stretchr/testify/suite"
149
sqlmock "gopkg.in/DATA-DOG/go-sqlmock.v1"
1510
)
1611

1712
type SchemaSuite struct {
18-
suite.Suite
19-
db service.SQLDB
20-
mock sqlmock.Sqlmock
21-
handler http.Handler
22-
}
23-
24-
func (suite *SchemaSuite) SetupTest() {
25-
var err error
26-
suite.db, suite.mock, err = sqlmock.New()
27-
if err != nil {
28-
suite.T().Fatalf("failed to initialize the mock DB. '%s'", err)
29-
}
30-
31-
logger := logrus.New()
32-
logger.SetLevel(logrus.FatalLevel)
33-
34-
h := handler.APIHandlerFunc(handler.Schema(suite.db))
35-
suite.handler = lg.RequestLogger(logger)(h)
36-
}
37-
38-
func (suite *SchemaSuite) TearDownTest() {
39-
suite.db.Close()
13+
HandlerUnitSuite
4014
}
4115

4216
// Tests
4317
// -----------------------------------------------------------------------------
4418

4519
func TestSchemaSuite(t *testing.T) {
46-
suite.Run(t, new(SchemaSuite))
20+
s := new(SchemaSuite)
21+
s.requestProcessFunc = Schema
22+
23+
suite.Run(t, s)
4724
}
4825

4926
func (suite *SchemaSuite) TestGet() {
5027
suite.mock.ExpectQuery("SHOW TABLES").WillReturnRows(
5128
sqlmock.NewRows([]string{"table"}).
5229
AddRow("foo"))
5330

54-
suite.mock.ExpectQuery("DESCRIBE TABLE.*").WillReturnRows(
31+
suite.mock.ExpectQuery("DESCRIBE TABLE foo").WillReturnRows(
5532
sqlmock.NewRows([]string{"name", "type"}).
5633
AddRow("foo", "TEXT").
5734
AddRow("bar", "TEXT"))

0 commit comments

Comments
 (0)