From 84390c63d20549270bc7bb713ac6c65a7bb82feb Mon Sep 17 00:00:00 2001
From: Tira Odhner <pair+aodhner@pivotal.io>
Date: Mon, 20 Mar 2017 14:17:52 -0400
Subject: [PATCH 2/3] write a test for hideSpinner

---
 web/karma.conf.js                              |  1 +
 web/pgadmin/static/js/hide_spinner.js          |  2 +-
 web/regression/javascript/hide_spinner_spec.js | 35 ++++++++++++++++++++++++++
 3 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 web/regression/javascript/hide_spinner_spec.js

diff --git a/web/karma.conf.js b/web/karma.conf.js
index 3e110463..9f6f2634 100644
--- a/web/karma.conf.js
+++ b/web/karma.conf.js
@@ -18,6 +18,7 @@ module.exports = function(config) {
       {pattern: 'regression/javascript/**/*.js', included: false},
       {pattern: 'pgadmin/static/vendor/**/*.js', included: false},
       {pattern: 'pgadmin/static/js/**/*.js', included: false},
+      {pattern: 'pgadmin/static/js/hide_spinner.js', included: true},
       'regression/javascript/test-main.js'
     ],
 
diff --git a/web/pgadmin/static/js/hide_spinner.js b/web/pgadmin/static/js/hide_spinner.js
index e30cf23f..8ffb0d9b 100644
--- a/web/pgadmin/static/js/hide_spinner.js
+++ b/web/pgadmin/static/js/hide_spinner.js
@@ -41,7 +41,7 @@ window.hideRequireJsLoadingSpinner = function (context, map, depMaps) {
       if (inited) {
         // will fire if module loads in 400ms. TODO: reset this timer
         // for slow module loading
-        require.onResourceLoad(false);
+        hideRequireJsLoadingSpinner(false);
       }
     }, 400)
   }
diff --git a/web/regression/javascript/hide_spinner_spec.js b/web/regression/javascript/hide_spinner_spec.js
new file mode 100644
index 00000000..388bd9c5
--- /dev/null
+++ b/web/regression/javascript/hide_spinner_spec.js
@@ -0,0 +1,35 @@
+define(['jquery'], function ($) {
+  describe('hideSpinner', function () {
+    var spinnerPanel;
+
+    beforeEach(function () {
+      spinnerPanel = $('<div id="pg-spinner"></div>')[0];
+
+      document.body.appendChild(spinnerPanel)
+    });
+
+    afterEach(function () {
+      if ($('#pg-spinner').length != 0) {
+        document.body.removeChild(spinnerPanel);
+      }
+    });
+
+    describe('when all modules in the registry are done loading', function () {
+      beforeEach(function () {
+        jasmine.clock().install()
+      });
+
+      afterEach(function () {
+        jasmine.clock().uninstall();
+      });
+
+      it('hides the spinner', function () {
+        expect($('#pg-spinner').length).toBe(1);
+        hideRequireJsLoadingSpinner();
+        jasmine.clock().tick(901);
+
+        expect($('#pg-spinner').length).toBe(0);
+      });
+    })
+  });
+});
-- 
2.12.0

