Move tests from old to new gr-related-changes-list

Change-Id: I631cde95d00a1e54b1820232733424b28f74bff4
(cherry picked from commit e9ddfa45dbebb19178032a4e057e00d74be019b5)
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts
index d1f9ff0..9d6be09 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts
@@ -61,6 +61,7 @@
   createEditRevision,
   createAccountWithIdNameAndEmail,
   createChangeViewChange,
+  createRelatedChangeAndCommitInfo,
 } from '../../../test/test-data-generators';
 import {ChangeViewPatchRange, GrChangeView} from './gr-change-view';
 import {
@@ -79,6 +80,7 @@
   ParentPatchSetNum,
   PatchRange,
   PatchSetNum,
+  RelatedChangeAndCommitInfo,
   RevisionInfo,
   RevisionPatchSetNum,
   RobotId,
@@ -2982,4 +2984,23 @@
       });
     });
   });
+
+  test('_calculateHasParent', () => {
+    const changeId = '123' as ChangeId;
+    const relatedChanges: RelatedChangeAndCommitInfo[] = [];
+
+    assert.equal(element._calculateHasParent(changeId, relatedChanges), false);
+
+    relatedChanges.push({
+      ...createRelatedChangeAndCommitInfo(),
+      change_id: '123' as ChangeId,
+    });
+    assert.equal(element._calculateHasParent(changeId, relatedChanges), false);
+
+    relatedChanges.push({
+      ...createRelatedChangeAndCommitInfo(),
+      change_id: '234' as ChangeId,
+    });
+    assert.equal(element._calculateHasParent(changeId, relatedChanges), true);
+  });
 });
diff --git a/polygerrit-ui/app/elements/change/gr-related-changes-list-experimental/gr-related-changes-list-experimental.ts b/polygerrit-ui/app/elements/change/gr-related-changes-list-experimental/gr-related-changes-list-experimental.ts
index c75b8c4..8c83b58 100644
--- a/polygerrit-ui/app/elements/change/gr-related-changes-list-experimental/gr-related-changes-list-experimental.ts
+++ b/polygerrit-ui/app/elements/change/gr-related-changes-list-experimental/gr-related-changes-list-experimental.ts
@@ -348,7 +348,10 @@
     </section>`;
 
     return html`<gr-endpoint-decorator name="related-changes-section">
-      <gr-endpoint-param name="change" value="[[change]]"></gr-endpoint-param>
+      <gr-endpoint-param
+        name="change"
+        .value=${this.change}
+      ></gr-endpoint-param>
       <gr-endpoint-slot name="top"></gr-endpoint-slot>
       ${relatedChangeSection} ${submittedTogetherSection} ${sameTopicSection}
       ${mergeConflictsSection} ${cherryPicksSection}
diff --git a/polygerrit-ui/app/elements/change/gr-related-changes-list-experimental/gr-related-changes-list-experimental_test.ts b/polygerrit-ui/app/elements/change/gr-related-changes-list-experimental/gr-related-changes-list-experimental_test.ts
index 5769284..971da40 100644
--- a/polygerrit-ui/app/elements/change/gr-related-changes-list-experimental/gr-related-changes-list-experimental_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-related-changes-list-experimental/gr-related-changes-list-experimental_test.ts
@@ -15,20 +15,39 @@
  * limitations under the License.
  */
 
+import {SinonStubbedMember} from 'sinon/pkg/sinon-esm';
+import {PluginApi} from '../../../api/plugin';
+import {ChangeStatus} from '../../../constants/constants';
+import {RestApiService} from '../../../services/gr-rest-api/gr-rest-api';
 import '../../../test/common-test-setup-karma';
 import {
   createChange,
+  createCommitInfoWithRequiredCommit,
   createParsedChange,
   createRelatedChangeAndCommitInfo,
   createRelatedChangesInfo,
+  createRevision,
   createSubmittedTogetherInfo,
 } from '../../../test/test-data-generators';
-import {queryAndAssert, stubRestApi} from '../../../test/test-utils';
 import {
+  queryAndAssert,
+  resetPlugins,
+  stubRestApi,
+} from '../../../test/test-utils';
+import {
+  ChangeId,
+  ChangeInfo,
+  CommitId,
+  NumericChangeId,
   PatchSetNum,
+  RelatedChangeAndCommitInfo,
   RelatedChangesInfo,
   SubmittedTogetherInfo,
 } from '../../../types/common';
