Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.assets/versions.mk
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

# Sync with devbox.json.
GOLANG_VERSION ?= go1.25.5
GOLANGCI_LINT_VERSION ?= v2.4.0
GOLANGCI_LINT_VERSION ?= v2.7.2

# NOTE: Remember to update engines.node in package.json to match the major version.
NODE_VERSION ?= 22.21.0
Expand Down
2 changes: 1 addition & 1 deletion e
Submodule e updated from f1a199 to 112a97
12 changes: 5 additions & 7 deletions integration/appaccess/appaccess_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import (
"bufio"
"context"
"crypto/tls"
"errors"
"fmt"
"io"
"net"
Expand All @@ -34,7 +33,6 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
"github.com/google/uuid"
"github.com/gravitational/trace"
"github.com/jonboulle/clockwork"
mcpserver "github.com/mark3labs/mcp-go/server"
"github.com/stretchr/testify/assert"
Expand Down Expand Up @@ -181,7 +179,7 @@ func testWebsockets(p *Pack, t *testing.T) {
desc string
inCookies []*http.Cookie
outMessage string
err error
wantErr bool
}{
{
desc: "root cluster, valid application session cookie, successful websocket (ws://) request",
Expand Down Expand Up @@ -211,7 +209,7 @@ func testWebsockets(p *Pack, t *testing.T) {
Value: "foobarbaz",
},
).ToSlice(),
err: errors.New(""),
wantErr: true,
},
{
desc: "invalid application session cookie, websocket request fails to dial",
Expand All @@ -221,16 +219,16 @@ func testWebsockets(p *Pack, t *testing.T) {
Value: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
},
},
err: errors.New(""),
wantErr: true,
},
}

for _, tt := range tests {
t.Run(tt.desc, func(t *testing.T) {
t.Parallel()
body, err := p.makeWebsocketRequest(tt.inCookies, "/")
if tt.err != nil {
require.IsType(t, tt.err, trace.Unwrap(err))
if tt.wantErr {
require.Error(t, err)
} else {
require.NoError(t, err)
require.Equal(t, tt.outMessage, body)
Expand Down
2 changes: 1 addition & 1 deletion integration/integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2434,7 +2434,7 @@ func twoClustersTunnel(t *testing.T, suite *integrationTestSuite, now time.Time,
// Stop "site-A" and try to connect to it again via "site-A" (expect a connection error)
require.NoError(t, a.StopAuth(false))
err = tc.SSH(ctx, cmd)
require.IsType(t, err, trace.ConnectionProblem(nil, ""))
require.ErrorAs(t, err, new(*trace.ConnectionProblemError))

// Reset and start "Site-A" again
a.Config.FileDescriptors = aFdCache
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ func errorIsType(errType any) require.ErrorAssertionFunc {
return func(t require.TestingT, err error, i ...any) {
require.Error(t, err)
err = trace.Unwrap(err)
require.IsType(t, errType, err)
require.ErrorAs(t, err, &errType)
}
}

Expand Down
22 changes: 11 additions & 11 deletions lib/auth/grpcserver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3388,26 +3388,26 @@ func TestNodesCRUD(t *testing.T) {
// Make sure can't delete with empty namespace or name.
err = clt.DeleteNode(ctx, apidefaults.Namespace, "")
require.Error(t, err)
require.IsType(t, trace.BadParameter(""), err)
require.ErrorAs(t, err, new(*trace.BadParameterError))

err = clt.DeleteNode(ctx, "", node1.GetName())
require.Error(t, err)
require.IsType(t, trace.BadParameter(""), err)
require.ErrorAs(t, err, new(*trace.BadParameterError))

// Delete node.
err = clt.DeleteNode(ctx, apidefaults.Namespace, node1.GetName())
require.NoError(t, err)

// Expect node not found
_, err := clt.GetNode(ctx, apidefaults.Namespace, "node1")
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))
})

t.Run("DeleteAllNodes", func(t *testing.T) {
// Make sure can't delete with empty namespace.
err = clt.DeleteAllNodes(ctx, "")
require.Error(t, err)
require.IsType(t, trace.BadParameter(""), err)
require.ErrorAs(t, err, new(*trace.BadParameterError))

// Delete nodes
err = clt.DeleteAllNodes(ctx, apidefaults.Namespace)
Expand Down Expand Up @@ -3800,11 +3800,11 @@ func TestAppsCRUD(t *testing.T) {

// Try to fetch an app that doesn't exist.
_, err = clt.GetApp(ctx, "doesnotexist")
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))

// Try to create the same app.
err = clt.CreateApp(ctx, app1)
require.IsType(t, trace.AlreadyExists(""), err)
require.ErrorAs(t, err, new(*trace.AlreadyExistsError))

// Update an app.
app1.Metadata.Description = "description"
Expand Down Expand Up @@ -3843,7 +3843,7 @@ func TestAppsCRUD(t *testing.T) {

// Try to delete an app that doesn't exist.
err = clt.DeleteApp(ctx, "doesnotexist")
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))

// Delete all apps.
err = clt.DeleteAllApps(ctx)
Expand Down Expand Up @@ -4097,11 +4097,11 @@ func TestDatabasesCRUD(t *testing.T) {

// Try to fetch a database that doesn't exist.
_, err = clt.GetDatabase(ctx, "doesnotexist")
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))

// Try to create the same database.
err = clt.CreateDatabase(ctx, db1)
require.IsType(t, trace.AlreadyExists(""), err)
require.ErrorAs(t, err, new(*trace.AlreadyExistsError))

// Update a database.
db1.Metadata.Description = "description"
Expand Down Expand Up @@ -4130,7 +4130,7 @@ func TestDatabasesCRUD(t *testing.T) {

// Try to delete a database that doesn't exist.
err = clt.DeleteDatabase(ctx, "doesnotexist")
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))

// Delete all databases.
err = clt.DeleteAllDatabases(ctx)
Expand Down Expand Up @@ -4254,7 +4254,7 @@ func TestDatabaseServicesCRUD(t *testing.T) {

// Try to delete a DatabaseService that doesn't exist.
err = clt.DeleteDatabaseService(ctx, "doesnotexist")
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))

