|
9 | 9 | "github.com/google/uuid"
|
10 | 10 | "github.com/stretchr/testify/assert"
|
11 | 11 | "github.com/stretchr/testify/require"
|
| 12 | + "golang.org/x/sync/errgroup" |
12 | 13 |
|
13 | 14 | "github.com/coder/coder/coderd/coderdtest"
|
14 | 15 | "github.com/coder/coder/codersdk"
|
@@ -815,25 +816,45 @@ func TestPaginatedTemplateVersions(t *testing.T) {
|
815 | 816 | _ = coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
|
816 | 817 | template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
|
817 | 818 |
|
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) |
819 | 821 | defer cancel()
|
820 | 822 |
|
821 | 823 | // Populate database with template versions.
|
822 | 824 | total := 9
|
| 825 | + eg, egCtx := errgroup.WithContext(ctx) |
| 826 | + templateVersionIDs := make([]uuid.UUID, total) |
823 | 827 | 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 |
833 | 851 | })
|
834 |
| - require.NoError(t, err) |
| 852 | + } |
| 853 | + err := eg.Wait() |
| 854 | + require.NoError(t, err) |
835 | 855 |
|
836 |
| - _ = coderdtest.AwaitTemplateVersionJob(t, client, templateVersion.ID) |
| 856 | + for _, id := range templateVersionIDs { |
| 857 | + _ = coderdtest.AwaitTemplateVersionJob(t, client, id) |
837 | 858 | }
|
838 | 859 |
|
839 | 860 | templateVersions, err := client.TemplateVersionsByTemplate(ctx,
|
|
0 commit comments