travis-web/app/utils/test-auth.js
2016-01-04 13:15:14 +01:00

64 lines
1.7 KiB
JavaScript

import Ember from 'ember';
export default Ember.Object.extend({
state: 'signed-out',
// I want to disable auto sign in for tests for now, the plan is to either
// explicitly say that you're signed in or out (the latter being the default)
autoSignIn() {},
signOutForTests() {
this.set('state', 'signed-out');
return this.set('currentUser', null);
},
signInForTests(user) {
this.set('state', 'signed-in');
if ((user.constructor.typeKey != null) !== 'user') {
this.store.push({
data: {
type: 'user',
id: user.id,
attributes: user
}
});
user = this.store.recordForId('user', user.id);
}
return this.set('currentUser', user);
},
// TODO: we use these properties in templates, but there
// really should be something like a 'session' service that can be
// injected where we need it
userName: function() {
return this.get('currentUser.name') || this.get('currentUser.login');
}.property('currentUser.login', 'currentUser.name'),
gravatarUrl: function() {
return location.protocol + "//www.gravatar.com/avatar/" + (this.get('currentUser.gravatarId')) + "?s=48&d=mm";
}.property('currentUser.gravatarId'),
permissions: Ember.computed.alias('currentUser.permissions'),
signedIn: function() {
return this.get('state') === 'signed-in';
}.property('state'),
signedOut: function() {
return this.get('state') === 'signed-out';
}.property('state'),
signingIn: function() {
return this.get('state') === 'signing-in';
}.property('state'),
token() {
if (this.get('state') === 'signed-in') {
return 'a-token';
}
},
refreshUserData() {
return Ember.RSVP.Promise.resolve();
}
});