mirror of
https://github.com/go-gitea/gitea.git
synced 2026-06-29 20:46:36 +02:00
adjustment
This commit is contained in:
parent
d1ac56801e
commit
f13ae8a2e7
@ -204,15 +204,16 @@ func FindWorkflowsByProjectID(ctx context.Context, projectID int64) ([]*Workflow
|
||||
return workflows, nil
|
||||
}
|
||||
|
||||
func GetWorkflowByID(ctx context.Context, id int64) (*Workflow, error) {
|
||||
p, exist, err := db.GetByID[Workflow](ctx, id)
|
||||
func GetWorkflowByProjectAndID(ctx context.Context, projectID, workflowID int64) (*Workflow, error) {
|
||||
var workflow Workflow
|
||||
exist, err := db.GetEngine(ctx).Where("project_id=? AND id=?", projectID, workflowID).Get(&workflow)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !exist {
|
||||
return nil, db.ErrNotExist{Resource: "ProjectWorkflow", ID: id}
|
||||
return nil, db.ErrNotExist{Resource: "ProjectWorkflow", ID: workflowID}
|
||||
}
|
||||
return p, nil
|
||||
return &workflow, nil
|
||||
}
|
||||
|
||||
func CreateWorkflow(ctx context.Context, wf *Workflow) error {
|
||||
|
||||
@ -126,7 +126,7 @@ func TestCreateWorkflow(t *testing.T) {
|
||||
assert.NotZero(t, workflow.ID, "Workflow ID should be set after creation")
|
||||
|
||||
// Verify the workflow was created
|
||||
createdWorkflow, err := GetWorkflowByID(t.Context(), workflow.ID)
|
||||
createdWorkflow, err := GetWorkflowByProjectAndID(t.Context(), project.ID, workflow.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, project.ID, createdWorkflow.ProjectID)
|
||||
assert.Equal(t, WorkflowEventItemOpened, createdWorkflow.WorkflowEvent)
|
||||
@ -167,7 +167,7 @@ func TestUpdateWorkflow(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Verify the update
|
||||
updatedWorkflow, err := GetWorkflowByID(t.Context(), workflow.ID)
|
||||
updatedWorkflow, err := GetWorkflowByProjectAndID(t.Context(), project.ID, workflow.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, updatedWorkflow.Enabled)
|
||||
assert.Len(t, updatedWorkflow.WorkflowFilters, 1)
|
||||
@ -198,7 +198,7 @@ func TestDeleteWorkflow(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Verify it was deleted
|
||||
_, err = GetWorkflowByID(t.Context(), workflowID)
|
||||
_, err = GetWorkflowByProjectAndID(t.Context(), project.ID, workflowID)
|
||||
assert.Error(t, err)
|
||||
assert.True(t, db.IsErrNotExist(err), "Should return ErrNotExist")
|
||||
}
|
||||
@ -224,7 +224,7 @@ func TestEnableDisableWorkflow(t *testing.T) {
|
||||
err = DisableWorkflow(t.Context(), workflow.ID)
|
||||
assert.NoError(t, err)
|
||||
|
||||
disabledWorkflow, err := GetWorkflowByID(t.Context(), workflow.ID)
|
||||
disabledWorkflow, err := GetWorkflowByProjectAndID(t.Context(), project.ID, workflow.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.False(t, disabledWorkflow.Enabled)
|
||||
|
||||
@ -232,7 +232,7 @@ func TestEnableDisableWorkflow(t *testing.T) {
|
||||
err = EnableWorkflow(t.Context(), workflow.ID)
|
||||
assert.NoError(t, err)
|
||||
|
||||
enabledWorkflow, err := GetWorkflowByID(t.Context(), workflow.ID)
|
||||
enabledWorkflow, err := GetWorkflowByProjectAndID(t.Context(), project.ID, workflow.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, enabledWorkflow.Enabled)
|
||||
}
|
||||
@ -294,7 +294,7 @@ func TestWorkflowLoadProject(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Get the workflow
|
||||
loadedWorkflow, err := GetWorkflowByID(t.Context(), workflow.ID)
|
||||
loadedWorkflow, err := GetWorkflowByProjectAndID(t.Context(), project.ID, workflow.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.Nil(t, loadedWorkflow.Project)
|
||||
|
||||
|
||||
@ -363,6 +363,10 @@ func Workflows(ctx *context.Context) {
|
||||
break
|
||||
}
|
||||
}
|
||||
if curWorkflow == nil {
|
||||
ctx.NotFound(nil)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
ctx.Data["CurWorkflow"] = curWorkflow
|
||||
@ -455,13 +459,13 @@ func WorkflowsPost(ctx *context.Context) {
|
||||
}
|
||||
|
||||
// Update an existing workflow
|
||||
wf, err := project_model.GetWorkflowByID(ctx, eventID)
|
||||
wf, err := project_model.GetWorkflowByProjectAndID(ctx, p.ID, eventID)
|
||||
if err != nil {
|
||||
ctx.ServerError("GetWorkflowByID", err)
|
||||
return
|
||||
}
|
||||
if wf.ProjectID != p.ID {
|
||||
ctx.NotFound(nil)
|
||||
if db.IsErrNotExist(err) {
|
||||
ctx.NotFound(nil)
|
||||
} else {
|
||||
ctx.ServerError("GetWorkflowByID", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@ -494,14 +498,14 @@ func WorkflowsStatus(ctx *context.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
workflowID, _ := strconv.ParseInt(ctx.PathParam("workflow_id"), 10, 64)
|
||||
wf, err := project_model.GetWorkflowByID(ctx, workflowID)
|
||||
workflowID := ctx.PathParamInt64("workflow_id")
|
||||
wf, err := project_model.GetWorkflowByProjectAndID(ctx, p.ID, workflowID)
|
||||
if err != nil {
|
||||
ctx.ServerError("GetWorkflowByID", err)
|
||||
return
|
||||
}
|
||||
if wf.ProjectID != p.ID {
|
||||
ctx.NotFound(nil)
|
||||
if db.IsErrNotExist(err) {
|
||||
ctx.NotFound(nil)
|
||||
} else {
|
||||
ctx.ServerError("GetWorkflowByID", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@ -534,8 +538,8 @@ func WorkflowsDelete(ctx *context.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
workflowID, _ := strconv.ParseInt(ctx.PathParam("workflow_id"), 10, 64)
|
||||
wf, err := project_model.GetWorkflowByID(ctx, workflowID)
|
||||
workflowID := ctx.PathParamInt64("workflow_id")
|
||||
wf, err := project_model.GetWorkflowByProjectAndID(ctx, p.ID, workflowID)
|
||||
if err != nil {
|
||||
if db.IsErrNotExist(err) {
|
||||
ctx.NotFound(nil)
|
||||
@ -544,12 +548,8 @@ func WorkflowsDelete(ctx *context.Context) {
|
||||
}
|
||||
return
|
||||
}
|
||||
if wf.ProjectID != p.ID {
|
||||
ctx.NotFound(nil)
|
||||
return
|
||||
}
|
||||
|
||||
if err := project_model.DeleteWorkflow(ctx, workflowID); err != nil {
|
||||
if err := project_model.DeleteWorkflow(ctx, wf.ID); err != nil {
|
||||
ctx.ServerError("DeleteWorkflow", err)
|
||||
return
|
||||
}
|
||||
|
||||
@ -20,7 +20,7 @@ import (
|
||||
"code.gitea.io/gitea/models/unit"
|
||||
"code.gitea.io/gitea/models/unittest"
|
||||
user_model "code.gitea.io/gitea/models/user"
|
||||
"code.gitea.io/gitea/modules/container"
|
||||
"code.gitea.io/gitea/modules/base"
|
||||
"code.gitea.io/gitea/modules/indexer/issues"
|
||||
"code.gitea.io/gitea/modules/references"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
@ -138,9 +138,7 @@ func testNewIssue(t *testing.T, session *TestSession, user, repo string, opts ne
|
||||
link, exists := htmlDoc.doc.Find("form.ui.form").Attr("action")
|
||||
assert.True(t, exists, "The template has changed")
|
||||
|
||||
labelIDs := container.FilterSlice(opts.LabelIDs, func(id int64) (string, bool) {
|
||||
return strconv.FormatInt(id, 10), id != 0
|
||||
})
|
||||
labelIDs := base.Int64sToStrings(opts.LabelIDs)
|
||||
|
||||
req = NewRequestWithValues(t, "POST", link, map[string]string{
|
||||
"title": opts.Title,
|
||||
|
||||
@ -275,7 +275,7 @@ func TestProjectWorkflowUpdate(t *testing.T) {
|
||||
assert.True(t, result["success"].(bool))
|
||||
|
||||
// Verify workflow was updated
|
||||
updatedWorkflow, err := project_model.GetWorkflowByID(t.Context(), workflow.ID)
|
||||
updatedWorkflow, err := project_model.GetWorkflowByProjectAndID(t.Context(), project.ID, workflow.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, updatedWorkflow.Enabled)
|
||||
assert.Len(t, updatedWorkflow.WorkflowFilters, 1)
|
||||
@ -327,7 +327,7 @@ func TestProjectWorkflowToggleStatus(t *testing.T) {
|
||||
assert.True(t, result["success"].(bool), "Response should indicate success")
|
||||
|
||||
// Verify status was changed to disabled
|
||||
updatedWorkflow, err := project_model.GetWorkflowByID(t.Context(), workflow.ID)
|
||||
updatedWorkflow, err := project_model.GetWorkflowByProjectAndID(t.Context(), project.ID, workflow.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.False(t, updatedWorkflow.Enabled, "Workflow should be disabled")
|
||||
})
|
||||
@ -348,7 +348,7 @@ func TestProjectWorkflowToggleStatus(t *testing.T) {
|
||||
assert.True(t, result["success"].(bool), "Response should indicate success")
|
||||
|
||||
// Verify status was changed back to enabled
|
||||
updatedWorkflow, err := project_model.GetWorkflowByID(t.Context(), workflow.ID)
|
||||
updatedWorkflow, err := project_model.GetWorkflowByProjectAndID(t.Context(), project.ID, workflow.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, updatedWorkflow.Enabled, "Workflow should be enabled")
|
||||
})
|
||||
@ -395,7 +395,7 @@ func TestProjectWorkflowDelete(t *testing.T) {
|
||||
assert.True(t, result["success"].(bool), "Delete response should indicate success")
|
||||
|
||||
// Verify workflow was deleted - should return ErrNotExist
|
||||
_, err = project_model.GetWorkflowByID(t.Context(), workflow.ID)
|
||||
_, err = project_model.GetWorkflowByProjectAndID(t.Context(), project.ID, workflow.ID)
|
||||
assert.Error(t, err, "Should return an error when workflow doesn't exist")
|
||||
assert.True(t, db.IsErrNotExist(err), "Error should be ErrNotExist type")
|
||||
|
||||
@ -548,7 +548,7 @@ func TestProjectWorkflowValidation(t *testing.T) {
|
||||
assert.Equal(t, "At least one action must be configured", result["errorMessage"])
|
||||
|
||||
// Verify the workflow was not changed
|
||||
unchangedWorkflow, err := project_model.GetWorkflowByID(t.Context(), workflow.ID)
|
||||
unchangedWorkflow, err := project_model.GetWorkflowByProjectAndID(t.Context(), project.ID, workflow.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, unchangedWorkflow.WorkflowActions, 1, "Workflow should still have the original action")
|
||||
})
|
||||
|
||||
@ -698,7 +698,6 @@ onUnmounted(() => {
|
||||
class="ui small button"
|
||||
@click="toggleEditMode"
|
||||
>
|
||||
<i class="times icon"/>
|
||||
{{ locale.cancel }}
|
||||
</button>
|
||||
|
||||
@ -708,7 +707,6 @@ onUnmounted(() => {
|
||||
@click="saveWorkflow"
|
||||
:disabled="store.saving"
|
||||
>
|
||||
<i class="save icon"/>
|
||||
{{ locale.save }}
|
||||
</button>
|
||||
|
||||
@ -718,7 +716,6 @@ onUnmounted(() => {
|
||||
class="ui small red button"
|
||||
@click="deleteWorkflow"
|
||||
>
|
||||
<i class="trash icon"/>
|
||||
{{ locale.delete }}
|
||||
</button>
|
||||
</template>
|
||||
@ -730,17 +727,15 @@ onUnmounted(() => {
|
||||
class="ui small primary button"
|
||||
@click="toggleEditMode"
|
||||
>
|
||||
<i class="edit icon"/>
|
||||
{{ locale.edit }}
|
||||
</button>
|
||||
|
||||
<!-- Enable/Disable Button -->
|
||||
<button
|
||||
class="ui small button"
|
||||
:class="store.selectedWorkflow.enabled ? 'basic red' : 'green'"
|
||||
:class="store.selectedWorkflow.enabled ? 'red' : 'green'"
|
||||
@click="toggleWorkflowStatus"
|
||||
>
|
||||
<i :class="store.selectedWorkflow.enabled ? 'pause icon' : 'play icon'"/>
|
||||
{{ store.selectedWorkflow.enabled ? locale.disable : locale.enable }}
|
||||
</button>
|
||||
|
||||
@ -750,7 +745,6 @@ onUnmounted(() => {
|
||||
@click="cloneWorkflow(store.selectedWorkflow)"
|
||||
title="Clone this workflow"
|
||||
>
|
||||
<i class="copy icon"/>
|
||||
{{ locale.clone }}
|
||||
</button>
|
||||
</template>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user