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

Function TestUpdateJob

coderd/provisionerdserver/provisionerdserver_test.go:863–1286  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

861}
862
863func TestUpdateJob(t *testing.T) {
864 t.Parallel()
865 ctx := context.Background()
866 t.Run("NotFound", func(t *testing.T) {
867 t.Parallel()
868 srv, _, _, _ := setup(t, false, nil)
869 _, err := srv.UpdateJob(ctx, &proto.UpdateJobRequest{
870 JobId: "hello",
871 })
872 require.ErrorContains(t, err, "invalid UUID")
873
874 _, err = srv.UpdateJob(ctx, &proto.UpdateJobRequest{
875 JobId: uuid.NewString(),
876 })
877 require.ErrorContains(t, err, "no rows in result set")
878 })
879 t.Run("NotRunning", func(t *testing.T) {
880 t.Parallel()
881 srv, db, _, pd := setup(t, false, nil)
882 user := dbgen.User(t, db, database.User{})
883 version := dbgen.TemplateVersion(t, db, database.TemplateVersion{
884 CreatedBy: user.ID,
885 OrganizationID: pd.OrganizationID,
886 JobID: uuid.New(),
887 })
888 job, err := db.InsertProvisionerJob(ctx, database.InsertProvisionerJobParams{
889 ID: version.JobID,
890 Provisioner: database.ProvisionerTypeEcho,
891 StorageMethod: database.ProvisionerStorageMethodFile,
892 Type: database.ProvisionerJobTypeTemplateVersionDryRun,
893 Input: must(json.Marshal(provisionerdserver.TemplateVersionDryRunJob{
894 TemplateVersionID: version.ID,
895 })),
896 OrganizationID: pd.OrganizationID,
897 Tags: pd.Tags,
898 })
899 require.NoError(t, err)
900 _, err = srv.UpdateJob(ctx, &proto.UpdateJobRequest{
901 JobId: job.ID.String(),
902 })
903 require.ErrorContains(t, err, "job isn't running yet")
904 })
905 // This test prevents runners from updating jobs they don't own!
906 t.Run("NotOwner", func(t *testing.T) {
907 t.Parallel()
908 srv, db, _, pd := setup(t, false, nil)
909 user := dbgen.User(t, db, database.User{})
910 version := dbgen.TemplateVersion(t, db, database.TemplateVersion{
911 CreatedBy: user.ID,
912 OrganizationID: pd.OrganizationID,
913 JobID: uuid.New(),
914 })
915 job, err := db.InsertProvisionerJob(ctx, database.InsertProvisionerJobParams{
916 ID: version.JobID,
917 Provisioner: database.ProvisionerTypeEcho,
918 StorageMethod: database.ProvisionerStorageMethodFile,
919 Type: database.ProvisionerJobTypeTemplateVersionDryRun,
920 Input: must(json.Marshal(provisionerdserver.TemplateVersionDryRunJob{

Callers

nothing calls this directly

Calls 15

UserFunction · 0.92
TemplateVersionFunction · 0.92
NowFunction · 0.92
setupFunction · 0.70
mustFunction · 0.70
RunMethod · 0.65
UpdateJobMethod · 0.65
NewMethod · 0.65
InsertProvisionerJobMethod · 0.65
AcquireProvisionerJobMethod · 0.65
InTxMethod · 0.65

Tested by

no test coverage detected