mirror of
https://github.com/coder/coder.git
synced 2025-07-08 11:39:50 +00:00
chore: Use standardized test timeouts and delays (#3291)
This commit is contained in:
committed by
GitHub
parent
3d0febdd90
commit
4730c589fe
@ -40,6 +40,7 @@ import (
|
||||
"github.com/coder/coder/codersdk"
|
||||
"github.com/coder/coder/provisioner/echo"
|
||||
"github.com/coder/coder/provisionersdk/proto"
|
||||
"github.com/coder/coder/testutil"
|
||||
)
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
@ -157,7 +158,7 @@ func TestAuthorizeAllEndpoints(t *testing.T) {
|
||||
require.Eventually(t, func() bool {
|
||||
provisionerds, err := client.ProvisionerDaemons(ctx)
|
||||
return assert.NoError(t, err) && len(provisionerds) > 0
|
||||
}, time.Second*10, time.Second)
|
||||
}, testutil.WaitLong, testutil.IntervalSlow)
|
||||
|
||||
provisionerds, err := client.ProvisionerDaemons(ctx)
|
||||
require.NoError(t, err, "fetch provisioners")
|
||||
|
@ -56,6 +56,7 @@ import (
|
||||
"github.com/coder/coder/provisionerd"
|
||||
"github.com/coder/coder/provisionersdk"
|
||||
"github.com/coder/coder/provisionersdk/proto"
|
||||
"github.com/coder/coder/testutil"
|
||||
)
|
||||
|
||||
type Options struct {
|
||||
@ -180,7 +181,7 @@ func newWithCloser(t *testing.T, options *Options) (*codersdk.Client, io.Closer)
|
||||
AgentConnectionUpdateFrequency: 150 * time.Millisecond,
|
||||
// Force a long disconnection timeout to ensure
|
||||
// agents are not marked as disconnected during slow tests.
|
||||
AgentInactiveDisconnectTimeout: 5 * time.Second,
|
||||
AgentInactiveDisconnectTimeout: testutil.WaitShort,
|
||||
AccessURL: serverURL,
|
||||
Logger: slogtest.Make(t, nil).Leveled(slog.LevelDebug),
|
||||
CacheDir: t.TempDir(),
|
||||
@ -414,7 +415,7 @@ func AwaitTemplateVersionJob(t *testing.T, client *codersdk.Client, version uuid
|
||||
var err error
|
||||
templateVersion, err = client.TemplateVersion(context.Background(), version)
|
||||
return assert.NoError(t, err) && templateVersion.Job.CompletedAt != nil
|
||||
}, 5*time.Second, 25*time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
return templateVersion
|
||||
}
|
||||
|
||||
@ -428,7 +429,7 @@ func AwaitWorkspaceBuildJob(t *testing.T, client *codersdk.Client, build uuid.UU
|
||||
var err error
|
||||
workspaceBuild, err = client.WorkspaceBuild(context.Background(), build)
|
||||
return assert.NoError(t, err) && workspaceBuild.Job.CompletedAt != nil
|
||||
}, 5*time.Second, 25*time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
return workspaceBuild
|
||||
}
|
||||
|
||||
@ -452,7 +453,7 @@ func AwaitWorkspaceAgents(t *testing.T, client *codersdk.Client, build uuid.UUID
|
||||
}
|
||||
}
|
||||
return true
|
||||
}, 15*time.Second, 50*time.Millisecond)
|
||||
}, testutil.WaitLong, testutil.IntervalMedium)
|
||||
return resources
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,7 @@ import (
|
||||
|
||||
"cdr.dev/slog/sloggers/slogtest"
|
||||
"github.com/coder/coder/coderd/devtunnel"
|
||||
"github.com/coder/coder/testutil"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -85,15 +86,15 @@ func TestTunnel(t *testing.T) {
|
||||
_, _ = io.Copy(io.Discard, res.Body)
|
||||
|
||||
return res.StatusCode == http.StatusAccepted
|
||||
}, time.Minute, time.Second)
|
||||
}, testutil.WaitShort, testutil.IntervalSlow)
|
||||
|
||||
assert.NoError(t, server.Close())
|
||||
cancelTun()
|
||||
|
||||
select {
|
||||
case <-errCh:
|
||||
case <-time.After(10 * time.Second):
|
||||
t.Error("tunnel did not close after 10 seconds")
|
||||
case <-time.After(testutil.WaitLong):
|
||||
t.Errorf("tunnel did not close after %s", testutil.WaitLong)
|
||||
}
|
||||
}
|
||||
|
||||
@ -226,7 +227,7 @@ func (f *fakeTunnelServer) requestHTTP() (*http.Response, error) {
|
||||
}
|
||||
client := &http.Client{
|
||||
Transport: transport,
|
||||
Timeout: 10 * time.Second,
|
||||
Timeout: testutil.WaitLong,
|
||||
}
|
||||
return client.Get(fmt.Sprintf("http://[%s]:8090", clientIP))
|
||||
}
|
||||
|
@ -4,12 +4,12 @@ import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/coder/coder/coderd/httpmw"
|
||||
"github.com/coder/coder/testutil"
|
||||
)
|
||||
|
||||
func TestRateLimit(t *testing.T) {
|
||||
@ -27,6 +27,6 @@ func TestRateLimit(t *testing.T) {
|
||||
rec := httptest.NewRecorder()
|
||||
rtr.ServeHTTP(rec, req)
|
||||
return rec.Result().StatusCode == http.StatusTooManyRequests
|
||||
}, 5*time.Second, time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
})
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ import (
|
||||
"crypto/rand"
|
||||
"runtime"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
@ -13,6 +12,7 @@ import (
|
||||
"github.com/coder/coder/coderd/coderdtest"
|
||||
"github.com/coder/coder/codersdk"
|
||||
"github.com/coder/coder/provisionersdk"
|
||||
"github.com/coder/coder/testutil"
|
||||
)
|
||||
|
||||
func TestProvisionerDaemons(t *testing.T) {
|
||||
@ -41,7 +41,7 @@ func TestProvisionerDaemons(t *testing.T) {
|
||||
var err error
|
||||
version, err = client.TemplateVersion(context.Background(), version.ID)
|
||||
return assert.NoError(t, err) && version.Job.Error != ""
|
||||
}, 5*time.Second, 25*time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -21,6 +21,7 @@ import (
|
||||
"github.com/coder/coder/coderd/database"
|
||||
"github.com/coder/coder/coderd/database/databasefake"
|
||||
"github.com/coder/coder/codersdk"
|
||||
"github.com/coder/coder/testutil"
|
||||
)
|
||||
|
||||
func TestProvisionerJobLogs_Unit(t *testing.T) {
|
||||
@ -63,7 +64,7 @@ func TestProvisionerJobLogs_Unit(t *testing.T) {
|
||||
{ID: uuid.New(), JobID: jobID, Stage: "Stage3"},
|
||||
}
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
|
||||
defer cancel()
|
||||
|
||||
// wow there are a lot of DB rows we touch...
|
||||
|
@ -14,6 +14,7 @@ import (
|
||||
"github.com/coder/coder/codersdk"
|
||||
"github.com/coder/coder/provisioner/echo"
|
||||
"github.com/coder/coder/provisionersdk/proto"
|
||||
"github.com/coder/coder/testutil"
|
||||
)
|
||||
|
||||
func TestTemplateVersion(t *testing.T) {
|
||||
@ -120,7 +121,7 @@ func TestPatchCancelTemplateVersion(t *testing.T) {
|
||||
}
|
||||
t.Logf("Status: %s", version.Job.Status)
|
||||
return version.Job.Status == codersdk.ProvisionerJobRunning
|
||||
}, 5*time.Second, 25*time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
err := client.CancelTemplateVersion(context.Background(), version.ID)
|
||||
require.NoError(t, err)
|
||||
err = client.CancelTemplateVersion(context.Background(), version.ID)
|
||||
@ -131,7 +132,7 @@ func TestPatchCancelTemplateVersion(t *testing.T) {
|
||||
var err error
|
||||
version, err = client.TemplateVersion(context.Background(), version.ID)
|
||||
return assert.NoError(t, err) && version.Job.Status == codersdk.ProvisionerJobFailed
|
||||
}, 5*time.Second, 25*time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
})
|
||||
// TODO(Cian): until we are able to test cancellation properly, validating
|
||||
// Running -> Canceling is the best we can do for now.
|
||||
@ -155,7 +156,7 @@ func TestPatchCancelTemplateVersion(t *testing.T) {
|
||||
}
|
||||
t.Logf("Status: %s", version.Job.Status)
|
||||
return version.Job.Status == codersdk.ProvisionerJobRunning
|
||||
}, 5*time.Second, 25*time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
err := client.CancelTemplateVersion(context.Background(), version.ID)
|
||||
require.NoError(t, err)
|
||||
require.Eventually(t, func() bool {
|
||||
@ -166,7 +167,7 @@ func TestPatchCancelTemplateVersion(t *testing.T) {
|
||||
// provision complete response.
|
||||
assert.Empty(t, version.Job.Error) &&
|
||||
version.Job.Status == codersdk.ProvisionerJobCanceling
|
||||
}, 5*time.Second, 25*time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
})
|
||||
}
|
||||
|
||||
@ -541,7 +542,7 @@ func TestTemplateVersionDryRun(t *testing.T) {
|
||||
require.Eventually(t, func() bool {
|
||||
job, err := client.TemplateVersionDryRun(ctx, version.ID, job.ID)
|
||||
return assert.NoError(t, err) && job.Status == codersdk.ProvisionerJobSucceeded
|
||||
}, 5*time.Second, 25*time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
|
||||
<-logsDone
|
||||
|
||||
@ -618,7 +619,7 @@ func TestTemplateVersionDryRun(t *testing.T) {
|
||||
|
||||
t.Logf("Status: %s", job.Status)
|
||||
return job.Status == codersdk.ProvisionerJobPending
|
||||
}, 5*time.Second, 25*time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
|
||||
err = client.CancelTemplateVersionDryRun(context.Background(), version.ID, job.ID)
|
||||
require.NoError(t, err)
|
||||
@ -631,7 +632,7 @@ func TestTemplateVersionDryRun(t *testing.T) {
|
||||
|
||||
t.Logf("Status: %s", job.Status)
|
||||
return job.Status == codersdk.ProvisionerJobCanceling
|
||||
}, 5*time.Second, 25*time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
})
|
||||
|
||||
t.Run("AlreadyCompleted", func(t *testing.T) {
|
||||
@ -655,7 +656,7 @@ func TestTemplateVersionDryRun(t *testing.T) {
|
||||
|
||||
t.Logf("Status: %s", job.Status)
|
||||
return job.Status == codersdk.ProvisionerJobSucceeded
|
||||
}, 5*time.Second, 25*time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
|
||||
err = client.CancelTemplateVersionDryRun(context.Background(), version.ID, job.ID)
|
||||
var apiErr *codersdk.Error
|
||||
|
@ -17,6 +17,7 @@ import (
|
||||
"github.com/coder/coder/codersdk"
|
||||
"github.com/coder/coder/provisioner/echo"
|
||||
"github.com/coder/coder/provisionersdk/proto"
|
||||
"github.com/coder/coder/testutil"
|
||||
)
|
||||
|
||||
func TestWorkspaceBuild(t *testing.T) {
|
||||
@ -222,7 +223,7 @@ func TestPatchCancelWorkspaceBuild(t *testing.T) {
|
||||
var err error
|
||||
build, err = client.WorkspaceBuild(context.Background(), workspace.LatestBuild.ID)
|
||||
return assert.NoError(t, err) && build.Job.Status == codersdk.ProvisionerJobRunning
|
||||
}, 5*time.Second, 25*time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
err := client.CancelWorkspaceBuild(context.Background(), build.ID)
|
||||
require.NoError(t, err)
|
||||
require.Eventually(t, func() bool {
|
||||
@ -233,7 +234,7 @@ func TestPatchCancelWorkspaceBuild(t *testing.T) {
|
||||
// provision complete response.
|
||||
assert.Empty(t, build.Job.Error) &&
|
||||
build.Job.Status == codersdk.ProvisionerJobCanceling
|
||||
}, 5*time.Second, 25*time.Millisecond)
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
}
|
||||
|
||||
func TestWorkspaceBuildResources(t *testing.T) {
|
||||
|
Reference in New Issue
Block a user