+import {ParsedChangeInfo} from '../../../types/types';
+import {GrEndpointDecorator} from '../../plugins/gr-endpoint-decorator/gr-endpoint-decorator';
+import {_testOnly_initGerritPluginApi} from '../../shared/gr-js-api-interface/gr-gerrit';
+import {getPluginLoader} from '../../shared/gr-js-api-interface/gr-plugin-loader';
 import './gr-related-changes-list-experimental';
 import {
   ChangeMarkersInList,
@@ -37,6 +56,8 @@
   Section,
 } from './gr-related-changes-list-experimental';
 
+const pluginApi = _testOnly_initGerritPluginApi();
+
 const basicFixture = fixtureFromElement('gr-related-changes-list-experimental');
 
 suite('gr-related-changes-list-experimental', () => {
@@ -246,4 +267,364 @@
       assert.isFalse(cherryPicks!.classList.contains('first'));
     });
   });
+
+  test('_changesEqual', () => {
+    const change1: ChangeInfo = {
+      ...createChange(),
+      change_id: '123' as ChangeId,
+      _number: 0 as NumericChangeId,
+    };
+    const change2: ChangeInfo = {
+      ...createChange(),
+      change_id: '456' as ChangeId,
+      _number: 1 as NumericChangeId,
+    };
+    const change3: ChangeInfo = {
+      ...createChange(),
+      change_id: '123' as ChangeId,
+      _number: 2 as NumericChangeId,
+    };
+    const change4: RelatedChangeAndCommitInfo = {
+      ...createRelatedChangeAndCommitInfo(),
+      change_id: '123' as ChangeId,
+      _change_number: 1 as NumericChangeId,
+    };
+
+    assert.isTrue(element._changesEqual(change1, change1));
+    assert.isFalse(element._changesEqual(change1, change2));
+    assert.isFalse(element._changesEqual(change1, change3));
+    assert.isTrue(element._changesEqual(change2, change4));
+  });
+
+  test('_getChangeNumber', () => {
+    const change1: ChangeInfo = {
+      ...createChange(),
+      change_id: '123' as ChangeId,
+      _number: 0 as NumericChangeId,
+    };
+    const change2: ChangeInfo = {
+      ...createChange(),
+      change_id: '456' as ChangeId,
+      _number: 1 as NumericChangeId,
+    };
+    assert.equal(element._getChangeNumber(change1), 0);
+    assert.equal(element._getChangeNumber(change2), 1);
+  });
+
+  suite('get conflicts tests', () => {
+    let element: GrRelatedChangesListExperimental;
+    let conflictsStub: SinonStubbedMember<RestApiService['getChangeConflicts']>;
+
+    setup(() => {
+      element = basicFixture.instantiate();
+      conflictsStub = stubRestApi('getChangeConflicts').returns(
+        Promise.resolve(undefined)
+      );
+    });
+
+    test('request conflicts if open and mergeable', () => {
+      element.patchNum = 7 as PatchSetNum;
+      element.change = {
+        ...createParsedChange(),
+        change_id: '123' as ChangeId,
+        status: ChangeStatus.NEW,
+      };
+      element.mergeable = true;
+      element.reload();
+      assert.isTrue(conflictsStub.called);
+    });
+
+    test('does not request conflicts if closed and mergeable', () => {
+      element.patchNum = 7 as PatchSetNum;
+      element.change = {
+        ...createParsedChange(),
+        change_id: '123' as ChangeId,
+        status: ChangeStatus.NEW,
+      };
+      element.reload();
+      assert.isFalse(conflictsStub.called);
+    });
+
+    test('does not request conflicts if open and not mergeable', () => {
+      element.patchNum = 7 as PatchSetNum;
+      element.change = {
+        ...createParsedChange(),
+        change_id: '123' as ChangeId,
+        status: ChangeStatus.NEW,
+      };
+      element.mergeable = false;
+      element.reload();
+      assert.isFalse(conflictsStub.called);
+    });
+
+    test('doesnt request conflicts if closed and not mergeable', () => {
+      element.patchNum = 7 as PatchSetNum;
+      element.change = {
+        ...createParsedChange(),
+        change_id: '123' as ChangeId,
+        status: ChangeStatus.NEW,
+      };
+      element.mergeable = false;
+      element.reload();
+      assert.isFalse(conflictsStub.called);
+    });
+  });
+
+  test('connected revisions', () => {
+    const change: ParsedChangeInfo = {
+      ...createParsedChange(),
+      revisions: {
+        e3c6d60783bfdec9ebae7dcfec4662360433449e: createRevision(1),
+        '26e5e4c9c7ae31cbd876271cca281ce22b413997': createRevision(2),
+        bf7884d695296ca0c91702ba3e2bc8df0f69a907: createRevision(7),
+        b5fc49f2e67d1889d5275cac04ad3648f2ec7fe3: createRevision(5),
+        d6bcee67570859ccb684873a85cf50b1f0e96fda: createRevision(6),
+        cc960918a7f90388f4a9e05753d0f7b90ad44546: createRevision(3),
+        '9e593f6dcc2c0785a2ad2c895a34ad2aa9a0d8b6': createRevision(4),
+      },
+    };
+    let patchNum = 7 as PatchSetNum;
+    let relatedChanges: RelatedChangeAndCommitInfo[] = [
+      {
+        ...createRelatedChangeAndCommitInfo(),
+        commit: {
+          ...createCommitInfoWithRequiredCommit(
+            '2cebeedfb1e80f4b872d0a13ade529e70652c0c8'
+          ),
+          parents: [
+            {
+              commit: '87ed20b241576b620bbaa3dfd47715ce6782b7dd' as CommitId,
+              subject: 'subject1',
+            },
+          ],
+        },
+      },
+      {
+        ...createRelatedChangeAndCommitInfo(),
+        commit: {
+          ...createCommitInfoWithRequiredCommit(
+            '87ed20b241576b620bbaa3dfd47715ce6782b7dd'
+          ),
+          parents: [
+            {
+              commit: '6c71f9e86ba955a7e01e2088bce0050a90eb9fbb' as CommitId,
+              subject: 'subject2',
+            },
+          ],
+        },
+      },
+      {
+        ...createRelatedChangeAndCommitInfo(),
+        commit: {
+          ...createCommitInfoWithRequiredCommit(
+            '6c71f9e86ba955a7e01e2088bce0050a90eb9fbb'
+          ),
+          parents: [
+            {
+              commit: 'b0ccb183494a8e340b8725a2dc553967d61e6dae' as CommitId,
+              subject: 'subject3',
+            },
+          ],
+        },
+      },
+      {
+        ...createRelatedChangeAndCommitInfo(),
+        commit: {
+          ...createCommitInfoWithRequiredCommit(
+            'b0ccb183494a8e340b8725a2dc553967d61e6dae'
+          ),
+          parents: [
+            {
+              commit: 'bf7884d695296ca0c91702ba3e2bc8df0f69a907' as CommitId,
+              subject: 'subject4',
+            },
+          ],
+        },
+      },
+      {
+        ...createRelatedChangeAndCommitInfo(),
+        commit: {
+          ...createCommitInfoWithRequiredCommit(
+            'bf7884d695296ca0c91702ba3e2bc8df0f69a907'
+          ),
+          parents: [
+            {
+              commit: '613bc4f81741a559c6667ac08d71dcc3348f73ce' as CommitId,
+              subject: 'subject5',
+            },
+          ],
+        },
+      },
+      {
+        ...createRelatedChangeAndCommitInfo(),
+        commit: {
+          ...createCommitInfoWithRequiredCommit(
+            '613bc4f81741a559c6667ac08d71dcc3348f73ce'
+          ),
+          parents: [
+            {
+              commit: '455ed9cd27a16bf6991f04dcc57ef575dc4d5e75' as CommitId,
+              subject: 'subject6',
+            },
+          ],
+        },
+      },
+    ];
+
+    let connectedChanges = element._computeConnectedRevisions(
+      change,
+      patchNum,
+      relatedChanges
+    );
+    assert.deepEqual(connectedChanges, [
+      '613bc4f81741a559c6667ac08d71dcc3348f73ce',
+      'bf7884d695296ca0c91702ba3e2bc8df0f69a907',
+      'bf7884d695296ca0c91702ba3e2bc8df0f69a907',
+      'b0ccb183494a8e340b8725a2dc553967d61e6dae',
+      '6c71f9e86ba955a7e01e2088bce0050a90eb9fbb',
+      '87ed20b241576b620bbaa3dfd47715ce6782b7dd',
+      '2cebeedfb1e80f4b872d0a13ade529e70652c0c8',
+    ]);
+
+    patchNum = 4 as PatchSetNum;
+    relatedChanges = [
+      {
+        ...createRelatedChangeAndCommitInfo(),
+        commit: {
+          ...createCommitInfoWithRequiredCommit(
+            '2cebeedfb1e80f4b872d0a13ade529e70652c0c8'
+          ),
+          parents: [
+            {
+              commit: '87ed20b241576b620bbaa3dfd47715ce6782b7dd' as CommitId,
+              subject: 'My parent commit',
+            },
+          ],
+        },
+      },
+      {
+        ...createRelatedChangeAndCommitInfo(),
+        commit: {
+          ...createCommitInfoWithRequiredCommit(
+            '87ed20b241576b620bbaa3dfd47715ce6782b7dd'
+          ),
+          parents: [
+            {
+              commit: '6c71f9e86ba955a7e01e2088bce0050a90eb9fbb' as CommitId,
+              subject: 'My parent commit',
+            },
+          ],
+        },
+      },
+      {
+        ...createRelatedChangeAndCommitInfo(),
+        commit: {
+          ...createCommitInfoWithRequiredCommit(
+            '6c71f9e86ba955a7e01e2088bce0050a90eb9fbb'
+          ),
+          parents: [
+            {
+              commit: 'b0ccb183494a8e340b8725a2dc553967d61e6dae' as CommitId,
+              subject: 'My parent commit',
+            },
+          ],
+        },
+      },
+      {
+        ...createRelatedChangeAndCommitInfo(),
+        commit: {
+          ...createCommitInfoWithRequiredCommit(
+            'a3e5d9d4902b915a39e2efba5577211b9b3ebe7b'
+          ),
+          parents: [
+            {
+              commit: '9e593f6dcc2c0785a2ad2c895a34ad2aa9a0d8b6' as CommitId,
+              subject: 'My parent commit',
+            },
+          ],
+        },
+      },
+      {
+        ...createRelatedChangeAndCommitInfo(),
+        commit: {
+          ...createCommitInfoWithRequiredCommit(
+            '9e593f6dcc2c0785a2ad2c895a34ad2aa9a0d8b6'
+          ),
+          parents: [
+            {
+              commit: 'af815dac54318826b7f1fa468acc76349ffc588e' as CommitId,
+              subject: 'My parent commit',
+            },
+          ],
+        },
+      },
+      {
+        ...createRelatedChangeAndCommitInfo(),
+        commit: {
+          ...createCommitInfoWithRequiredCommit(
+            'af815dac54318826b7f1fa468acc76349ffc588e'
+          ),
+          parents: [
+            {
+              commit: '58f76e406e24cb8b0f5d64c7f5ac1e8616d0a22c' as CommitId,
+              subject: 'My parent commit',
+            },
+          ],
+        },
+      },
+    ];
+
+    connectedChanges = element._computeConnectedRevisions(
+      change,
+      patchNum,
+      relatedChanges
+    );
+    assert.deepEqual(connectedChanges, [
+      'af815dac54318826b7f1fa468acc76349ffc588e',
+      '9e593f6dcc2c0785a2ad2c895a34ad2aa9a0d8b6',
+      '9e593f6dcc2c0785a2ad2c895a34ad2aa9a0d8b6',
+      'a3e5d9d4902b915a39e2efba5577211b9b3ebe7b',
+    ]);
+  });
+
+  suite('gr-related-changes-list plugin tests', () => {
+    let element: GrRelatedChangesListExperimental;
+
+    setup(() => {
+      resetPlugins();
+      element = basicFixture.instantiate();
+    });
+
+    teardown(() => {
+      resetPlugins();
+    });
+
+    test('endpoint params', done => {
+      element.change = {...createParsedChange(), labels: {}};
+      interface RelatedChangesListGrEndpointDecorator
+        extends GrEndpointDecorator {
+        plugin: PluginApi;
+        change: ParsedChangeInfo;
+      }
+      let hookEl: RelatedChangesListGrEndpointDecorator;
+      let plugin: PluginApi;
+      pluginApi.install(
+        p => {
+          plugin = p;
+          plugin
+            .hook('related-changes-section')
+            .getLastAttached()
+            .then(el => (hookEl = el as RelatedChangesListGrEndpointDecorator));
+        },
+        '0.1',
+        'http://some/plugins/url1.js'
+      );
+      getPluginLoader().loadPlugins([]);
+      flush(() => {
+        assert.strictEqual(hookEl.plugin, plugin);
+        assert.strictEqual(hookEl.change, element.change);
+        done();
+      });
+    });
+  });
 });
