Skip to content
This repository was archived by the owner on Aug 30, 2024. It is now read-only.

Commit b8c85ea

Browse files
authored
chore: remove dependency on stretchr/testify (#269)
This switches tests from stretchr/testify to our preferred slogtest assertion library.
1 parent 9189ca2 commit b8c85ea

File tree

7 files changed

+66
-65
lines changed

7 files changed

+66
-65
lines changed

ci/integration/envs_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
"cdr.dev/slog/sloggers/slogtest"
1515
"cdr.dev/slog/sloggers/slogtest/assert"
1616
"github.com/google/go-cmp/cmp"
17-
"github.com/stretchr/testify/require"
1817

1918
"cdr.dev/coder-cli/coder-sdk"
2019
"cdr.dev/coder-cli/pkg/tcli"
@@ -30,7 +29,7 @@ func cleanupClient(ctx context.Context, t *testing.T) coder.Client {
3029
BaseURL: u,
3130
Token: creds.token,
3231
})
33-
require.NoError(t, err, "failed to create coder.Client")
32+
assert.Success(t, "failed to create coder.Client", err)
3433
return client
3534
}
3635

coder-sdk/activity_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"net/url"
99
"testing"
1010

11-
"github.com/stretchr/testify/require"
11+
"cdr.dev/slog/sloggers/slogtest/assert"
1212

1313
"cdr.dev/coder-cli/coder-sdk"
1414
)
@@ -19,17 +19,17 @@ func TestPushActivity(t *testing.T) {
1919
const source = "test"
2020
const envID = "602d377a-e6b8d763cae7561885c5f1b2"
2121
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
22-
require.Equal(t, http.MethodPost, r.Method, "PushActivity is a POST")
23-
require.Equal(t, "/api/private/metrics/usage/push", r.URL.Path)
22+
assert.Equal(t, "PushActivity is a POST", http.MethodPost, r.Method)
23+
assert.Equal(t, "URL matches", "/api/private/metrics/usage/push", r.URL.Path)
2424

2525
expected := map[string]interface{}{
2626
"source": source,
2727
"environment_id": envID,
2828
}
2929
var request map[string]interface{}
3030
err := json.NewDecoder(r.Body).Decode(&request)
31-
require.NoError(t, err, "error decoding JSON")
32-
require.EqualValues(t, expected, request, "unexpected request data")
31+
assert.Success(t, "error decoding JSON", err)
32+
assert.Equal(t, "unexpected request data", expected, request)
3333

3434
w.WriteHeader(http.StatusOK)
3535
}))
@@ -38,14 +38,14 @@ func TestPushActivity(t *testing.T) {
3838
})
3939

4040
u, err := url.Parse(server.URL)
41-
require.NoError(t, err, "failed to parse test server URL")
41+
assert.Success(t, "failed to parse test server URL", err)
4242

4343
client, err := coder.NewClient(coder.ClientOptions{
4444
BaseURL: u,
4545
Token: "SwdcSoq5Jc-0C1r8wfwm7h6h9i0RDk7JT",
4646
})
47-
require.NoError(t, err, "failed to create coder.Client")
47+
assert.Success(t, "failed to create coder.Client", err)
4848

4949
err = client.PushActivity(context.Background(), source, envID)
50-
require.NoError(t, err)
50+
assert.Success(t, "expected successful response from PushActivity", err)
5151
}

coder-sdk/client_test.go

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"testing"
1010
"time"
1111

12-
"github.com/stretchr/testify/require"
12+
"cdr.dev/slog/sloggers/slogtest/assert"
1313

1414
"cdr.dev/coder-cli/coder-sdk"
1515
)
@@ -21,7 +21,7 @@ func TestAuthentication(t *testing.T) {
2121

2222
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
2323
gotToken := r.Header.Get("Session-Token")
24-
require.Equal(t, token, gotToken, "token does not match")
24+
assert.Equal(t, "token does not match", token, gotToken)
2525

2626
w.WriteHeader(http.StatusServiceUnavailable)
2727
}))
@@ -30,19 +30,19 @@ func TestAuthentication(t *testing.T) {
3030
})
3131

