summaryrefslogtreecommitdiff
path: root/spec/javascripts
diff options
context:
space:
mode:
authormo <mo.khan@gmail.com>2017-09-04 09:42:56 -0600
committermo <mo.khan@gmail.com>2017-09-04 09:42:56 -0600
commit1e9b754b0997d9a74fccd23752a0a61016c1b173 (patch)
tree65b519857c4c1332b0b5c00089bb2d03d0821395 /spec/javascripts
parent9385d7d0b1b96bd49036ee9bedcd0a8ce137d733 (diff)
connect view to login form.
Diffstat (limited to 'spec/javascripts')
-rw-r--r--spec/javascripts/initializers/auto_view_setup_spec.js.coffee6
-rw-r--r--spec/javascripts/views/sessions/login_page_spec.js.coffee32
2 files changed, 35 insertions, 3 deletions
diff --git a/spec/javascripts/initializers/auto_view_setup_spec.js.coffee b/spec/javascripts/initializers/auto_view_setup_spec.js.coffee
index f061b153..acd6013d 100644
--- a/spec/javascripts/initializers/auto_view_setup_spec.js.coffee
+++ b/spec/javascripts/initializers/auto_view_setup_spec.js.coffee
@@ -8,17 +8,17 @@ describe "CakeSide.AutoViewSetup", ->
describe "#execute", ->
beforeEach ->
- CakeSide.AutoViewSetup.views = {}
+ CakeSide.AutoView.views = {}
it 'attaches the autoview to the DOM element', ->
fixture.set '<div data-autoview="My.ChangePassword"></div>'
subject.execute()
- result = CakeSide.AutoViewSetup.views['MyChangePassword']
+ result = CakeSide.AutoView.views['My-ChangePassword'][0]
expect(result instanceof CakeSide.Views.My.ChangePassword).toEqual(true)
it "returns nil if the autoview cannot be discovered", ->
fixture.set '<div data-autoview="Unknown"></div>'
subject.execute()
- expect(_.isEmpty(CakeSide.AutoViewSetup.views)).toEqual(true)
+ expect(_.isEmpty(CakeSide.AutoView.views)).toEqual(true)
expect(console.error).toHaveBeenCalled()
diff --git a/spec/javascripts/views/sessions/login_page_spec.js.coffee b/spec/javascripts/views/sessions/login_page_spec.js.coffee
new file mode 100644
index 00000000..a8e83b17
--- /dev/null
+++ b/spec/javascripts/views/sessions/login_page_spec.js.coffee
@@ -0,0 +1,32 @@
+describe "CakeSide.Views.LoginForm", ->
+ subject = null
+
+ beforeEach ->
+ fixture.set '''
+<form class="form-horizontal" data-autoview="login-form" id="new_user_session" action="/sessions" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓"><input type="hidden" name="authenticity_token" value="NUk9vz3sVMzi09PgQrzOTDcJIki2RgCzHgtpFw0ooSha4lgMt/bUsuAk//Wvi7wb/K6qh+pVrDkKr5a5e66QTw==">
+ <div class="form-group">
+ <input type="email" name="session[username]" id="session_username" value="" placeholder="Email" class="form-control" required="required">
+ </div>
+ <div class="form-group">
+ <input type="password" name="session[password]" id="session_password" value="" placeholder="Password" class="form-control" required="required">
+ </div>
+ <p><a href="/passwords/new">Forgot your password?</a></p>
+ <input type="submit" name="commit" value="Sign In" class="btn btn-primary">
+</form>
+ '''
+
+ subject = new CakeSide.Views.LoginForm
+ el: $('#new_user_session')
+
+ it "disables the submit button when the email is missing", ->
+ subject.field('password').val('password').change()
+ expect(subject.$('input[type=submit]').prop('disabled')).toEqual(true)
+
+ it "disables the submit button when the password is missing", ->
+ subject.field('username').val('user@email.com').change()
+ expect(subject.$('input[type=submit]').prop('disabled')).toEqual(true)
+
+ it "enables the submit button when all required fields are specified", ->
+ subject.field('username').val('user@email.com').change()
+ subject.field('password').val('password').change()
+ expect(subject.$('input[type=submit]').prop('disabled')).toEqual(false)