diff --git a/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list_test.ts b/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list_test.ts
index c4bfe77..631c077 100644
--- a/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list_test.ts
@@ -22,8 +22,6 @@
   createCommit,
   createCommitInfoWithRequiredCommit,
   createParsedChange,
-  createRelatedChangeAndCommitInfo,
-  createRevision,
 } from '../../../test/test-data-generators';
 import {
   ChangeId,
@@ -34,22 +32,12 @@
   RelatedChangeAndCommitInfo,
   RepoName,
 } from '../../../types/common';
-import {ParsedChangeInfo} from '../../../types/types';
 import './gr-related-changes-list';
 import {GerritNav} from '../../core/gr-navigation/gr-navigation';
 import {getPluginLoader} from '../../shared/gr-js-api-interface/gr-plugin-loader';
 import {_testOnly_initGerritPluginApi} from '../../shared/gr-js-api-interface/gr-gerrit';
-import {
-  query,
-  queryAndAssert,
-  resetPlugins,
-  stubRestApi,
-} from '../../../test/test-utils';
+import {query, queryAndAssert} from '../../../test/test-utils';
 import {GrRelatedChangesList} from './gr-related-changes-list';
-import {SinonStubbedMember} from 'sinon/pkg/sinon-esm';
-import {RestApiService} from '../../../services/gr-rest-api/gr-rest-api';
-import {PluginApi} from '../../../api/plugin';
-import {GrEndpointDecorator} from '../../plugins/gr-endpoint-decorator/gr-endpoint-decorator';
 import {_testOnly_resetEndpoints} from '../../shared/gr-js-api-interface/gr-plugin-endpoints';
 
 const pluginApi = _testOnly_initGerritPluginApi();
