Skip to content

Commit

Permalink
Fix service test
Browse files Browse the repository at this point in the history
  • Loading branch information
joshsmith committed Nov 7, 2017
1 parent a847cfb commit b17d7a9
Showing 1 changed file with 23 additions and 32 deletions.
55 changes: 23 additions & 32 deletions tests/unit/services/project-user-test.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import RSVP from 'rsvp';
import { set, get } from '@ember/object';
import { set } from '@ember/object';
import { moduleFor, test } from 'ember-qunit';
import { getFlashMessageCount } from 'code-corps-ember/tests/helpers/flash-message';

moduleFor('service:project-user', 'Unit | Service | project user', {

needs: [
'service:current-user',
'service:flash-messages',
Expand All @@ -13,50 +11,43 @@ moduleFor('service:project-user', 'Unit | Service | project user', {
]
});

test('it exists', function(assert) {
let service = this.subject();
assert.ok(service);
});

test('it creates a new projectUser with properties', function(assert) {
assert.expect(3);
let done = assert.async();
let service = this.subject();
let user = get(this, 'currentUser.user');
let user = { id: 1 };
let project = { title: 'Code Corps' };
let projectUser = { project, user, role: 'pending' };

let mockCurrentUser = { user };

let mockStore = {
createRecord(projectUser) {
project:'Code Corps',
user,
role:
createRecord(modelName, inputProperties) {
return {
save() {
return RSVP.resolve({ projectUser });
assert.equal(modelName, 'project-user');
assert.deepEqual(inputProperties, projectUser);
return RSVP.resolve(projectUser);
}
};
}
};

let mockFlashMessage = {
_flashSuccess(message)
}

let currentUser = get(this, 'currentUser.user');
clearMessages() {
return {
success() {
assert.ok(true);
}
};
}
};

let user = {
currentUser,
project: 'Code Corps',
role: 'pending' };
set(service, 'currentUser', mockCurrentUser);
set(service, 'flashMessages', mockFlashMessage);
set(service, 'store', mockStore);

service.joinProject(user).then((result) => {
set(service, 'store', mockStore);
let created = get(result, 'created');
assert.equal(created, true);
service.joinProject(project).then(() => {
done();
});
});


service.flashMessages.create('success!').then(() => {
assert.equal(getFlashMessageCount(this), 1, 'A flash message was shown.');
});
});

0 comments on commit b17d7a9

Please sign in to comment.