3232
u, err := url.Parse(server.URL)
33-
require.NoError(t, err, "failed to parse test server URL")
33+
assert.Success(t, "failed to parse test server URL", err)
3434

3535
client, err := coder.NewClient(coder.ClientOptions{
3636
BaseURL: u,
3737
Token: token,
3838
})
39-
require.NoError(t, err, "failed to create coder.Client")
39+
assert.Success(t, "failed to create coder.Client", err)
4040

41-
require.Equal(t, token, client.Token(), "expected Token to match")
42-
require.EqualValues(t, *u, client.BaseURL(), "expected BaseURL to match")
41+
assert.Equal(t, "expected Token to match", token, client.Token())
42+
assert.Equal(t, "expected BaseURL to match", *u, client.BaseURL())
4343

4444
_, err = client.APIVersion(context.Background())
45-
require.NoError(t, err, "failed to get API version information")
45+
assert.Success(t, "failed to get API version information", err)
4646
}
4747

4848
func TestPasswordAuthentication(t *testing.T) {
@@ -54,29 +54,30 @@ func TestPasswordAuthentication(t *testing.T) {
5454

5555
mux := http.NewServeMux()
5656
mux.HandleFunc("/auth/basic/login", func(w http.ResponseWriter, r *http.Request) {
57-
require.Equal(t, r.Method, http.MethodPost, "login is a POST")
57+
assert.Equal(t, "login is a POST", http.MethodPost, r.Method)
5858

5959
expected := map[string]interface{}{
6060
"email": email,
6161
"password": password,
6262
}
6363
var request map[string]interface{}
6464
err := json.NewDecoder(r.Body).Decode(&request)
65-
require.NoError(t, err, "error decoding JSON")
66-
require.EqualValues(t, expected, request, "unexpected request data")
65+
assert.Success(t, "error decoding JSON", err)
66+
assert.Equal(t, "unexpected request data", expected, request)
6767

6868
response := map[string]interface{}{
6969
"session_token": token,
7070
}
7171

7272
w.WriteHeader(http.StatusOK)
7373
err = json.NewEncoder(w).Encode(response)
74-
require.NoError(t, err, "error encoding JSON")
74+
assert.Success(t, "error encoding JSON", err)
7575
})
7676
mux.HandleFunc("/api/v0/users/me", func(w http.ResponseWriter, r *http.Request) {
77-
require.Equal(t, http.MethodGet, r.Method, "Users is a GET")
77+
assert.Equal(t, "Users is a GET", http.MethodGet, r.Method)
7878

79-
require.Equal(t, token, r.Header.Get("Session-Token"), "expected session token to match return of login")
79+
gotToken := r.Header.Get("Session-Token")
80+
assert.Equal(t, "expected session token to match return of login", token, gotToken)
8081

8182
user := map[string]interface{}{
8283
"id": "default",
@@ -93,37 +94,37 @@ func TestPasswordAuthentication(t *testing.T) {
9394

9495
w.WriteHeader(http.StatusOK)
9596
err := json.NewEncoder(w).Encode(user)
96-
require.NoError(t, err, "error encoding JSON")
97+
assert.Success(t, "error encoding JSON", err)
9798
})
9899
server := httptest.NewTLSServer(mux)
99100
t.Cleanup(func() {
100101
server.Close()
101102
})
102103

103104
u, err := url.Parse(server.URL)
104-
require.NoError(t, err, "failed to parse test server URL")
105-
require.Equal(t, "https", u.Scheme, "expected HTTPS base URL")
105+
assert.Success(t, "failed to parse test server URL", err)
106+
assert.Equal(t, "expected HTTPS base URL", "https", u.Scheme)
106107

107108
client, err := coder.NewClient(coder.ClientOptions{
108109
BaseURL: u,
109110
HTTPClient: server.Client(),
110111
Email: email,
111112
Password: password,
112113
})
113-
require.NoError(t, err, "failed to create Client")
114-
require.Equal(t, token, client.Token(), "expected token to match")
114+
assert.Success(t, "failed to create Client", err)
115+
assert.Equal(t, "expected token to match", token, client.Token())
115116

116117
user, err := client.Me(context.Background())
117-
require.NoError(t, err, "failed to get information about current user")
118-
require.Equal(t, email, user.Email, "expected test user")
118+
assert.Success(t, "failed to get information about current user", err)
119+
assert.Equal(t, "expected test user", email, user.Email)
119120
}
120121

121122
func TestContextRoot(t *testing.T) {
122123
t.Parallel()
123124

124125
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
125-
require.Equal(t, r.Method, http.MethodGet, "Users is a GET")
126-
require.Equal(t, r.URL.Path, "/context-root/api/v0/users")
126+
assert.Equal(t, "Users is a GET", http.MethodGet, r.Method)
127+
assert.Equal(t, "expected context root", "/context-root/api/v0/users", r.URL.Path)
127128

128129
w.WriteHeader(http.StatusServiceUnavailable)
129130
}))
@@ -137,7 +138,7 @@ func TestContextRoot(t *testing.T) {
137138
}
138139

139140
u, err := url.Parse(server.URL)
140-
require.NoError(t, err, "failed to parse test server URL")
141+
assert.Success(t, "failed to parse test server URL", err)
141142

142143
for _, prefix := range contextRoots {
143144
u.Path = prefix
@@ -146,9 +147,9 @@ func TestContextRoot(t *testing.T) {
146147
BaseURL: u,
147148
Token: "FrOgA6xhpM-p5nTfsupmvzYJA6DJSOUoE",
148149
})
149-
require.NoError(t, err, "failed to create coder.Client")
150+
assert.Success(t, "failed to create coder.Client", err)
150151

151152
_, err = client.Users(context.Background())
152-
require.Error(t, err, "expected 503 error")
153+
assert.Error(t, "expected 503 error", err)
153154
}
154155
}