@@ -65,266 +53,7 @@
     element = basicFixture.instantiate();
   });
 
-  test('connected revisions', () => {
-    const change: ParsedChangeInfo = {
-      ...createParsedChange(),
-      revisions: {
-        e3c6d60783bfdec9ebae7dcfec4662360433449e: createRevision(1),
-        '26e5e4c9c7ae31cbd876271cca281ce22b413997': createRevision(2),
-        bf7884d695296ca0c91702ba3e2bc8df0f69a907: createRevision(7),
-        b5fc49f2e67d1889d5275cac04ad3648f2ec7fe3: createRevision(5),
-        d6bcee67570859ccb684873a85cf50b1f0e96fda: createRevision(6),
-        cc960918a7f90388f4a9e05753d0f7b90ad44546: createRevision(3),
-        '9e593f6dcc2c0785a2ad2c895a34ad2aa9a0d8b6': createRevision(4),
-      },
-    };
-    let patchNum = 7 as PatchSetNum;
-    let relatedChanges: RelatedChangeAndCommitInfo[] = [
-      {
-        ...createRelatedChangeAndCommitInfo(),
-        commit: {
-          ...createCommitInfoWithRequiredCommit(
-            '2cebeedfb1e80f4b872d0a13ade529e70652c0c8'
-          ),
-          parents: [
-            {
-              commit: '87ed20b241576b620bbaa3dfd47715ce6782b7dd' as CommitId,
-              subject: 'subject1',
-            },
-          ],
-        },
-      },
-      {
-        ...createRelatedChangeAndCommitInfo(),
-        commit: {
-          ...createCommitInfoWithRequiredCommit(
-            '87ed20b241576b620bbaa3dfd47715ce6782b7dd'
-          ),
-          parents: [
-            {
-              commit: '6c71f9e86ba955a7e01e2088bce0050a90eb9fbb' as CommitId,
-              subject: 'subject2',
-            },
-          ],
-        },
-      },
-      {
-        ...createRelatedChangeAndCommitInfo(),
-        commit: {
-          ...createCommitInfoWithRequiredCommit(
-            '6c71f9e86ba955a7e01e2088bce0050a90eb9fbb'
-          ),
-          parents: [
-            {
-              commit: 'b0ccb183494a8e340b8725a2dc553967d61e6dae' as CommitId,
-              subject: 'subject3',
-            },
-          ],
-        },
-      },
-      {
-        ...createRelatedChangeAndCommitInfo(),
-        commit: {
-          ...createCommitInfoWithRequiredCommit(
-            'b0ccb183494a8e340b8725a2dc553967d61e6dae'
-          ),
-          parents: [
-            {
-              commit: 'bf7884d695296ca0c91702ba3e2bc8df0f69a907' as CommitId,
-              subject: 'subject4',
-            },
-          ],
-        },
-      },
-      {
-        ...createRelatedChangeAndCommitInfo(),
-        commit: {
-          ...createCommitInfoWithRequiredCommit(
-            'bf7884d695296ca0c91702ba3e2bc8df0f69a907'
-          ),
-          parents: [
-            {
-              commit: '613bc4f81741a559c6667ac08d71dcc3348f73ce' as CommitId,
-              subject: 'subject5',
-            },
-          ],
-        },
-      },
-      {
-        ...createRelatedChangeAndCommitInfo(),
-        commit: {
-          ...createCommitInfoWithRequiredCommit(
-            '613bc4f81741a559c6667ac08d71dcc3348f73ce'
-          ),
-          parents: [
-            {
-              commit: '455ed9cd27a16bf6991f04dcc57ef575dc4d5e75' as CommitId,
-              subject: 'subject6',
-            },
-          ],
-        },
-      },
-    ];
-
-    let connectedChanges = element._computeConnectedRevisions(
-      change,
-      patchNum,
-      relatedChanges
-    );
-    assert.deepEqual(connectedChanges, [
-      '613bc4f81741a559c6667ac08d71dcc3348f73ce',
-      'bf7884d695296ca0c91702ba3e2bc8df0f69a907',
-      'bf7884d695296ca0c91702ba3e2bc8df0f69a907',
-      'b0ccb183494a8e340b8725a2dc553967d61e6dae',
-      '6c71f9e86ba955a7e01e2088bce0050a90eb9fbb',
-      '87ed20b241576b620bbaa3dfd47715ce6782b7dd',
-      '2cebeedfb1e80f4b872d0a13ade529e70652c0c8',
-    ]);
-
-    patchNum = 4 as PatchSetNum;
-    relatedChanges = [
-      {
-        ...createRelatedChangeAndCommitInfo(),
-        commit: {
-          ...createCommitInfoWithRequiredCommit(
-            '2cebeedfb1e80f4b872d0a13ade529e70652c0c8'
-          ),
-          parents: [
-            {
-              commit: '87ed20b241576b620bbaa3dfd47715ce6782b7dd' as CommitId,
-              subject: 'My parent commit',
-            },
-          ],
-        },
-      },
-      {
-        ...createRelatedChangeAndCommitInfo(),
-        commit: {
-          ...createCommitInfoWithRequiredCommit(
-            '87ed20b241576b620bbaa3dfd47715ce6782b7dd'
-          ),
-          parents: [
-            {
-              commit: '6c71f9e86ba955a7e01e2088bce0050a90eb9fbb' as CommitId,
-              subject: 'My parent commit',
-            },
-          ],
-        },
-      },
-      {
-        ...createRelatedChangeAndCommitInfo(),
-        commit: {
-          ...createCommitInfoWithRequiredCommit(
-            '6c71f9e86ba955a7e01e2088bce0050a90eb9fbb'
-          ),
-          parents: [
-            {
-              commit: 'b0ccb183494a8e340b8725a2dc553967d61e6dae' as CommitId,
-              subject: 'My parent commit',
-            },
-          ],
-        },
-      },
-      {
-        ...createRelatedChangeAndCommitInfo(),
-        commit: {
-          ...createCommitInfoWithRequiredCommit(
-            'a3e5d9d4902b915a39e2efba5577211b9b3ebe7b'
-          ),
-          parents: [
-            {
-              commit: '9e593f6dcc2c0785a2ad2c895a34ad2aa9a0d8b6' as CommitId,
-              subject: 'My parent commit',
-            },
-          ],
-        },
-      },
-      {
-        ...createRelatedChangeAndCommitInfo(),
-        commit: {
-          ...createCommitInfoWithRequiredCommit(
-            '9e593f6dcc2c0785a2ad2c895a34ad2aa9a0d8b6'
-          ),
-          parents: [
-            {
-              commit: 'af815dac54318826b7f1fa468acc76349ffc588e' as CommitId,
-              subject: 'My parent commit',
-            },
-          ],
-        },
-      },
-      {
-        ...createRelatedChangeAndCommitInfo(),
-        commit: {
-          ...createCommitInfoWithRequiredCommit(
-            'af815dac54318826b7f1fa468acc76349ffc588e'
-          ),
-          parents: [
-            {
-              commit: '58f76e406e24cb8b0f5d64c7f5ac1e8616d0a22c' as CommitId,
-              subject: 'My parent commit',
-            },
-          ],
-        },
-      },
-    ];
-
-    connectedChanges = element._computeConnectedRevisions(
-      change,
-      patchNum,
-      relatedChanges
-    );
-    assert.deepEqual(connectedChanges, [
-      'af815dac54318826b7f1fa468acc76349ffc588e',
-      '9e593f6dcc2c0785a2ad2c895a34ad2aa9a0d8b6',
-      '9e593f6dcc2c0785a2ad2c895a34ad2aa9a0d8b6',
-      'a3e5d9d4902b915a39e2efba5577211b9b3ebe7b',
-    ]);
-  });
-
-  test('_changesEqual', () => {
-    const change1: ChangeInfo = {
-      ...createChange(),
-      change_id: '123' as ChangeId,
-      _number: 0 as NumericChangeId,
-    };
-    const change2: ChangeInfo = {
-      ...createChange(),
-      change_id: '456' as ChangeId,
-      _number: 1 as NumericChangeId,
-    };
-    const change3: ChangeInfo = {
-      ...createChange(),
-      change_id: '123' as ChangeId,
-      _number: 2 as NumericChangeId,
-    };
-    const change4: RelatedChangeAndCommitInfo = {
-      ...createRelatedChangeAndCommitInfo(),
-      change_id: '123' as ChangeId,
-      _change_number: 1 as NumericChangeId,
-    };
-
-    assert.isTrue(element._changesEqual(change1, change1));
-    assert.isFalse(element._changesEqual(change1, change2));
-    assert.isFalse(element._changesEqual(change1, change3));
-    assert.isTrue(element._changesEqual(change2, change4));
-  });
-
-  test('_getChangeNumber', () => {
-    const change1: ChangeInfo = {
-      ...createChange(),
-      change_id: '123' as ChangeId,
-      _number: 0 as NumericChangeId,
-    };
-    const change2: ChangeInfo = {
-      ...createChange(),
-      change_id: '456' as ChangeId,
-      _number: 1 as NumericChangeId,
-    };
-    assert.equal(element._getChangeNumber(change1), 0);
-    assert.equal(element._getChangeNumber(change2), 1);
-  });
-
+  // obsolete
   test('event for section loaded fires for each section ', () => {
     const loadedStub = sinon.stub();
     element.patchNum = 7 as PatchSetNum;
@@ -341,6 +70,7 @@
     });
   });
 
