MCPcopy Index your code
hub / github.com/coder/coder / TestPatchCancelTemplateVersion

Function TestPatchCancelTemplateVersion

coderd/templateversions_test.go:895–986  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

893}
894
895func TestPatchCancelTemplateVersion(t *testing.T) {
896 t.Parallel()
897 t.Run("AlreadyCompleted", func(t *testing.T) {
898 t.Parallel()
899 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
900 user := coderdtest.CreateFirstUser(t, client)
901 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
902 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
903
904 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
905 defer cancel()
906
907 err := client.CancelTemplateVersion(ctx, version.ID)
908 var apiErr *codersdk.Error
909 require.ErrorAs(t, err, &apiErr)
910 require.Equal(t, http.StatusBadRequest, apiErr.StatusCode())
911 })
912 t.Run("AlreadyCanceled", func(t *testing.T) {
913 t.Parallel()
914 client := coderdtest.New(t, &coderdtest.Options{
915 IncludeProvisionerDaemon: true,
916 })
917 user := coderdtest.CreateFirstUser(t, client)
918 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
919 Parse: echo.ParseComplete,
920 ProvisionPlan: []*proto.Response{{
921 Type: &proto.Response_Log{
922 Log: &proto.Log{},
923 },
924 }},
925 })
926
927 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
928 defer cancel()
929
930 coderdtest.AwaitTemplateVersionJobRunning(t, client, version.ID)
931 err := client.CancelTemplateVersion(ctx, version.ID)
932 require.NoError(t, err)
933 err = client.CancelTemplateVersion(ctx, version.ID)
934 var apiErr *codersdk.Error
935 require.ErrorAs(t, err, &apiErr)
936 require.Equal(t, http.StatusBadRequest, apiErr.StatusCode())
937 require.Eventually(t, func() bool {
938 var err error
939 version, err = client.TemplateVersion(ctx, version.ID)
940 return assert.NoError(t, err) && version.Job.Status == codersdk.ProvisionerJobFailed
941 }, testutil.WaitShort, testutil.IntervalFast)
942 })
943 // TODO(Cian): until we are able to test cancellation properly, validating
944 // Running -> Canceling is the best we can do for now.
945 t.Run("Canceling", func(t *testing.T) {
946 t.Parallel()
947 client := coderdtest.New(t, &coderdtest.Options{
948 IncludeProvisionerDaemon: true,
949 })
950 user := coderdtest.CreateFirstUser(t, client)
951 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
952 Parse: echo.ParseComplete,

Callers

nothing calls this directly

Calls 11

StatusCodeMethod · 0.95
NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
CancelTemplateVersionMethod · 0.80
RunMethod · 0.65
TemplateVersionMethod · 0.65
LogfMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected