Merge branch 'main' into avm99963-monorail

Merged commit 3779da353b36d43cf778e7d4f468097714dd4540

GitOrigin-RevId: 6451a5c6b75afb0fd1f37b3f14521148d0722ea8
diff --git a/static_src/elements/issue-detail/mr-issue-page/mr-migrated-banner.js b/static_src/elements/issue-detail/mr-issue-page/mr-migrated-banner.js
index e27a5fe..fe4ba3c 100644
--- a/static_src/elements/issue-detail/mr-issue-page/mr-migrated-banner.js
+++ b/static_src/elements/issue-detail/mr-issue-page/mr-migrated-banner.js
@@ -7,7 +7,7 @@
 import {connectStore} from 'reducers/base.js';
 import * as issueV0 from 'reducers/issueV0.js';
 import {SHARED_STYLES} from 'shared/shared-styles.js';
-
+import {migratedTypes} from 'shared/issue-fields.js';
 
 /**
  * `<mr-migrated-banner>`
@@ -57,10 +57,7 @@
         class="warning-icon material-icons"
         icon="warning"
       >warning</i>
-      <p>
-        This issue has been migrated to ${this._link}. Please see
-        ${this._link} for the latest version of this discussion.
-      </p>
+      ${this._link}
     `;
   }
 
@@ -72,6 +69,7 @@
         type: Boolean,
         reflect: true,
       },
+      migratedType: {type: migratedTypes}
     };
   }
 
@@ -85,6 +83,7 @@
   /** @override */
   stateChanged(state) {
     this.migratedId = issueV0.migratedId(state);
+    this.migratedType = issueV0.migratedType(state);
   }
 
    /** @override */
@@ -100,7 +99,13 @@
    * @return {string} the link of the issue in Issue Tracker.
    */
   get _link() {
-    return html`<a href="https://issuetracker.google.com/issues/${this.migratedId}">b/${this.migratedId}</a>`;
+    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/mr-issue-page/mr-migrated-banner.test.js b/static_src/elements/issue-detail/mr-issue-page/mr-migrated-banner.test.js
index 4cceb2b..2114b61 100644
--- a/static_src/elements/issue-detail/mr-issue-page/mr-migrated-banner.test.js
+++ b/static_src/elements/issue-detail/mr-issue-page/mr-migrated-banner.test.js
@@ -4,6 +4,7 @@
 
 import {assert} from 'chai';
 import {MrMigratedBanner} from './mr-migrated-banner.js';
+import {migratedTypes} from 'shared/issue-fields.js';
 
 let element;
 
@@ -34,10 +35,29 @@
     assert.isTrue(element.hasAttribute('hidden'));
   });
 
-  it('shows element when migratedId is set', async () => {
+  it('shows element when migratedId and migratedType is set', async () => {
     element.migratedId = '1234';
+    element.migratedType = migratedTypes.BUGANIZER_TYPE
     await element.updateComplete;
 
     assert.isFalse(element.hasAttribute('hidden'));
   });
-});
+
+  it('shows bugnizer link when migrate to bugnizer', async () => {
+    element.migratedId = '1234';
+    element.migratedType = migratedTypes.BUGANIZER_TYPE
+    await element.updateComplete;
+
+    const link = element.shadowRoot.querySelector('a');
+    assert.include(link.textContent, 'b/1234');
+  });
+
+  it('shows launch link when migrate to launch', async () => {
+    element.migratedId = '1234';
+    element.migratedType = migratedTypes.LAUNCH_TYPE
+    await element.updateComplete;
+
+    const link = element.shadowRoot.querySelector('p');
+    assert.include(link.textContent, 'This issue has been migrated to Launch, see link in final comment below');
+  });
+});
\ No newline at end of file