From bc679337594716888a87860989df0c431a1929e8 Mon Sep 17 00:00:00 2001 From: Mikolaj Grzaslewicz Date: Tue, 12 Sep 2023 11:47:59 +0200 Subject: [PATCH] JPERF-1053 Deprecate and stop using Issue.id Actions should mimic user behavior so Issue.key should be used --- CHANGELOG.md | 3 +++ .../performance/tools/jiraactions/api/WebJira.kt | 14 ++++++++++++++ .../jiraactions/api/action/AddCommentAction.kt | 4 ++-- .../jiraactions/api/action/EditIssueAction.kt | 4 ++-- .../jiraactions/api/action/ViewIssueAction.kt | 3 +-- .../tools/jiraactions/api/memories/Issue.kt | 3 ++- .../jiraactions/api/page/IssueNavigatorPage.kt | 1 + .../tools/jiraactions/api/page/IssuePage.kt | 1 + 8 files changed, 26 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b578a873..af5b623f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,8 +28,10 @@ Dropping a requirement of a major version of a dependency is a new contract. ### Fixed - Stop expecting a single iframe on `DashboardPage`. Fix [JPERF-149]. +- Stop using Issue.id to identify issues in `IssueNavigatorPage`. Fix [JPERF-1053]. [JPERF-149]: https://ecosystem.atlassian.net/browse/JPERF-149 +[JPERF-1053]: https://ecosystem.atlassian.net/browse/JPERF-1053 ## [3.21.2] - 2023-08-03 [3.21.2]: https://github.com/atlassian/jira-actions/compare/release-3.21.1...release-3.21.2 @@ -74,6 +76,7 @@ Dropping a requirement of a major version of a dependency is a new contract. [JPERF-1088]: https://ecosystem.atlassian.net/browse/JPERF-1088 + ## [3.20.2] - 2023-04-04 [3.20.2]: https://github.com/atlassian/jira-actions/compare/release-3.20.1...release-3.20.2 diff --git a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/WebJira.kt b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/WebJira.kt index 2b947cb6..6056a555 100644 --- a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/WebJira.kt +++ b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/WebJira.kt @@ -79,6 +79,7 @@ data class WebJira( return BrowseProjectsPage(driver) } + @Deprecated("Use goToCommentForm(String) instead") fun goToCommentForm( issueId: Long ): CommentForm { @@ -86,11 +87,24 @@ data class WebJira( return CommentForm(driver) } + fun goToCommentForm( + issueKey: String + ): CommentForm { + navigateTo("secure/AddComment!default.jspa?key=$issueKey") + return CommentForm(driver) + } + + @Deprecated("Use gotoEditIssue(String) instead") fun goToEditIssue(issueId: Long): EditIssuePage { navigateTo("secure/EditIssue!default.jspa?id=$issueId") return EditIssuePage(driver) } + fun goToEditIssue(issueKey: String): EditIssuePage { + navigateTo("secure/EditIssue!default.jspa?id=$issueKey") + return EditIssuePage(driver) + } + fun getJiraNode(): String { return driver.findElement(By.id("footer-build-information")).text } diff --git a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/action/AddCommentAction.kt b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/action/AddCommentAction.kt index 0b52ace0..a84dcbd4 100644 --- a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/action/AddCommentAction.kt +++ b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/action/AddCommentAction.kt @@ -22,10 +22,10 @@ class AddCommentAction( return } meter.measure(ADD_COMMENT) { - val commentForm = jira.goToCommentForm(issue.id).waitForButton().enterCommentText("SNARKY REMARK") + val commentForm = jira.goToCommentForm(issue.key).waitForButton().enterCommentText("SNARKY REMARK") meter.measure(ADD_COMMENT_SUBMIT) { commentForm.submit().waitForSummary() } } } -} \ No newline at end of file +} diff --git a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/action/EditIssueAction.kt b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/action/EditIssueAction.kt index b137e0a3..1f8b985a 100644 --- a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/action/EditIssueAction.kt +++ b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/action/EditIssueAction.kt @@ -24,7 +24,7 @@ class EditIssueAction( } meter.measure(EDIT_ISSUE) { val editIssueForm = jira - .goToEditIssue(issue.id) + .goToEditIssue(issue.key) .waitForEditIssueForm() .fillForm() meter.measure( @@ -36,4 +36,4 @@ class EditIssueAction( } } -} \ No newline at end of file +} diff --git a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/action/ViewIssueAction.kt b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/action/ViewIssueAction.kt index 4898d412..4ffbcd02 100644 --- a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/action/ViewIssueAction.kt +++ b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/action/ViewIssueAction.kt @@ -43,10 +43,9 @@ class ViewIssueAction private constructor( val issuePage = meter.measure( key = VIEW_ISSUE, action = { jira.goToIssue(issueKey).waitForSummary() }, - observation = { page -> + observation = { _ -> Json.createObjectBuilder() .add("issueKey", issueKey) - .add("issueId", page.getIssueId()) .build() } ) diff --git a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/memories/Issue.kt b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/memories/Issue.kt index 03282a95..58fc920a 100644 --- a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/memories/Issue.kt +++ b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/memories/Issue.kt @@ -2,7 +2,8 @@ package com.atlassian.performance.tools.jiraactions.api.memories data class Issue( val key: String, + @Deprecated("Use Issue.key instead") val id: Long, val type: String, val editable: Boolean -) \ No newline at end of file +) diff --git a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/page/IssueNavigatorPage.kt b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/page/IssueNavigatorPage.kt index 483e06e8..aae35c67 100644 --- a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/page/IssueNavigatorPage.kt +++ b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/page/IssueNavigatorPage.kt @@ -39,6 +39,7 @@ open class IssueNavigatorPage( return IssuePage(driver) } + @Deprecated("Do not use it. IssueId is no longer supported") fun selectedIssueId(): Long { return IssuePage(driver).getIssueId() } diff --git a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/page/IssuePage.kt b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/page/IssuePage.kt index be680c8d..53da5115 100644 --- a/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/page/IssuePage.kt +++ b/src/main/kotlin/com/atlassian/performance/tools/jiraactions/api/page/IssuePage.kt @@ -78,6 +78,7 @@ class IssuePage( return driver.findElement(By.cssSelector("#description-val .user-content-block")).text } + @Deprecated("Do not use it. IssueId is not supported anymore") fun getIssueId(): Long = driver.findElement(By.id("key-val")).getAttribute("rel").toLong() fun getIssueType(): String = driver.findElement(By.id("type-val")).text