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');