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