Remove generateChange method and instead use test-data-generators.ts

This change removes generateChange method and instead adds several
helpers methods for creating test data.

Change-Id: I49a5a35bf8687044ac5525b76d584190bc16fbee
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.js b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.js
index 8236331..a2a18ff 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.js
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.js
@@ -30,9 +30,14 @@
 import {EventType} from '../../plugins/gr-plugin-types.js';
 
 import 'lodash/lodash.js';
-import {generateChange, TestKeyboardShortcutBinder} from '../../../test/test-utils.js';
+import {TestKeyboardShortcutBinder} from '../../../test/test-utils.js';
 import {SPECIAL_PATCH_SET_NUM} from '../../../utils/patch-set-util.js';
 import {Shortcut} from '../../../mixins/keyboard-shortcut-mixin/keyboard-shortcut-mixin.js';
+import {
+  createChange,
+  createChangeMessages,
+  createRevisions,
+} from '../../../test/test-data-generators.js';
 
 const pluginApi = _testOnly_initGerritPluginApi();
 const fixture = fixtureFromElement('gr-change-view');
@@ -348,7 +353,10 @@
   });
 
   test('_handleDiffAgainstBase', () => {
-    element._change = generateChange({revisionsCount: 10});
+    element._change = {
+      ...createChange(),
+      revisions: createRevisions(10),
+    };
     element._patchRange = {
       patchNum: 3,
       basePatchNum: 1,
@@ -362,7 +370,10 @@
   });
 
   test('_handleDiffAgainstLatest', () => {
-    element._change = generateChange({revisionsCount: 10});
+    element._change = {
+      ...createChange(),
+      revisions: createRevisions(10),
+    };
     element._patchRange = {
       basePatchNum: 1,
       patchNum: 3,
@@ -377,7 +388,10 @@
   });
 
   test('_handleDiffBaseAgainstLeft', () => {
-    element._change = generateChange({revisionsCount: 10});
+    element._change = {
+      ...createChange(),
+      revisions: createRevisions(10),
+    };
     element._patchRange = {
       patchNum: 3,
       basePatchNum: 1,
@@ -391,7 +405,10 @@
   });
 
   test('_handleDiffRightAgainstLatest', () => {
-    element._change = generateChange({revisionsCount: 10});
+    element._change = {
+      ...createChange(),
+      revisions: createRevisions(10),
+    };
     element._patchRange = {
       basePatchNum: 1,
       patchNum: 3,
@@ -405,7 +422,10 @@
   });
 
   test('_handleDiffBaseAgainstLatest', () => {
-    element._change = generateChange({revisionsCount: 10});
+    element._change = {
+      ...createChange(),
+      revisions: createRevisions(10),
+    };
     element._patchRange = {
       basePatchNum: 1,
       patchNum: 3,
@@ -577,17 +597,19 @@
 
     test('A toggles overlay when logged in', done => {
       sinon.stub(element, '_getLoggedIn').returns(Promise.resolve(true));
-      element._change = generateChange({
-        revisionsCount: 1,
-        messagesCount: 1,
-      });
+      element._change = {
+        ...createChange(),
+        revisions: createRevisions(1),
+        messages: createChangeMessages(1),
+      };
       element._change.labels = {};
       sinon.stub(element.$.restAPI, 'getChangeDetail')
-          .callsFake(() => Promise.resolve(generateChange({
+          .callsFake(() => Promise.resolve({
+            ...createChange(),
             // element has latest info
-            revisionsCount: 1,
-            messagesCount: 1,
-          })));
+            revisions: createRevisions(1),
+            messages: createChangeMessages(1),
+          }));
 
       const openSpy = sinon.spy(element, '_openReplyDialog');
 
@@ -831,7 +853,7 @@
             getAllThreadsForChange: () => THREADS,
             computeDraftCount: () => 0,
           }));
-      element._change = generateChange();
+      element._change = createChange();
       element._changeNum = element._change._number;
     });
 
@@ -1756,17 +1778,19 @@
   suite('reply dialog tests', () => {
     setup(() => {
       sinon.stub(element.$.replyDialog, '_draftChanged');
-      element._change = generateChange({
-        revisionsCount: 1,
-        messagesCount: 1,
-      });
+      element._change = {
+        ...createChange(),
+        revisions: createRevisions(1),
+        messages: createChangeMessages(1),
+      };
       element._change.labels = {};
       sinon.stub(element.$.restAPI, 'getChangeDetail')
-          .callsFake(() => Promise.resolve(generateChange({
+          .callsFake(() => Promise.resolve({
+            ...createChange(),
             // element has latest info
-            revisionsCount: 1,
-            messagesCount: 1,
-          })));
+            revisions: createRevisions(1),
+            messages: createChangeMessages(1),
+          }));
     });
 
     test('show reply dialog on open-reply-dialog event', done => {
@@ -1830,17 +1854,19 @@
 
   suite('commit message expand/collapse', () => {
     setup(() => {
-      element._change = generateChange({
-        revisionsCount: 1,
-        messagesCount: 1,
-      });
+      element._change = {
+        ...createChange(),
+        revisions: createRevisions(1),
+        messages: createChangeMessages(1),
+      };
       element._change.labels = {};
       sinon.stub(element.$.restAPI, 'getChangeDetail')
-          .callsFake(() => Promise.resolve(generateChange({
+          .callsFake(() => Promise.resolve({
+            ...createChange(),
             // new patchset was uploaded
-            revisionsCount: 2,
-            messagesCount: 1,
-          })));
+            revisions: createRevisions(2),
+            messages: createChangeMessages(1),
+          }));
     });
 
     test('commitCollapseToggle hidden for short commit message', () => {
@@ -1996,20 +2022,22 @@
           if (element.async.callCount > 1) { return; }
           f.call(element);
         });
-        element._change = generateChange({
-          revisionsCount: 1,
-          messagesCount: 1,
-        });
+        element._change = {
+          ...createChange(),
+          revisions: createRevisions(1),
+          messages: createChangeMessages(1),
+        };
       });
 
       test('_startUpdateCheckTimer negative delay', () => {
         const getChangeDetailStub =
             sinon.stub(element.$.restAPI, 'getChangeDetail')
-                .callsFake(() => Promise.resolve(generateChange({
+                .callsFake(() => Promise.resolve({
+                  ...createChangeMessages(),
                   // element has latest info
-                  revisionsCount: 1,
-                  messagesCount: 1,
-                })));
+                  revisions: createRevisions(1),
+                  messages: createChangeMessages(1),
+                }));
 
         element._serverConfig = {change: {update_delay: -1}};
 
@@ -2020,11 +2048,12 @@
       test('_startUpdateCheckTimer up-to-date', async () => {
         const getChangeDetailStub =
             sinon.stub(element.$.restAPI, 'getChangeDetail')
-                .callsFake(() => Promise.resolve(generateChange({
+                .callsFake(() => Promise.resolve({
+                  ...createChange(),
                   // element has latest info
-                  revisionsCount: 1,
-                  messagesCount: 1,
-                })));
+                  revisions: createRevisions(1),
+                  messages: createChangeMessages(1),
+                }));
 
         element._serverConfig = {change: {update_delay: 12345}};
         await flush();
@@ -2036,11 +2065,12 @@
 
       test('_startUpdateCheckTimer out-of-date shows an alert', done => {
         sinon.stub(element.$.restAPI, 'getChangeDetail')
-            .callsFake(() => Promise.resolve(generateChange({
+            .callsFake(() => Promise.resolve({
+              ...createChange(),
               // new patchset was uploaded
-              revisionsCount: 2,
-              messagesCount: 1,
-            })));
+              revisions: createRevisions(2),
+              messages: createChangeMessages(1),
+            }));
 
         element.addEventListener('show-alert', e => {
           assert.equal(e.detail.message,
@@ -2054,11 +2084,12 @@
 
       test('_startUpdateCheckTimer respects _loading', async () => {
         sinon.stub(element.$.restAPI, 'getChangeDetail')
-            .callsFake(() => Promise.resolve(generateChange({
+            .callsFake(() => Promise.resolve({
+              ...createChange(),
               // new patchset was uploaded
-              revisionsCount: 2,
-              messagesCount: 1,
-            })));
+              revisions: createRevisions(2),
+              messages: createChangeMessages(1),
+            }));
 
         element._loading = true;
         element._serverConfig = {change: {update_delay: 12345}};
@@ -2070,12 +2101,13 @@
 
       test('_startUpdateCheckTimer new status shows an alert', done => {
         sinon.stub(element.$.restAPI, 'getChangeDetail')
-            .callsFake(() => Promise.resolve(generateChange({
+            .callsFake(() => Promise.resolve({
+              ...createChange(),
               // element has latest info
-              revisionsCount: 1,
-              messagesCount: 1,
+              revisions: createRevisions(1),
+              messages: createChangeMessages(1),
               status: ChangeStatus.MERGED,
-            })));
+            }));
 
         element.addEventListener('show-alert', e => {
           assert.equal(e.detail.message, 'This change has been merged');
@@ -2086,11 +2118,12 @@
 
       test('_startUpdateCheckTimer new messages shows an alert', done => {
         sinon.stub(element.$.restAPI, 'getChangeDetail')
-            .callsFake(() => Promise.resolve(generateChange({
-              revisionsCount: 1,
+            .callsFake(() => Promise.resolve({
+              ...createChange(),
+              revisions: createRevisions(1),
               // element has new message
-              messagesCount: 2,
-            })));
+              messages: createChangeMessages(2),
+            }));
         element.addEventListener('show-alert', e => {
           assert.equal(e.detail.message,
               'There are new messages on this change');