Skip to content

Commit

Permalink
Refactor integration tests (#1821)
Browse files Browse the repository at this point in the history
* Refactor integration tests

* Remove nopCloser and use io.NopCloser

* Address review comments
  • Loading branch information
chiiph committed Sep 15, 2021
1 parent e968a26 commit e6368cc
Show file tree
Hide file tree
Showing 16 changed files with 975 additions and 976 deletions.
11 changes: 4 additions & 7 deletions cmd/fleetctl/apply_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,7 @@ var userRoleSpecList = []*fleet.User{
}

func TestApplyUserRoles(t *testing.T) {
server, ds := runServerWithMockedDS(t)
defer server.Close()
_, ds := runServerWithMockedDS(t)

ds.ListUsersFunc = func(ctx context.Context, opt fleet.UserListOptions) ([]*fleet.User, error) {
return userRoleSpecList, nil
Expand Down Expand Up @@ -102,11 +101,10 @@ spec:

func TestApplyTeamSpecs(t *testing.T) {
license := &fleet.LicenseInfo{Tier: fleet.TierPremium, Expiration: time.Now().Add(24 * time.Hour)}
server, ds := runServerWithMockedDS(t, service.TestServerOpts{License: license})
defer server.Close()
_, ds := runServerWithMockedDS(t, service.TestServerOpts{License: license})

teamsByName := map[string]*fleet.Team{
"team1": &fleet.Team{
"team1": {
ID: 42,
Name: "team1",
Description: "team1 description",
Expand Down Expand Up @@ -185,8 +183,7 @@ func writeTmpYml(t *testing.T, contents string) string {
}

func TestApplyAppConfig(t *testing.T) {
server, ds := runServerWithMockedDS(t)
defer server.Close()
_, ds := runServerWithMockedDS(t)

ds.ListUsersFunc = func(ctx context.Context, opt fleet.UserListOptions) ([]*fleet.User, error) {
return userRoleSpecList, nil
Expand Down
3 changes: 1 addition & 2 deletions cmd/fleetctl/debug_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,7 @@ oug6edBNpdhp8r2/4t6n3AouK0/zG2naAlmXV0JoFuEvy2bX0BbbbPg+v4WNZIsC

func TestDebugConnectionCommand(t *testing.T) {
t.Run("without certificate", func(t *testing.T) {
server, ds := runServerWithMockedDS(t)
defer server.Close()
_, ds := runServerWithMockedDS(t)

ds.VerifyEnrollSecretFunc = func(ctx context.Context, secret string) (*fleet.EnrollSecret, error) {
return nil, errors.New("invalid")
Expand Down
15 changes: 5 additions & 10 deletions cmd/fleetctl/get_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,7 @@ var userRoleList = []*fleet.User{
}

func TestGetUserRoles(t *testing.T) {
server, ds := runServerWithMockedDS(t)
defer server.Close()
_, ds := runServerWithMockedDS(t)

ds.ListUsersFunc = func(ctx context.Context, opt fleet.UserListOptions) ([]*fleet.User, error) {
return userRoleList, nil
Expand Down Expand Up @@ -114,8 +113,7 @@ func TestGetTeams(t *testing.T) {
for _, tt := range testCases {
t.Run(tt.name, func(t *testing.T) {
license := tt.license
server, ds := runServerWithMockedDS(t, service.TestServerOpts{License: license})
defer server.Close()
_, ds := runServerWithMockedDS(t, service.TestServerOpts{License: license})

agentOpts := json.RawMessage(`{"config":{"foo":"bar"},"overrides":{"platforms":{"darwin":{"foo":"override"}}}}`)
ds.ListTeamsFunc = func(ctx context.Context, filter fleet.TeamFilter, opt fleet.ListOptions) ([]*fleet.Team, error) {
Expand Down Expand Up @@ -196,8 +194,7 @@ spec:
}

func TestGetHosts(t *testing.T) {
server, ds := runServerWithMockedDS(t)
defer server.Close()
_, ds := runServerWithMockedDS(t)

// this func is called when no host is specified i.e. `fleetctl get hosts --json`
ds.ListHostsFunc = func(ctx context.Context, filter fleet.TeamFilter, opt fleet.HostListOptions) ([]*fleet.Host, error) {
Expand Down Expand Up @@ -343,8 +340,7 @@ func TestGetHosts(t *testing.T) {
}

func TestGetConfig(t *testing.T) {
server, ds := runServerWithMockedDS(t)
defer server.Close()
_, ds := runServerWithMockedDS(t)

ds.AppConfigFunc = func(ctx context.Context) (*fleet.AppConfig, error) {
return &fleet.AppConfig{
Expand Down Expand Up @@ -412,8 +408,7 @@ spec:
}

func TestGetSoftawre(t *testing.T) {
server, ds := runServerWithMockedDS(t)
defer server.Close()
_, ds := runServerWithMockedDS(t)

foo001 := fleet.Software{
Name: "foo", Version: "0.0.1", Source: "chrome_extensions", GenerateCPE: "somecpe",
Expand Down
15 changes: 5 additions & 10 deletions cmd/fleetctl/hosts_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ import (
)

func TestHostTransferFlagChecks(t *testing.T) {
server, _ := runServerWithMockedDS(t)
defer server.Close()
runServerWithMockedDS(t)

runAppCheckErr(t,
[]string{"hosts", "transfer", "--team", "team1", "--hosts", "host1", "--label", "AAA"},
Expand All @@ -24,8 +23,7 @@ func TestHostTransferFlagChecks(t *testing.T) {
}

func TestHostsTransferByHosts(t *testing.T) {
server, ds := runServerWithMockedDS(t)
defer server.Close()
_, ds := runServerWithMockedDS(t)

ds.HostByIdentifierFunc = func(ctx context.Context, identifier string) (*fleet.Host, error) {
require.Equal(t, "host1", identifier)
Expand All @@ -48,8 +46,7 @@ func TestHostsTransferByHosts(t *testing.T) {
}

func TestHostsTransferByLabel(t *testing.T) {
server, ds := runServerWithMockedDS(t)
defer server.Close()
_, ds := runServerWithMockedDS(t)

ds.HostByIdentifierFunc = func(ctx context.Context, identifier string) (*fleet.Host, error) {
require.Equal(t, "host1", identifier)
Expand Down Expand Up @@ -83,8 +80,7 @@ func TestHostsTransferByLabel(t *testing.T) {
}

func TestHostsTransferByStatus(t *testing.T) {
server, ds := runServerWithMockedDS(t)
defer server.Close()
_, ds := runServerWithMockedDS(t)

ds.HostByIdentifierFunc = func(ctx context.Context, identifier string) (*fleet.Host, error) {
require.Equal(t, "host1", identifier)
Expand Down Expand Up @@ -118,8 +114,7 @@ func TestHostsTransferByStatus(t *testing.T) {
}

func TestHostsTransferByStatusAndSearchQuery(t *testing.T) {
server, ds := runServerWithMockedDS(t)
defer server.Close()
_, ds := runServerWithMockedDS(t)

ds.HostByIdentifierFunc = func(ctx context.Context, identifier string) (*fleet.Host, error) {
require.Equal(t, "host1", identifier)
Expand Down
3 changes: 1 addition & 2 deletions cmd/fleetctl/query_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ import (
func TestLiveQuery(t *testing.T) {
rs := pubsub.NewInmemQueryResults()
lq := new(live_query.MockLiveQuery)
server, ds := runServerWithMockedDS(t, service.TestServerOpts{Rs: rs, Lq: lq})
defer server.Close()
_, ds := runServerWithMockedDS(t, service.TestServerOpts{Rs: rs, Lq: lq})

ds.HostIDsByNameFunc = func(ctx context.Context, filter fleet.TeamFilter, hostnames []string) ([]uint, error) {
return []uint{1234}, nil
Expand Down
3 changes: 1 addition & 2 deletions cmd/fleetctl/users_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ import (
)

func TestUserDelete(t *testing.T) {
server, ds := runServerWithMockedDS(t)
defer server.Close()
_, ds := runServerWithMockedDS(t)

ds.UserByEmailFunc = func(ctx context.Context, email string) (*fleet.User, error) {
return &fleet.User{
Expand Down
9 changes: 9 additions & 0 deletions server/datastore/mysql/testing_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -243,3 +243,12 @@ func CreateMySQLDSWithOptions(t *testing.T, opts *DatastoreTestOptions) *Datasto
func CreateMySQLDS(t *testing.T) *Datastore {
return createMySQLDSWithOptions(t, nil)
}

func CreateNamedMySQLDS(t *testing.T, name string) *Datastore {
if _, ok := os.LookupEnv("MYSQL_TEST"); !ok {
t.Skip("MySQL tests are disabled")
}

t.Parallel()
return initializeDatabase(t, name, new(DatastoreTestOptions))
}
2 changes: 1 addition & 1 deletion server/service/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ func (l *logRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
fmt.Fprintf(os.Stderr, "Read body error: %v", err)
return nil, err
}
res.Body = ioutil.NopCloser(resBody)
res.Body = io.NopCloser(resBody)

return res, nil
}
Expand Down
13 changes: 2 additions & 11 deletions server/service/http_auth_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import (

func TestLogin(t *testing.T) {
ds, users, server := setupAuthTest(t)
defer server.Close()
var loginTests = []struct {
email string
status int
Expand Down Expand Up @@ -60,7 +59,7 @@ func TestLogin(t *testing.T) {
j, err := json.Marshal(&params)
assert.Nil(t, err)

requestBody := &nopCloser{bytes.NewBuffer(j)}
requestBody := io.NopCloser(bytes.NewBuffer(j))
resp, err := http.Post(server.URL+"/api/v1/fleet/login", "application/json", requestBody)
require.Nil(t, err)
assert.Equal(t, tt.status, resp.StatusCode)
Expand Down Expand Up @@ -173,7 +172,7 @@ func getTestAdminToken(t *testing.T, server *httptest.Server) string {
j, err := json.Marshal(&params)
assert.Nil(t, err)

requestBody := &nopCloser{bytes.NewBuffer(j)}
requestBody := io.NopCloser(bytes.NewBuffer(j))
resp, err := http.Post(server.URL+"/api/v1/fleet/login", "application/json", requestBody)
require.Nil(t, err)
assert.Equal(t, http.StatusOK, resp.StatusCode)
Expand All @@ -191,7 +190,6 @@ func getTestAdminToken(t *testing.T, server *httptest.Server) string {

func TestNoHeaderErrorsDifferently(t *testing.T) {
_, _, server := setupAuthTest(t)
defer server.Close()

req, _ := http.NewRequest("GET", server.URL+"/api/v1/fleet/users", nil)
client := &http.Client{}
Expand Down Expand Up @@ -230,10 +228,3 @@ func TestNoHeaderErrorsDifferently(t *testing.T) {
}
`, string(bodyBytes))
}

// an io.ReadCloser for new request body
type nopCloser struct {
io.Reader
}

func (nopCloser) Close() error { return nil }

0 comments on commit e6368cc

Please sign in to comment.