Merge branch 'main' into avm99963-monorail
Merged commit 3779da353b36d43cf778e7d4f468097714dd4540
GitOrigin-RevId: 6451a5c6b75afb0fd1f37b3f14521148d0722ea8
diff --git a/static_src/elements/issue-detail/metadata/mr-edit-metadata/mr-edit-issue.js b/static_src/elements/issue-detail/metadata/mr-edit-metadata/mr-edit-issue.js
index d9cec5e..248c7d5 100644
--- a/static_src/elements/issue-detail/metadata/mr-edit-metadata/mr-edit-issue.js
+++ b/static_src/elements/issue-detail/metadata/mr-edit-metadata/mr-edit-issue.js
@@ -12,7 +12,7 @@
import {arrayToEnglish} from 'shared/helpers.js';
import './mr-edit-metadata.js';
import 'shared/typedef.js';
-
+import {migratedTypes} from 'shared/issue-fields.js';
import ClientLogger from 'monitoring/client-logger.js';
const DEBOUNCED_PRESUBMIT_TIME_OUT = 400;
@@ -45,11 +45,7 @@
class="warning-icon material-icons"
icon="warning"
>warning</i>
- <p>
- This issue has moved to
- ${this._migratedLink}. Updates should be posted in
- ${this._migratedLink}.
- </p>
+ ${this._migratedLink}
</div>
<chops-button
class="legacy-edit"
@@ -130,6 +126,12 @@
type: String,
},
/**
+ * Type of the issue migrated to.
+ */
+ migratedType: {
+ type: migratedTypes,
+ },
+ /**
* All comments, including descriptions.
*/
comments: {
@@ -211,7 +213,7 @@
/** @override */
stateChanged(state) {
this.migratedId = issueV0.migratedId(state);
-
+ this.migratedType = issueV0.migratedType(state);
this.issue = issueV0.viewedIssue(state);
this.issueRef = issueV0.viewedIssueRef(state);
this.comments = issueV0.comments(state);
@@ -347,10 +349,16 @@
}
/**
- * @return {string} the link of the issue in Issue Tracker.
+ * @return {string} the link of the issue in Issue Tracker or Launch.
*/
- get _migratedLink() {
- return html`<a href="https://issuetracker.google.com/issues/${this.migratedId}">b/${this.migratedId}</a>`;
+ get _migratedLink() {
+ if (this.migratedType === migratedTypes.BUGANIZER_TYPE) {
+ const link =
+ html`<a href="https://issuetracker.google.com/issues/${this.migratedId}">b/${this.migratedId}</a>`;
+ return html`<p>This issue has moved to ${link}. Updates should be posted in ${link}.</p>`;
+ } else {
+ return html`<p>This issue has been migrated to Launch, see link in final comment below.</p>`;
+ }
}
/**
diff --git a/static_src/elements/issue-detail/metadata/mr-edit-metadata/mr-edit-issue.test.js b/static_src/elements/issue-detail/metadata/mr-edit-metadata/mr-edit-issue.test.js
index 880064b..e781328 100644
--- a/static_src/elements/issue-detail/metadata/mr-edit-metadata/mr-edit-issue.test.js
+++ b/static_src/elements/issue-detail/metadata/mr-edit-metadata/mr-edit-issue.test.js
@@ -7,6 +7,7 @@
import {prpcClient} from 'prpc-client-instance.js';
import {MrEditIssue, allowRemovedRestrictions} from './mr-edit-issue.js';
import {clientLoggerFake} from 'shared/test/fakes.js';
+import {migratedTypes} from 'shared/issue-fields.js';
let element;
let clock;
@@ -308,16 +309,34 @@
it('shows notice if issue migrated', async () => {
element.migratedId = '1234';
-
+ element.migratedType = migratedTypes.LAUNCH_TYPE
await element.updateComplete;
assert.isNotNull(element.querySelector('.migrated-banner'));
assert.isNotNull(element.querySelector('.legacy-edit'));
});
+ it('shows buganizer link when migrated to buganizer', async () => {
+ element.migratedId = '1234';
+ element.migratedType = migratedTypes.BUGANIZER_TYPE
+ await element.updateComplete;
+
+ const link = element.querySelector('.migrated-banner a');
+ assert.include(link.textContent, 'b/1234');
+ });
+
+ it('shows launch banner when migrated to launch', async () => {
+ element.migratedId = '1234';
+ element.migratedType = migratedTypes.LAUNCH_TYPE
+ await element.updateComplete;
+
+ const link = element.querySelector('.migrated-banner');
+ assert.include(link.textContent, 'This issue has been migrated to Launch, see link in final comment below');
+ });
+
it('hides edit form if issue migrated', async () => {
element.migratedId = '1234';
-
+ element.migratedType = migratedTypes.LAUNCH_TYPE
await element.updateComplete;
const editForm = element.querySelector('mr-edit-metadata');
@@ -326,7 +345,7 @@
it('unhides edit form on button click', async () => {
element.migratedId = '1234';
-
+ element.migratedType = migratedTypes.LAUNCH_TYPE
await element.updateComplete;
const button = element.querySelector('.legacy-edit');