From 85f2dcf535dba851a0e7690d358dac7f68379734 Mon Sep 17 00:00:00 2001
From: Mike Greiling <mike@pixelcog.com>
Date: Thu, 2 Feb 2017 13:28:35 -0600
Subject: [PATCH] prevent u2f tests from triggering a form submission while
 testing

---
 spec/javascripts/u2f/authenticate_spec.js | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/spec/javascripts/u2f/authenticate_spec.js b/spec/javascripts/u2f/authenticate_spec.js
index 80163fd72d3..0e2fb07ba7f 100644
--- a/spec/javascripts/u2f/authenticate_spec.js
+++ b/spec/javascripts/u2f/authenticate_spec.js
@@ -25,19 +25,20 @@
         document.querySelector('#js-login-2fa-device'),
         document.querySelector('.js-2fa-form')
       );
+
+      // bypass automatic form submission within renderAuthenticated
+      spyOn(this.component, 'renderAuthenticated').and.returnValue(true);
+
       return this.component.start();
     });
     it('allows authenticating via a U2F device', function() {
-      var authenticatedMessage, deviceResponse, inProgressMessage;
+      var inProgressMessage;
       inProgressMessage = this.container.find("p");
       expect(inProgressMessage.text()).toContain("Trying to communicate with your device");
       this.u2fDevice.respondToAuthenticateRequest({
         deviceData: "this is data from the device"
       });
-      authenticatedMessage = this.container.find("p");
-      deviceResponse = this.container.find('#js-device-response');
-      expect(authenticatedMessage.text()).toContain('We heard back from your U2F device. You have been authenticated.');
-      return expect(deviceResponse.val()).toBe('{"deviceData":"this is data from the device"}');
+      expect(this.component.renderAuthenticated).toHaveBeenCalledWith('{"deviceData":"this is data from the device"}');
     });
     return describe("errors", function() {
       it("displays an error message", function() {
@@ -51,7 +52,7 @@
         return expect(errorMessage.text()).toContain("There was a problem communicating with your device");
       });
       return it("allows retrying authentication after an error", function() {
-        var authenticatedMessage, retryButton, setupButton;
+        var retryButton, setupButton;
         setupButton = this.container.find("#js-login-u2f-device");
         setupButton.trigger('click');
         this.u2fDevice.respondToAuthenticateRequest({
@@ -64,8 +65,7 @@
         this.u2fDevice.respondToAuthenticateRequest({
           deviceData: "this is data from the device"
         });
-        authenticatedMessage = this.container.find("p");
-        return expect(authenticatedMessage.text()).toContain("We heard back from your U2F device. You have been authenticated.");
+        expect(this.component.renderAuthenticated).toHaveBeenCalledWith('{"deviceData":"this is data from the device"}');
       });
     });
   });
-- 
GitLab