// Delete all DatabaseServices.
err = clt.DeleteAllDatabaseServices(ctx)
Expand Down
2 changes: 1 addition & 1 deletion lib/automaticupgrades/maintenance/basichttp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ func Test_basicHTTPMaintenanceClient_Get(t *testing.T) {
response: "",
expected: false,
assertErr: func(t2 require.TestingT, err2 error, _ ...any) {
require.IsType(t2, &trace.BadParameterError{}, trace.Unwrap(err2))
require.ErrorAs(t2, trace.Unwrap(err2), new(*trace.BadParameterError))
},
},
{
Expand Down
4 changes: 2 additions & 2 deletions lib/automaticupgrades/version/basichttp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ func Test_basicHTTPVersionClient_Get(t *testing.T) {
response: "hello",
expected: nil,
assertErr: func(t2 require.TestingT, err2 error, _ ...any) {
require.IsType(t2, &trace.BadParameterError{}, trace.Unwrap(err2))
require.ErrorAs(t2, trace.Unwrap(err2), new(*trace.BadParameterError))
},
},
{
Expand All @@ -121,7 +121,7 @@ func Test_basicHTTPVersionClient_Get(t *testing.T) {
response: "",
expected: nil,
assertErr: func(t2 require.TestingT, err2 error, _ ...any) {
require.IsType(t2, &trace.BadParameterError{}, trace.Unwrap(err2))
require.ErrorAs(t2, trace.Unwrap(err2), new(*trace.BadParameterError))
},
},
{
Expand Down
2 changes: 1 addition & 1 deletion lib/client/db/mysql/optionfile_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,5 +83,5 @@ func TestOptionFile(t *testing.T) {

_, err = optionFile.Env(profile.Name)
require.Error(t, err)
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))
}
2 changes: 1 addition & 1 deletion lib/client/db/postgres/servicefile_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,5 +69,5 @@ func TestServiceFile(t *testing.T) {

_, err = serviceFile.Env(profile.Name)
require.Error(t, err)
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))
}
9 changes: 2 additions & 7 deletions lib/config/configuration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1399,7 +1399,6 @@ func TestParseCachePolicy(t *testing.T) {
tcs := []struct {
in *CachePolicy
out *servicecfg.CachePolicy
err error
}{
{in: &CachePolicy{EnabledFlag: "yes", TTL: "never"}, out: &servicecfg.CachePolicy{Enabled: true}},
{in: &CachePolicy{EnabledFlag: "true", TTL: "10h"}, out: &servicecfg.CachePolicy{Enabled: true}},
Expand All @@ -1410,12 +1409,8 @@ func TestParseCachePolicy(t *testing.T) {
for i, tc := range tcs {
comment := fmt.Sprintf("test case #%v", i)
out, err := tc.in.Parse()
if tc.err != nil {
require.IsType(t, tc.err, err, comment)
} else {
require.NoError(t, err, comment)
require.Equal(t, out, tc.out, comment)
}
require.NoError(t, err, comment)
require.Equal(t, out, tc.out, comment)
}
}

Expand Down
5 changes: 0 additions & 5 deletions lib/events/emitter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ func TestProtoStreamer(t *testing.T) {
name string
minUploadBytes int64
events []apievents.AuditEvent
err error
}
testCases := []testCase{
{
Expand Down Expand Up @@ -91,10 +90,6 @@ func TestProtoStreamer(t *testing.T) {
evts := tc.events
for _, event := range evts {
err := stream.RecordEvent(ctx, eventstest.PrepareEvent(event))
if tc.err != nil {
require.IsType(t, tc.err, err)
return
}
require.NoError(t, err)
}
err = stream.Complete(ctx)
Expand Down
4 changes: 2 additions & 2 deletions lib/events/filesessions/fileasync_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1080,7 +1080,7 @@ func runResume(t *testing.T, testCase resumeTestCase) {
select {
case event = <-eventsC:
require.Equal(t, event.SessionID, sid)
require.IsType(t, trace.ConnectionProblem(nil, "connection problem"), event.Error)
require.ErrorAs(t, event.Error, new(*trace.ConnectionProblemError))
case <-ctx.Done():
t.Fatalf("Timeout waiting for async upload, try `go test -v` to get more logs for details")
}
Expand All @@ -1102,7 +1102,7 @@ func runResume(t *testing.T, testCase resumeTestCase) {
if i == testCase.retries-1 {
require.NoError(t, event.Error)
} else {
require.IsType(t, trace.ConnectionProblem(nil, "connection problem"), event.Error)
require.ErrorAs(t, event.Error, new(*trace.ConnectionProblemError))
}
case <-ctx.Done():
t.Fatalf("Timeout waiting for async upload, try `go test -v` to get more logs for details")
Expand Down
6 changes: 3 additions & 3 deletions lib/events/test/streamsuite.go
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ func StreamEmpty(t *testing.T, handler events.MultipartHandler) {

select {
case status := <-stream.Status():
require.Equal(t, status.LastEventIndex, int64(-1))
require.Equal(t, int64(-1), status.LastEventIndex)
case <-time.After(time.Second):
t.Fatalf("Timed out waiting for status update.")
}
Expand Down Expand Up @@ -217,7 +217,7 @@ func StreamWithParameters(t *testing.T, handler events.MultipartHandler, params

select {
case status := <-stream.Status():
require.Equal(t, status.LastEventIndex, int64(-1))
require.Equal(t, int64(-1), status.LastEventIndex)
Comment thread
codingllama marked this conversation as resolved.
case <-time.After(time.Second):
t.Fatalf("Timed out waiting for status update.")
}
Expand Down Expand Up @@ -308,7 +308,7 @@ func StreamResumeWithParameters(t *testing.T, handler events.MultipartHandler, p
// that resume has been started successfully
select {
case status := <-stream.Status():
require.Equal(t, status.LastEventIndex, int64(-1))
require.Equal(t, int64(-1), status.LastEventIndex)
case <-time.After(time.Second):
t.Fatalf("Timed out waiting for status update.")
}
Expand Down
8 changes: 4 additions & 4 deletions lib/services/license_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ func TestLicenseUnmarshal(t *testing.T) {
description string
input string
expected types.License
err error
err any
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why this change?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's an error to call errors.As with an error type. The linter shouts (and it's wrong).

}
testCases := []testCase{
{
Expand Down Expand Up @@ -91,12 +91,12 @@ func TestLicenseUnmarshal(t *testing.T) {
{
description: "failed validation - unknown version",
input: `{"kind": "license", "version": "v2", "metadata": {"name": "license"}, "spec": {"usage": "yes", "k8s": "yes", "aws_account": "123", "aws_pid": "4"}}`,
err: trace.BadParameter(""),
err: &trace.BadParameterError{},
},
{
description: "failed validation, bad types",
input: `{"kind": "license", "version": "v3", "metadata": {"name": "license"}, "spec": {"usage": 1, "k8s": "yes", "aws_account": 14, "aws_pid": "4"}}`,
err: trace.BadParameter(""),
err: &trace.BadParameterError{},
},
}
for _, tc := range testCases {
Expand All @@ -111,7 +111,7 @@ func TestLicenseUnmarshal(t *testing.T) {
require.NoError(t, err, comment)
require.Empty(t, cmp.Diff(tc.expected, out2))
} else {
require.IsType(t, err, tc.err, comment)
require.ErrorAs(t, err, &tc.err, comment)
}
}
}
Expand Down
12 changes: 6 additions & 6 deletions lib/services/local/access_monitoring_rules_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,29 +90,29 @@ func TestAccessMonitoringRulesCRUD(t *testing.T) {

// Try to fetch a AccessMonitoringRule that doesn't exist.
_, err = service.GetAccessMonitoringRule(ctx, "doesnotexist")
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))

// Try to create a duplicate AccessMonitoringRule.
_, err = service.CreateAccessMonitoringRule(ctx, AccessMonitoringRule1)
require.IsType(t, trace.AlreadyExists(""), err)
require.ErrorAs(t, err, new(*trace.AlreadyExistsError))

// Delete a AccessMonitoringRule.
err = service.DeleteAccessMonitoringRule(ctx, AccessMonitoringRule1.Metadata.Name)
require.NoError(t, err)
_, err = service.GetAccessMonitoringRule(ctx, AccessMonitoringRule1.Metadata.Name)
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))

// Try to delete a AccessMonitoringRule that doesn't exist.
err = service.DeleteAccessMonitoringRule(ctx, "doesnotexist")
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))

// Delete all AccessMonitoringRule.
err = service.DeleteAllAccessMonitoringRules(ctx)
require.NoError(t, err)
_, err = service.GetAccessMonitoringRule(ctx, AccessMonitoringRule1.Metadata.Name)
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))
_, err = service.GetAccessMonitoringRule(ctx, AccessMonitoringRule2.Metadata.Name)
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))
}

func TestListAccessMonitoringRulesWithFilter(t *testing.T) {
Expand Down
6 changes: 3 additions & 3 deletions lib/services/local/apps_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,11 +117,11 @@ func TestAppsCRUD(t *testing.T) {

// Try to fetch an application that doesn't exist.
_, err = service.GetApp(ctx, "doesnotexist")
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))

// Try to create the same application.
err = service.CreateApp(ctx, app1)
require.IsType(t, trace.AlreadyExists(""), err)
require.ErrorAs(t, err, new(*trace.AlreadyExistsError))

// Update an application.
app1.Metadata.Description = "description"
Expand Down Expand Up @@ -161,7 +161,7 @@ func TestAppsCRUD(t *testing.T) {

// Try to delete an application that doesn't exist.
err = service.DeleteApp(ctx, "doesnotexist")
require.IsType(t, trace.NotFound(""), err)
require.ErrorAs(t, err, new(*trace.NotFoundError))

// Delete all applications.
err = service.DeleteAllApps(ctx)
Expand Down
Loading
Loading