From 41486e5f228b62ff527eb5f7b9ba3189d7d7f82d Mon Sep 17 00:00:00 2001 From: Lum Date: Tue, 26 Aug 2025 11:25:24 -0700 Subject: [PATCH] fix and regression for 53713 --- .../labkey/test/tests/issues/IssuesTest.java | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/org/labkey/test/tests/issues/IssuesTest.java b/src/org/labkey/test/tests/issues/IssuesTest.java index dc9a0a1c68..e7d28d3e35 100644 --- a/src/org/labkey/test/tests/issues/IssuesTest.java +++ b/src/org/labkey/test/tests/issues/IssuesTest.java @@ -83,6 +83,7 @@ public class IssuesTest extends BaseWebDriverTest private static final String USER1 = "user1_issuetest@issues.test"; private static final String USER2 = "user2_issuetest@issues.test"; private static final String USER3 = "user3_issuetest@issues.test"; + private static final String USER4 = "user4_issuetest@issues.test"; private static final String user = "reader@issues.test"; private static final Map ISSUE_0 = new HashMap<>(Maps.of("title", ISSUE_TITLE_0, "Priority", "2", "comment", "a bright flash of light")); private static final Map ISSUE_1 = new HashMap<>(Maps.of("title", ISSUE_TITLE_1, "Priority", "1", "comment", "alien autopsy")); @@ -155,7 +156,7 @@ protected String getProjectName() @Override protected void doCleanup(boolean afterTest) throws TestTimeoutException { - _userHelper.deleteUsers(false, USER1, USER2); + _userHelper.deleteUsers(false, USER1, USER2, USER3, USER4); _containerHelper.deleteProject(getProjectName(), afterTest); } @@ -179,9 +180,11 @@ public void doInit() _userHelper.createUser(USER1); _userHelper.createUser(USER2); _userHelper.createUser(USER3); + _userHelper.createUser(USER4); _permissionsHelper.addUserToProjGroup(getUsername(), getProjectName(), TEST_GROUP); _permissionsHelper.addUserToProjGroup(USER1, getProjectName(), TEST_GROUP); _permissionsHelper.addUserToProjGroup(USER3, getProjectName(), TEST_GROUP); + _permissionsHelper.addUserToProjGroup(USER4, getProjectName(), TEST_GROUP); // Create issues clickProject(getProjectName()); @@ -954,6 +957,32 @@ public void testAssignedToOnResolveAndClose() throws Exception assertEquals("Wrong assignedTo after issue close.", closeTo, closePage.assignedTo().get()); ListPage listPage = closePage.save(); assertEquals("Wrong assignedTo after issue close.", closeTo, listPage.dataRegion().getDataAsText(0, "Assigned To")); + + // Regression for 53713. Close an issue opened by a user no longer valid for the project + String issueId; + String issueTitle = "Repro for 53713"; + + impersonate(USER4); + { + detailsPage = _issuesHelper.addIssue(issueTitle, _userHelper.getDisplayNameForEmail(getUsername())); + issueId = detailsPage.getIssueId(); + } + stopImpersonating(); + + clickProject(getProjectName()); + detailsPage = DetailsPage.beginAt(this, issueId); + + resolvePage = detailsPage.clickResolve(); + assertEquals("Wrong assignedTo after issue resolve.", _userHelper.getDisplayNameForEmail(USER4), resolvePage.assignedTo().get()); + resolvePage.save(); + + // remove user4 + _userHelper.deleteUsers(false, USER4); + closePage = detailsPage.clickClose(); + closePage.save(); + + DetailsPage.beginAt(this, issueId); + assertTextPresent("closed", issueTitle); } // NOTE: returning string here to avoid extra casting