            :product {:update-server-url "http://notarealurl/"
                      :name {:group-id "puppets"
                             :artifact-id "yoda"}}}
-          (is (= {:group-id "puppets" :artifact-id "yoda"}
-                 (get-in @version-check-params [:request-values :product-name])))
-          (is (= "http://notarealurl/" (:update-server-url @version-check-params))))))))
+          (let [params-received (deref version-check-params 30000
+                                       {:request-values
+                                        {:product-name
+                                         :no-product-name-received-before-time-out-reached}
+                                        :update-server-url
+                                        :no-update-server-url-received-before-time-out-reached})]
+            (is (= {:group-id "puppets" :artifact-id "yoda"}
+                   (get-in params-received [:request-values :product-name])))
+            (is (= "http://notarealurl/"
+                   (:update-server-url params-received)))))))))
 
   (testing "master does not make an analytics call to dujour if opt-out exists"
-    ; This atom will store the parameters passed to the version-check-test-fn, which allows us to keep the
+    ; This promise will store the parameters passed to the version-check-test-fn, which allows us to keep the
     ; assertions about their values inside the version-check-test and will also ensure failures will appear if
     ; the master stops calling the check-for-updates! function
-    (let [version-check-params  (atom {})
+    (let [version-check-params  (promise)
           version-check-test-fn (fn [request-values update-server-url]
-                                  (swap! version-check-params #(assoc % :request-values request-values
-                                                                        :update-server-url update-server-url)))]
+                                  (deliver version-check-params
+                                           {:request-values request-values
+                                            :update-server-url update-server-url}))]
       (with-redefs
        [version-check/check-for-updates! version-check-test-fn]
         (logutils/with-test-logging

                     :name {:group-id "puppets"
                            :artifact-id "yoda"}
                     :check-for-updates false}}
          (is (= nil (get-in @version-check-params [:request-values :product-name])))
          (is (= nil (:update-server-url @version-check-params)))))))))


(deftest ^:integration version-check-test
  (testing "master calls into the dujour version check library using the correct values"
    ; This promise will store the parameters passed to the version-check-test-fn, which allows us to keep the
    ; assertions about their values inside the version-check-test and will also ensure failures will appear if
    ; the master stops calling the check-for-updates! function
    (let [version-check-params (promise)
          version-check-test-fn (fn [request-values update-server-url]
                                  (deliver version-check-params
                                           {:request-values request-values
                                            :update-server-url update-server-url}))]
      (with-redefs
       [version-check/check-for-updates! version-check-test-fn]
        (logutils/with-test-logging