+  // trivial
   suite('getChangeConflicts resolves undefined', () => {
     let element: GrRelatedChangesList;
 
@@ -361,84 +91,6 @@
     });
   });
 
-  suite('get conflicts tests', () => {
-    let element: GrRelatedChangesList;
-    let conflictsStub: SinonStubbedMember<RestApiService['getChangeConflicts']>;
-
-    setup(() => {
-      element = basicFixture.instantiate();
-      conflictsStub = stubRestApi('getChangeConflicts').returns(
-        Promise.resolve(undefined)
-      );
-    });
-
-    test('request conflicts if open and mergeable', () => {
-      element.patchNum = 7 as PatchSetNum;
-      element.change = {
-        ...createParsedChange(),
-        change_id: '123' as ChangeId,
-        status: ChangeStatus.NEW,
-      };
-      element.mergeable = true;
-      element.reload();
-      assert.isTrue(conflictsStub.called);
-    });
-
-    test('does not request conflicts if closed and mergeable', () => {
-      element.patchNum = 7 as PatchSetNum;
-      element.change = {
-        ...createParsedChange(),
-        change_id: '123' as ChangeId,
-        status: ChangeStatus.NEW,
-      };
-      element.reload();
-      assert.isFalse(conflictsStub.called);
-    });
-
-    test('does not request conflicts if open and not mergeable', () => {
-      element.patchNum = 7 as PatchSetNum;
-      element.change = {
-        ...createParsedChange(),
-        change_id: '123' as ChangeId,
-        status: ChangeStatus.NEW,
-      };
-      element.mergeable = false;
-      element.reload();
-      assert.isFalse(conflictsStub.called);
-    });
-
-    test('doesnt request conflicts if closed and not mergeable', () => {
-      element.patchNum = 7 as PatchSetNum;
-      element.change = {
-        ...createParsedChange(),
-        change_id: '123' as ChangeId,
-        status: ChangeStatus.NEW,
-      };
-      element.mergeable = false;
-      element.reload();
-      assert.isFalse(conflictsStub.called);
-    });
-  });
-
-  test('_calculateHasParent', () => {
-    const changeId = '123' as ChangeId;
-    const relatedChanges: RelatedChangeAndCommitInfo[] = [];
-
-    assert.equal(element._calculateHasParent(changeId, relatedChanges), false);
-
-    relatedChanges.push({
-      ...createRelatedChangeAndCommitInfo(),
-      change_id: '123' as ChangeId,
-    });
-    assert.equal(element._calculateHasParent(changeId, relatedChanges), false);
-
-    relatedChanges.push({
-      ...createRelatedChangeAndCommitInfo(),
-      change_id: '234' as ChangeId,
-    });
-    assert.equal(element._calculateHasParent(changeId, relatedChanges), true);
-  });
-
   suite('hidden attribute and update event', () => {
     const changes: ChangeInfo[] = [
       {
@@ -471,6 +123,7 @@
       },
     ];
 
+    // obsolete
     test('clear and empties', () => {
       element._relatedResponse = {changes: relatedChanges};
       element._submittedTogether = {
@@ -491,6 +144,7 @@
       assert.equal(element._sameTopic?.length, 0);
     });
 
+    // obsolete
     test('update fires', () => {
       const updateHandler = sinon.stub();
       element.addEventListener('update', updateHandler);
@@ -611,6 +265,7 @@
     });
   });
 
+  // trivial
   test('_computeChangeURL uses GerritNav', () => {
     const getUrlStub = sinon.stub(GerritNav, 'getUrlForChangeById');
     element._computeChangeURL(
@@ -621,6 +276,7 @@
     assert.isTrue(getUrlStub.called);
   });
 
+  // trivial
   suite('submitted together changes', () => {
     const change: ChangeInfo = {
       ...createChange(),
@@ -705,47 +361,7 @@
     });
   });
 
-  suite('gr-related-changes-list plugin tests', () => {
-    let element: GrRelatedChangesList;
-
-    setup(() => {
-      resetPlugins();
-      element = basicFixture.instantiate();
-    });
-
-    teardown(() => {
-      resetPlugins();
-    });
-
-    test('endpoint params', done => {
-      element.change = {...createParsedChange(), labels: {}};
-      interface RelatedChangesListGrEndpointDecorator
-        extends GrEndpointDecorator {
-        plugin: PluginApi;
-        change: ParsedChangeInfo;
-      }
-      let hookEl: RelatedChangesListGrEndpointDecorator;
-      let plugin: PluginApi;
-      pluginApi.install(
-        p => {
-          plugin = p;
-          plugin
-            .hook('related-changes-section')
-            .getLastAttached()
-            .then(el => (hookEl = el as RelatedChangesListGrEndpointDecorator));
-        },
-        '0.1',
-        'http://some/plugins/url1.js'
-      );
-      getPluginLoader().loadPlugins([]);
-      flush(() => {
-        assert.strictEqual(hookEl.plugin, plugin);
-        assert.strictEqual(hookEl.change, element.change);
-        done();
-      });
-    });
-  });
-
+  // obsolete
   test('hiding and unhiding', done => {
     element.change = {...createParsedChange(), labels: {}};
     let hookEl: HTMLElement;