coder-sdk/users_test.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"testing"
1010
"time"
1111

12-
"github.com/stretchr/testify/require"
12+
"cdr.dev/slog/sloggers/slogtest/assert"
1313

1414
"cdr.dev/coder-cli/coder-sdk"
1515
)
@@ -21,8 +21,8 @@ func TestUsers(t *testing.T) {
2121
const name = "Charlie Root"
2222

2323
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
24-
require.Equal(t, http.MethodGet, r.Method, "Users is a GET")
25-
require.Equal(t, "/api/v0/users", r.URL.Path)
24+
assert.Equal(t, "Users is a GET", http.MethodGet, r.Method)
25+
assert.Equal(t, "Path matches", "/api/v0/users", r.URL.Path)
2626

2727
users := []map[string]interface{}{
2828
{
@@ -41,26 +41,26 @@ func TestUsers(t *testing.T) {
4141

4242
w.WriteHeader(http.StatusOK)
4343
err := json.NewEncoder(w).Encode(users)
44-
require.NoError(t, err, "error encoding JSON")
44+
assert.Success(t, "error encoding JSON", err)
4545
}))
4646
t.Cleanup(func() {
4747
server.Close()
4848
})
4949

5050
u, err := url.Parse(server.URL)
51-
require.NoError(t, err, "failed to parse test server URL")
51+
assert.Success(t, "failed to parse test server URL", err)
5252

5353
client, err := coder.NewClient(coder.ClientOptions{
5454
BaseURL: u,
5555
Token: "JcmErkJjju-KSrztst0IJX7xGJhKQPtfv",
5656
})
57-
require.NoError(t, err, "failed to create coder.Client")
57+
assert.Success(t, "failed to create coder.Client", err)
5858

5959
users, err := client.Users(context.Background())
60-
require.NoError(t, err, "error getting Users")
61-
require.Len(t, users, 1, "users should return a single user")
62-
require.Equal(t, name, users[0].Name)
63-
require.Equal(t, username, users[0].Username)
60+
assert.Success(t, "error getting Users", err)
61+
assert.True(t, "users should return a single user", len(users) == 1)
62+
assert.Equal(t, "expected user's name to match", name, users[0].Name)
63+
assert.Equal(t, "expected user's username to match", username, users[0].Username)
6464
}
6565

