(t testing.TB, client *codersdk.Client, mimeType string, organizationID uuid.UUID, res *echo.Responses, mutators ...func(*codersdk.CreateTemplateVersionRequest))
| 1045 | } |
| 1046 | |
| 1047 | func CreateTemplateVersionMimeType(t testing.TB, client *codersdk.Client, mimeType string, organizationID uuid.UUID, res *echo.Responses, mutators ...func(*codersdk.CreateTemplateVersionRequest)) codersdk.TemplateVersion { |
| 1048 | t.Helper() |
| 1049 | data, err := echo.TarWithOptions(context.Background(), client.Logger(), res) |
| 1050 | require.NoError(t, err) |
| 1051 | |
| 1052 | switch mimeType { |
| 1053 | case codersdk.ContentTypeTar: |
| 1054 | // do nothing |
| 1055 | case codersdk.ContentTypeZip: |
| 1056 | data, err = archive.CreateZipFromTar(tar.NewReader(bytes.NewBuffer(data)), int64(len(data))) |
| 1057 | require.NoError(t, err, "creating zip") |
| 1058 | default: |
| 1059 | t.Fatal("unexpected mime type", mimeType) |
| 1060 | } |
| 1061 | |
| 1062 | file, err := client.Upload(context.Background(), mimeType, bytes.NewReader(data)) |
| 1063 | require.NoError(t, err) |
| 1064 | |
| 1065 | req := codersdk.CreateTemplateVersionRequest{ |
| 1066 | FileID: file.ID, |
| 1067 | StorageMethod: codersdk.ProvisionerStorageMethodFile, |
| 1068 | Provisioner: codersdk.ProvisionerTypeEcho, |
| 1069 | } |
| 1070 | for _, mut := range mutators { |
| 1071 | mut(&req) |
| 1072 | } |
| 1073 | |
| 1074 | templateVersion, err := client.CreateTemplateVersion(context.Background(), organizationID, req) |
| 1075 | require.NoError(t, err) |
| 1076 | return templateVersion |
| 1077 | } |
| 1078 | |
| 1079 | // CreateTemplateVersion creates a template import provisioner job |
| 1080 | // with the responses provided. It uses the "echo" provisioner for compatibility |
no test coverage detected