diff --git a/app/routes/signup.js b/app/routes/signup.js index d73acd14a..eda2d46ef 100644 --- a/app/routes/signup.js +++ b/app/routes/signup.js @@ -6,7 +6,8 @@ const { get, Route, inject: { service }, - set + set, + setProperties } = Ember; export default Route.extend(UnauthenticatedRouteMixin, { diff --git a/app/templates/components/signup-form.hbs b/app/templates/components/signup-form.hbs index f5596bd73..8ed8e6ad9 100644 --- a/app/templates/components/signup-form.hbs +++ b/app/templates/components/signup-form.hbs @@ -1,10 +1,10 @@
- {{#if donate}} -

Join Code Corps today.

- {{else}} + {{#if (eq user.state 'signed_up_donating')}}

Join Code Corps to continue.

+ {{else}} +

Join Code Corps today.

{{/if}} {{#auto-focus}} diff --git a/tests/integration/components/signup-form-test.js b/tests/integration/components/signup-form-test.js index 3acb5b055..def85f9fa 100644 --- a/tests/integration/components/signup-form-test.js +++ b/tests/integration/components/signup-form-test.js @@ -1,9 +1,16 @@ +import Ember from 'ember'; import { moduleForComponent, test } from 'ember-qunit'; import hbs from 'htmlbars-inline-precompile'; import PageObject from 'ember-cli-page-object'; import component from 'code-corps-ember/tests/pages/components/signup-form'; -let page = PageObject.create(component); +const { run, set } = Ember; + +const page = PageObject.create(component); + +function renderPage() { + page.render(hbs`{{signup-form user=user}}`); +} moduleForComponent('signup-form', 'Integration | Component | signup form', { integration: true, @@ -16,10 +23,26 @@ moduleForComponent('signup-form', 'Integration | Component | signup form', { }); test('it renders required ui elements', function(assert) { - this.render(hbs`{{signup-form}}`); + assert.expect(4); + + renderPage(); assert.ok(page.usernameInput.isVisible, 'The username field renders'); assert.ok(page.emailInput.isVisible, 'The email field renders'); assert.ok(page.passwordInput.isVisible, 'The password field renders'); assert.ok(page.signupButton.isVisible, 'The signup button renders'); }); + +test('renders different title if user is donating', function(assert) { + assert.expect(2); + + renderPage(); + + let normalUser = { state: null }; + let donatingUser = { state: 'signed_up_donating' }; + + run(() => set(this, 'user', normalUser)); + assert.equal(page.title.text, 'Join Code Corps today.', 'Title is correct.'); + run(() => set(this, 'user', donatingUser)); + assert.equal(page.title.text, 'Join Code Corps to continue.', 'Title is correct.'); +}); diff --git a/tests/pages/components/signup-form.js b/tests/pages/components/signup-form.js index 445ccc1b6..329dec7fa 100644 --- a/tests/pages/components/signup-form.js +++ b/tests/pages/components/signup-form.js @@ -5,6 +5,10 @@ import { export default { scope: '.signup-form', + title: { + scope: 'h2' + }, + emailInput: { scope: 'input[name=email]', isVisible: isVisible()