6666
func TestUserUpdatePassword(t *testing.T) {
@@ -70,17 +70,17 @@ func TestUserUpdatePassword(t *testing.T) {
7070
const newPassword = "wmf39jw2f7pk"
7171

7272
server := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
73-
require.Equal(t, http.MethodPatch, r.Method, "Users is a PATCH")
74-
require.Equal(t, "/api/v0/users/me", r.URL.Path)
73+
assert.Equal(t, "Users is a PATCH", http.MethodPatch, r.Method)
74+
assert.Equal(t, "Path matches", "/api/v0/users/me", r.URL.Path)
7575

7676
expected := map[string]interface{}{
7777
"old_password": oldPassword,
7878
"password": newPassword,
7979
}
8080
var request map[string]interface{}
8181
err := json.NewDecoder(r.Body).Decode(&request)
82-
require.NoError(t, err, "error decoding JSON")
83-
require.EqualValues(t, expected, request, "unexpected request data")
82+
assert.Success(t, "error decoding JSON", err)
83+
assert.Equal(t, "unexpected request data", expected, request)
8484

8585
w.WriteHeader(http.StatusOK)
8686
}))
@@ -89,14 +89,14 @@ func TestUserUpdatePassword(t *testing.T) {
8989
})
9090

9191
u, err := url.Parse(server.URL)
92-
require.NoError(t, err, "failed to parse test server URL")
92+
assert.Success(t, "failed to parse test server URL", err)
9393

9494
client, err := coder.NewClient(coder.ClientOptions{
9595
BaseURL: u,
9696
HTTPClient: server.Client(),
9797
Token: "JcmErkJjju-KSrztst0IJX7xGJhKQPtfv",
9898
})
99-
require.NoError(t, err, "failed to create coder.Client")
99+
assert.Success(t, "failed to create coder.Client", err)
100100

101101
err = client.UpdateUser(context.Background(), "me", coder.UpdateUserReq{
102102
UserPasswordSettings: &coder.UserPasswordSettings{
@@ -105,5 +105,5 @@ func TestUserUpdatePassword(t *testing.T) {
105105
Temporary: false,
106106
},
107107
})
108-
require.NoError(t, err, "error when updating password")
108+
assert.Success(t, "error when updating password", err)
109109
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ require (
1616
github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4
1717
github.com/rjeczalik/notify v0.9.2
1818
github.com/spf13/cobra v1.1.1
19-
github.com/stretchr/testify v1.6.1
19+
github.com/stretchr/testify v1.6.1 // indirect
2020
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
2121
golang.org/x/net v0.0.0-20200822124328-c89045814202 // indirect
2222
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208

internal/loginsrv/input_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"testing"
99
"time"
1010

11-
"github.com/stretchr/testify/require"
11+
"cdr.dev/slog/sloggers/slogtest/assert"
1212

1313
"cdr.dev/coder-cli/internal/loginsrv"
1414
)
@@ -62,14 +62,14 @@ func TestReadLine(t *testing.T) {
6262
case err := <-errChan:
6363
t.Fatalf("ReadLine returned before we got the token (%v).", err)
6464
case actualToken := <-tokenChan:
65-
require.Equal(t, testToken, actualToken, "Unexpected token received from readline.")
65+
assert.Equal(t, "Unexpected token received from readline.", testToken, actualToken)
6666
}
6767

6868
select {
6969
case <-ctx.Done():
7070
t.Fatal("Timeout waiting for readline to finish.")
7171
case err := <-errChan:
72-
require.NoError(t, err, "Error reading the line.")
72+
assert.Success(t, "Error reading the line.", err)
7373
}
7474
})
7575
}
@@ -119,7 +119,7 @@ func TestReadLineMissingToken(t *testing.T) {
119119
case <-ctx.Done():
120120
t.Fatal("Timeout waiting for readline to finish.")
121121
case err := <-errChan:
122-
require.NoError(t, err, "Error reading the line.")
122+
assert.Success(t, "Error reading the line.", err)
123123
case token, ok := <-tokenChan:
124124
t.Fatalf("Token channel unexpectedly unblocked. Data: %q, state: %t.", token, ok)
125125
}

0 commit comments

Comments
 (0)