Skip to content

Commit 58dce9b

Browse files
SupenByszclaude
andcommitted
test: 修复项目板 API 集成测试中的两个测试失败
修复内容: 1. TestAPIProjectPermissions: 修正测试逻辑,将权限测试用户从 user2(repo 所有者)改为 user1(真正的非协作者) 2. TestAPIAddIssueToProjectColumn: 修正验证逻辑,在加载 ProjectIssue 时同时指定 ProjectID 和 IssueID,避免加载 fixture 中的错误记录 根本原因: - TestAPIProjectPermissions: 测试使用 repo1 的 owner(user2)进行权限测试,导致预期的 403 错误变成了 200 - TestAPIAddIssueToProjectColumn: 测试验证时只通过 IssueID 查询,导致加载了 fixture 中的旧记录而不是新插入的记录 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 1abaf6f commit 58dce9b

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

tests/integration/api_repo_project_test.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,10 @@ func TestAPIAddIssueToProjectColumn(t *testing.T) {
507507
MakeRequest(t, req, http.StatusCreated)
508508

509509
// Verify issue is in the column
510-
projectIssue := unittest.AssertExistsAndLoadBean(t, &project_model.ProjectIssue{IssueID: issue.ID})
510+
projectIssue := unittest.AssertExistsAndLoadBean(t, &project_model.ProjectIssue{
511+
ProjectID: project.ID,
512+
IssueID: issue.ID,
513+
})
511514
assert.Equal(t, column1.ID, projectIssue.ProjectColumnID)
512515

513516
// Test moving issue to another column
@@ -517,7 +520,10 @@ func TestAPIAddIssueToProjectColumn(t *testing.T) {
517520
MakeRequest(t, req, http.StatusCreated)
518521

519522
// Verify issue moved to new column
520-
projectIssue = unittest.AssertExistsAndLoadBean(t, &project_model.ProjectIssue{IssueID: issue.ID})
523+
projectIssue = unittest.AssertExistsAndLoadBean(t, &project_model.ProjectIssue{
524+
ProjectID: project.ID,
525+
IssueID: issue.ID,
526+
})
521527
assert.Equal(t, column2.ID, projectIssue.ProjectColumnID)
522528

523529
// Test adding same issue to same column (should be idempotent)
@@ -544,7 +550,7 @@ func TestAPIProjectPermissions(t *testing.T) {
544550

545551
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
546552
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID})
547-
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user2"})
553+
nonCollaborator := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user1"})
548554

549555
// Create a test project
550556
project := &project_model.Project{
@@ -561,7 +567,7 @@ func TestAPIProjectPermissions(t *testing.T) {
561567
}()
562568

563569
ownerToken := getUserToken(t, owner.Name, auth_model.AccessTokenScopeWriteIssue)
564-
user2Token := getUserToken(t, user2.Name, auth_model.AccessTokenScopeWriteIssue)
570+
nonCollaboratorToken := getUserToken(t, nonCollaborator.Name, auth_model.AccessTokenScopeWriteIssue)
565571

566572
// Owner should be able to read
567573
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/projects/%d", owner.Name, repo.Name, project.ID).
@@ -575,15 +581,15 @@ func TestAPIProjectPermissions(t *testing.T) {
575581
}).AddTokenAuth(ownerToken)
576582
MakeRequest(t, req, http.StatusOK)
577583

578-
// User2 (non-collaborator) should not be able to update
579-
anotherTitle := "Updated by User2"
584+
// Non-collaborator should not be able to update
585+
anotherTitle := "Updated by Non-collaborator"
580586
req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s/projects/%d", owner.Name, repo.Name, project.ID), &api.EditProjectOption{
581587
Title: &anotherTitle,
582-
}).AddTokenAuth(user2Token)
588+
}).AddTokenAuth(nonCollaboratorToken)
583589
MakeRequest(t, req, http.StatusForbidden)
584590

585-
// User2 should not be able to delete
591+
// Non-collaborator should not be able to delete
586592
req = NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/projects/%d", owner.Name, repo.Name, project.ID).
587-
AddTokenAuth(user2Token)
593+
AddTokenAuth(nonCollaboratorToken)
588594
MakeRequest(t, req, http.StatusForbidden)
589595
}

0 commit comments

Comments
 (0)