Skip to content

Commit 0a7642c

Browse files
committed
chore: Speed up TestPaginatedTemplateVersions via errgroup
1 parent 421e52d commit 0a7642c

File tree

1 file changed

+33
-12
lines changed

1 file changed

+33
-12
lines changed

coderd/templateversions_test.go

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"github.com/google/uuid"
1010
"github.com/stretchr/testify/assert"
1111
"github.com/stretchr/testify/require"
12+
"golang.org/x/sync/errgroup"
1213

1314
"github.com/coder/coder/coderd/coderdtest"
1415
"github.com/coder/coder/codersdk"
@@ -815,25 +816,45 @@ func TestPaginatedTemplateVersions(t *testing.T) {
815816
_ = coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
816817
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
817818

818-
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
819+
// This test takes longer than a long time.
820+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong*2)
819821
defer cancel()
820822

821823
// Populate database with template versions.
822824
total := 9
825+
eg, egCtx := errgroup.WithContext(ctx)
826+
templateVersionIDs := make([]uuid.UUID, total)
823827
for i := 0; i < total; i++ {
824-
data, err := echo.Tar(nil)
825-
require.NoError(t, err)
826-
file, err := client.Upload(ctx, codersdk.ContentTypeTar, data)
827-
require.NoError(t, err)
828-
templateVersion, err := client.CreateTemplateVersion(ctx, user.OrganizationID, codersdk.CreateTemplateVersionRequest{
829-
TemplateID: template.ID,
830-
StorageSource: file.Hash,
831-
StorageMethod: codersdk.ProvisionerStorageMethodFile,
832-
Provisioner: codersdk.ProvisionerTypeEcho,
828+
i := i
829+
eg.Go(func() error {
830+
data, err := echo.Tar(nil)
831+
if err != nil {
832+
return err
833+
}
834+
file, err := client.Upload(egCtx, codersdk.ContentTypeTar, data)
835+
if err != nil {
836+
return err
837+
}
838+
templateVersion, err := client.CreateTemplateVersion(egCtx, user.OrganizationID, codersdk.CreateTemplateVersionRequest{
839+
TemplateID: template.ID,
840+
StorageSource: file.Hash,
841+
StorageMethod: codersdk.ProvisionerStorageMethodFile,
842+
Provisioner: codersdk.ProvisionerTypeEcho,
843+
})
844+
if err != nil {
845+
return err
846+
}
847+
848+
templateVersionIDs[i] = templateVersion.ID
849+
850+
return nil
833851
})
834-
require.NoError(t, err)
852+
}
853+
err := eg.Wait()
854+
require.NoError(t, err)
835855

836-
_ = coderdtest.AwaitTemplateVersionJob(t, client, templateVersion.ID)
856+
for _, id := range templateVersionIDs {
857+
_ = coderdtest.AwaitTemplateVersionJob(t, client, id)
837858
}
838859

839860
templateVersions, err := client.TemplateVersionsByTemplate(ctx,

0 commit comments

Comments
 (0)