Is the 7 seconds because we are using real servers?

For the invalid test, that's an excellent catch. I can think of a couple of ways to address this.

1. We could monkey-patch fxa-js-client to return values we expect without touching the backend. This would help speed things up.
2. Change the test to ensure the failure is actually called:

```diff
diff --git a/app/tests/spec/lib/fxa-client.js b/app/tests/spec/lib/fxa-client.js
index bc05e23..cfa9650 100644
--- a/app/tests/spec/lib/fxa-client.js
+++ b/app/tests/spec/lib/fxa-client.js
@@ -87,6 +87,13 @@ function (chai, $, ChannelMock, testHelpers,
             return client.signUp(email, password);
           })
           .then(null, function (err) {
+            // If the signUp does not fail, this handler will not
+            // be called. To ensure this handler is called,
+            // return the error, and check the error in the
+            // next success callback, which will be called
+            // whether signUp succeeds or fails.
+            return err;
+          }).then(function(err) {
             assert.isTrue(AuthErrors.is(err, 'THROTTLED'));
           });
       });
```

We should check for other instances of tests that are performing tests in the error callback that may be missed because of similar failures.