TestPaginatedTemplateVersions creates a list of template versions and paginate.
(t *testing.T)
| 1824 | |
| 1825 | // TestPaginatedTemplateVersions creates a list of template versions and paginate. |
| 1826 | func TestPaginatedTemplateVersions(t *testing.T) { |
| 1827 | t.Parallel() |
| 1828 | |
| 1829 | client := coderdtest.New(t, nil) |
| 1830 | user := coderdtest.CreateFirstUser(t, client) |
| 1831 | version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil) |
| 1832 | template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID) |
| 1833 | |
| 1834 | ctx, cancel := context.WithCancel(context.Background()) |
| 1835 | t.Cleanup(cancel) |
| 1836 | // Populate database with template versions. |
| 1837 | total := 9 |
| 1838 | eg, egCtx := errgroup.WithContext(ctx) |
| 1839 | templateVersionIDs := make([]uuid.UUID, total) |
| 1840 | data, err := echo.Tar(nil) |
| 1841 | require.NoError(t, err) |
| 1842 | file, err := client.Upload(egCtx, codersdk.ContentTypeTar, bytes.NewReader(data)) |
| 1843 | require.NoError(t, err) |
| 1844 | for i := 0; i < total; i++ { |
| 1845 | eg.Go(func() error { |
| 1846 | templateVersion, err := client.CreateTemplateVersion(egCtx, user.OrganizationID, codersdk.CreateTemplateVersionRequest{ |
| 1847 | Name: uuid.NewString(), |
| 1848 | TemplateID: template.ID, |
| 1849 | FileID: file.ID, |
| 1850 | StorageMethod: codersdk.ProvisionerStorageMethodFile, |
| 1851 | Provisioner: codersdk.ProvisionerTypeEcho, |
| 1852 | }) |
| 1853 | if err != nil { |
| 1854 | return err |
| 1855 | } |
| 1856 | templateVersionIDs[i] = templateVersion.ID |
| 1857 | return nil |
| 1858 | }) |
| 1859 | } |
| 1860 | err = eg.Wait() |
| 1861 | require.NoError(t, err, "create templates failed") |
| 1862 | |
| 1863 | templateVersions, err := client.TemplateVersionsByTemplate(ctx, |
| 1864 | codersdk.TemplateVersionsByTemplateRequest{ |
| 1865 | TemplateID: template.ID, |
| 1866 | }, |
| 1867 | ) |
| 1868 | require.NoError(t, err) |
| 1869 | require.Len(t, templateVersions, 10, "wrong number of template versions created") |
| 1870 | |
| 1871 | type args struct { |
| 1872 | pagination codersdk.Pagination |
| 1873 | } |
| 1874 | tests := []struct { |
| 1875 | name string |
| 1876 | args args |
| 1877 | want []codersdk.TemplateVersion |
| 1878 | expectedError string |
| 1879 | }{ |
| 1880 | { |
| 1881 | name: "Single result", |
| 1882 | args: args{pagination: codersdk.Pagination{Limit: 1}}, |
| 1883 | want: templateVersions[:1], |
nothing calls this directly
no test coverage detected