Manifest.reset should clear static map for BugTracker and Bug objects.
authordewei_zhu@apple.com <dewei_zhu@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 Jul 2018 03:55:24 +0000 (03:55 +0000)
committerdewei_zhu@apple.com <dewei_zhu@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 Jul 2018 03:55:24 +0000 (03:55 +0000)
https://bugs.webkit.org/show_bug.cgi?id=187186

Reviewed by Ryosuke Niwa

If static maps of BugTracker and Bug objects are not cleared up, updating singleton
of Bug object will fail assertion.

* public/v3/models/manifest.js: Clear static map for BugTracker and Bug.
(Manifest.reset):
* server-tests/api-manifest-tests.js: Added a unit test for this change.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233456 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Websites/perf.webkit.org/ChangeLog
Websites/perf.webkit.org/public/v3/models/manifest.js
Websites/perf.webkit.org/server-tests/api-manifest-tests.js

index c4e2112..555ab95 100644 (file)
@@ -1,5 +1,19 @@
 2018-06-29  Dewei Zhu  <dewei_zhu@apple.com>
 
+        Manifest.reset should clear static map for BugTracker and Bug objects.
+        https://bugs.webkit.org/show_bug.cgi?id=187186
+
+        Reviewed by Ryosuke Niwa.
+
+        If static maps of BugTracker and Bug objects are not cleared up, updating singleton
+        of Bug object will fail assertion.
+
+        * public/v3/models/manifest.js: Clear static map for BugTracker and Bug.
+        (Manifest.reset):
+        * server-tests/api-manifest-tests.js: Added a unit test for this change.
+
+2018-06-29  Dewei Zhu  <dewei_zhu@apple.com>
+
         Fix a bug in range bisector that start commit may be counted twice.
         https://bugs.webkit.org/show_bug.cgi?id=187205
 
index af597e6..09aea5c 100644 (file)
@@ -17,6 +17,8 @@ class Manifest {
         Triggerable.clearStaticMap();
         TriggerableRepositoryGroup.clearStaticMap();
         UploadedFile.clearStaticMap();
+        BugTracker.clearStaticMap();
+        Bug.clearStaticMap();
     }
 
     static fetch()
index 4f3b0a4..cb5fc55 100644 (file)
@@ -57,6 +57,23 @@ describe('/api/manifest', function () {
         });
     });
 
+    it("should clear Bug and BugTracker static maps when reset", async () => {
+        await TestServer.database().insert('bug_trackers', bugzillaData);
+        const content = await TestServer.remoteAPI().getJSON('/api/manifest');
+        assert.deepEqual(content.bugTrackers, {1: {name: 'Bugzilla', bugUrl: 'https://webkit.org/b/$number',
+            newBugUrl: 'https://bugs.webkit.org/', repositories: null}});
+
+        Manifest._didFetchManifest(content);
+        const trackerFromFirstFetch = BugTracker.findById(1);
+
+        Manifest.reset();
+        assert(!BugTracker.findById(1));
+
+        Manifest._didFetchManifest(content);
+        const trackerFromSecondFetch = BugTracker.findById(1);
+        assert(trackerFromFirstFetch != trackerFromSecondFetch);
+    });
+
     it("should generate manifest with bug trackers and repositories", () => {
         let db = TestServer.database();
         return Promise.all([