Commit d3cb713
Changed files (4)
app
javascript
controllers
sessions
views
sessions
spec
fixtures
javascripts
controllers
sessions
app/javascript/controllers/sessions/new_controller.js
@@ -1,38 +0,0 @@
-import ApplicationController from '../application_controller';
-import Email from '../../models/email';
-
-export default class extends ApplicationController {
- get email() { return this.targets.find('email'); }
-
- get password() { return this.targets.find('password'); }
-
- get submitButton() { return this.targets.find('submit'); }
-
- validate() {
- if (this.isValidEmail() && this.isValidPassword()) {
- this.enable(this.submitButton);
- } else {
- this.disable(this.submitButton);
- }
- }
-
- enable(element) {
- element.removeAttribute('disabled');
- }
-
- disable(element) {
- element.setAttribute('disabled', 'disabled');
- }
-
- isPresent(element) {
- return element.value.length > 0;
- }
-
- isValidEmail() {
- return new Email(this.email.value).valid();
- }
-
- isValidPassword() {
- return this.isPresent(this.password);
- }
-}
app/views/sessions/show.html.erb
@@ -3,13 +3,13 @@
<%= link_to my_dashboard_path, class: 'navbar-item' do %>
<img src="<%= asset_pack_path("images/logo.png") %>" height="28" />
<% end %>
- <a role="button" class="navbar-burger burger" aria-label="menu" aria-expanded="false" data-target="navbarBasicExample">
+ <a role="button" class="navbar-burger burger" aria-label="menu" aria-expanded="false" data-target="navigation-bar">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</a>
</div>
- <div class="navbar-menu">
+ <div id='navigation-bar' class="navbar-menu">
<div class="navbar-start">
<%= link_to t(".home"), my_dashboard_path, class: 'navbar-item' %>
<%= link_to t(".documentation"), '/doc/', class: 'navbar-item' %>
spec/fixtures/sessions-new.html
@@ -1,5 +0,0 @@
-<form data-controller='sessions--new' action="#">
- <input id='user_email' type="email" data-target='sessions--new.email' data-action='keyup->sessions--new#validate' >
- <input id='user_password' type="password" data-target='sessions--new.password' data-action='keyup->sessions--new#validate' >
- <button type="submit" data-target='sessions--new.submit'>submit</button>
-</form>
spec/javascripts/controllers/sessions/new.spec.js
@@ -1,48 +0,0 @@
-import Controller from '../../../../app/javascript/controllers/sessions/new_controller'
-import { Application } from 'stimulus';
-
-describe('sessions--new', () => {
- beforeEach(() => {
- fixture.setBase('spec/fixtures')
- const el = fixture.load('sessions-new.html')
-
- const application = new Application();
- application.router.start();
- application.dispatcher.start();
- application.register('sessions--new', Controller);
- });
-
- afterEach(() => {
- fixture.cleanup();
- });
-
- describe("validate", () => {
- let emailField;
- let passwordField;
-
- beforeEach(() => {
- emailField = document.getElementById('user_email')
- passwordField = document.getElementById('user_password')
- });
-
- it("disables the submit button when the email is blank", () => {
- emailField.value = ''
- emailField.dispatchEvent(new Event('keyup'))
- expect($('button[type="submit"]').attr('disabled')).toBe('disabled')
- });
-
- it("disables the submit button when the password is blank", () => {
- passwordField.value = ''
- passwordField.dispatchEvent(new Event('keyup'))
- expect($('button[type="submit"]').attr('disabled')).toBe('disabled')
- });
-
- it ("enables the submit button when all fields are provided", () => {
- emailField.value = 'email@example.com';
- emailField.dispatchEvent(new Event('keyup'))
- passwordField.value = 'password';
- passwordField.dispatchEvent(new Event('keyup'))
- expect($('button[type="submit"]').attr('disabled')).toBe(undefined)
- });
- });
-});