Ghost/ghost/admin/tests/unit/models/user-test.js
Kevin Ansfield 753681e9e9 Standardize ember test names and file names
no issue
- standardize on "{TestType}: {ModuleType}: {module-name}" for test description strings
- standardize on `{module-name}-test.js` for test file names
- fix deprecation notices for ember component unit tests without explicit `unit: test` or `needs: []`
2015-10-06 17:31:03 +01:00

179 lines
5.1 KiB
JavaScript

import Ember from 'ember';
import {
describeModel,
it
} from 'ember-mocha';
describeModel(
'user',
'Unit: Model: user',
{
needs: ['model:role']
},
function () {
it('has a validation type of "user"', function () {
var model = this.subject();
expect(model.get('validationType')).to.equal('user');
});
it('active property is correct', function () {
var model = this.subject({
status: 'active'
});
expect(model.get('active')).to.be.ok;
['warn-1', 'warn-2', 'warn-3', 'warn-4', 'locked'].forEach(function (status) {
Ember.run(function () {
model.set('status', status);
expect(model.get('status')).to.be.ok;
});
});
Ember.run(function () {
model.set('status', 'inactive');
expect(model.get('active')).to.not.be.ok;
});
Ember.run(function () {
model.set('status', 'invited');
expect(model.get('active')).to.not.be.ok;
});
});
it('invited property is correct', function () {
var model = this.subject({
status: 'invited'
});
expect(model.get('invited')).to.be.ok;
Ember.run(function () {
model.set('status', 'invited-pending');
expect(model.get('invited')).to.be.ok;
});
Ember.run(function () {
model.set('status', 'active');
expect(model.get('invited')).to.not.be.ok;
});
Ember.run(function () {
model.set('status', 'inactive');
expect(model.get('invited')).to.not.be.ok;
});
});
it('pending property is correct', function () {
var model = this.subject({
status: 'invited-pending'
});
expect(model.get('pending')).to.be.ok;
Ember.run(function () {
model.set('status', 'invited');
expect(model.get('pending')).to.not.be.ok;
});
Ember.run(function () {
model.set('status', 'inactive');
expect(model.get('pending')).to.not.be.ok;
});
});
it('role property is correct', function () {
var model,
role;
model = this.subject();
Ember.run(this, function () {
role = this.store().createRecord('role', {name: 'Author'});
model.get('roles').pushObject(role);
expect(model.get('role.name')).to.equal('Author');
});
Ember.run(this, function () {
role = this.store().createRecord('role', {name: 'Editor'});
model.set('role', role);
expect(model.get('role.name')).to.equal('Editor');
});
});
it('isAuthor property is correct', function () {
var model = this.subject();
Ember.run(this, function () {
var role = this.store().createRecord('role', {name: 'Author'});
model.set('role', role);
expect(model.get('isAuthor')).to.be.ok;
expect(model.get('isEditor')).to.not.be.ok;
expect(model.get('isAdmin')).to.not.be.ok;
expect(model.get('isOwner')).to.not.be.ok;
});
});
it('isEditor property is correct', function () {
var model = this.subject();
Ember.run(this, function () {
var role = this.store().createRecord('role', {name: 'Editor'});
model.set('role', role);
expect(model.get('isEditor')).to.be.ok;
expect(model.get('isAuthor')).to.not.be.ok;
expect(model.get('isAdmin')).to.not.be.ok;
expect(model.get('isOwner')).to.not.be.ok;
});
});
it('isAdmin property is correct', function () {
var model = this.subject();
Ember.run(this, function () {
var role = this.store().createRecord('role', {name: 'Administrator'});
model.set('role', role);
expect(model.get('isAdmin')).to.be.ok;
expect(model.get('isAuthor')).to.not.be.ok;
expect(model.get('isEditor')).to.not.be.ok;
expect(model.get('isOwner')).to.not.be.ok;
});
});
it('isOwner property is correct', function () {
var model = this.subject();
Ember.run(this, function () {
var role = this.store().createRecord('role', {name: 'Owner'});
model.set('role', role);
expect(model.get('isOwner')).to.be.ok;
expect(model.get('isAuthor')).to.not.be.ok;
expect(model.get('isAdmin')).to.not.be.ok;
expect(model.get('isEditor')).to.not.be.ok;
});
});
}
);