Skip to content
This repository has been archived by the owner on Nov 28, 2022. It is now read-only.

Commit

Permalink
Update acceptance tests to use new mirage api
Browse files Browse the repository at this point in the history
  • Loading branch information
acburdine authored and kevinansfield committed Jan 13, 2017
1 parent abfcc4f commit f110a97
Show file tree
Hide file tree
Showing 17 changed files with 53 additions and 118 deletions.
22 changes: 9 additions & 13 deletions tests/acceptance/authentication-test.js
Expand Up @@ -11,7 +11,7 @@ import run from 'ember-runloop';
import startApp from '../helpers/start-app';
import destroyApp from '../helpers/destroy-app';
import {authenticateSession, invalidateSession} from 'ghost-admin/tests/helpers/ember-simple-auth';
import Mirage from 'ember-cli-mirage';
import {Response} from 'ember-cli-mirage';
import windowProxy from 'ghost-admin/utils/window-proxy';
import ghostPaths from 'ghost-admin/utils/ghost-paths';

Expand All @@ -36,7 +36,6 @@ describe('Acceptance: Authentication', function () {
visit(url);
};

server.loadFixtures();
let role = server.create('role', {name: 'Administrator'});
server.create('user', {roles: [role], slug: 'test-user'});
});
Expand All @@ -48,7 +47,7 @@ describe('Acceptance: Authentication', function () {
it('invalidates session on 401 API response', function () {
// return a 401 when attempting to retrieve users
server.get('/users/', () => {
return new Mirage.Response(401, {}, {
return new Response(401, {}, {
errors: [
{message: 'Access denied.', errorType: 'UnauthorizedError'}
]
Expand Down Expand Up @@ -94,6 +93,7 @@ describe('Acceptance: Authentication', function () {
});
});

// TODO: re-enable once modal reappears correctly
describe.skip('editor', function () {
let origDebounce = run.debounce;
let origThrottle = run.throttle;
Expand All @@ -109,24 +109,21 @@ describe('Acceptance: Authentication', function () {
server.create('user', {roles: [role]});

// simulate an invalid session when saving the edited post
server.put('/posts/:id/', (db, request) => {
let post = db.posts.find(request.params.id);
let [attrs] = JSON.parse(request.requestBody).posts;
server.put('/posts/:id/', function ({posts}, {params}) {
let post = posts.find(params.id);
let attrs = this.normalizedRequestAttrs();

if (attrs.markdown === 'Edited post body') {
return new Mirage.Response(401, {}, {
return new Response(401, {}, {
errors: [
{message: 'Access denied.', errorType: 'UnauthorizedError'}
]
});
} else {
return {
posts: [post]
};
return post.update(attrs);
}
});

server.loadFixtures();
authenticateSession(application);

visit('/editor');
Expand Down Expand Up @@ -164,10 +161,9 @@ describe('Acceptance: Authentication', function () {
let role = server.create('role', {name: 'Administrator'});
server.create('user', {roles: [role]});

server.post('/uploads', (db, request) => {
server.post('/uploads', (schema, request) => {
return request;
});
server.loadFixtures();

/* eslint-disable camelcase */
authenticateSession(application, {
Expand Down
25 changes: 7 additions & 18 deletions tests/acceptance/editor-test.js
Expand Up @@ -74,12 +74,10 @@ describe('Acceptance: Editor', function() {
});

describe('when logged in', function () {

beforeEach(function () {
let role = server.create('role', {name: 'Administrator'});
server.create('user', {roles: [role]});

server.loadFixtures();
server.loadFixtures('settings');

return authenticateSession(application);
});
Expand Down Expand Up @@ -342,7 +340,7 @@ describe('Acceptance: Editor', function() {
it('handles validation errors when scheduling', function () {
let saveCount = 0;

server.put('/posts/:id/', function (db, request) {
server.put('/posts/:id/', function ({posts}, {params}) {
// we have three saves occurring here :-(
// 1. Auto-save of draft
// 2. Change of publish time
Expand All @@ -356,15 +354,9 @@ describe('Acceptance: Editor', function() {
}]
});
} else {
let {id} = request.params;
let [attrs] = JSON.parse(request.requestBody).posts;
delete attrs.id;

let post = db.posts.update(id, attrs);
let attrs = this.normalizedRequestAttrs();

return {
posts: [post]
};
return posts.find(params.id).update(attrs);
}
});

Expand Down Expand Up @@ -421,10 +413,9 @@ describe('Acceptance: Editor', function() {
});

it('renders first countdown notification before scheduled time', function () {
/* eslint-disable camelcase */
let clock = sinon.useFakeTimers(moment().valueOf());
let compareDate = moment().tz('Etc/UTC').add(4, 'minutes').format('DD MMM YY @ HH:mm').toString();
server.create('post', {published_at: moment.utc().add(4, 'minutes'), status: 'scheduled'});
server.create('post', {publishedAt: moment.utc().add(4, 'minutes'), status: 'scheduled'});
server.create('setting', {activeTimezone: 'Europe/Dublin'});
clock.restore();

Expand All @@ -451,9 +442,8 @@ describe('Acceptance: Editor', function() {
});

it('only shows option to unschedule post 2 minutes before scheduled time', function () {
/* eslint-disable camelcase */
let clock = sinon.useFakeTimers(moment().valueOf());
server.create('post', {published_at: moment.utc().add(2, 'minutes'), status: 'scheduled'});
server.create('post', {publishedAt: moment.utc().add(2, 'minutes'), status: 'scheduled'});
server.create('setting', {activeTimezone: 'Europe/Dublin'});
clock.restore();

Expand All @@ -473,9 +463,8 @@ describe('Acceptance: Editor', function() {
});

it.skip('lets user unschedule the post shortly before scheduled date', function () {
/* eslint-disable camelcase */
let clock = sinon.useFakeTimers(moment().valueOf());
server.create('post', {published_at: moment.utc().add(1, 'minute'), status: 'scheduled'});
server.create('post', {publishedAt: moment.utc().add(1, 'minute'), status: 'scheduled'});
server.create('setting', {activeTimezone: 'Europe/Dublin'});
clock.restore();

Expand Down
2 changes: 0 additions & 2 deletions tests/acceptance/ghost-desktop-test.js
Expand Up @@ -49,8 +49,6 @@ describe('Acceptance: Ghost Desktop', function() {
let role = server.create('role', {name: 'Administrator'});
server.create('user', {roles: [role]});

server.loadFixtures();

return authenticateSession(application);
});

Expand Down
8 changes: 2 additions & 6 deletions tests/acceptance/posts/post-test.js
Expand Up @@ -11,7 +11,7 @@ import startApp from '../../helpers/start-app';
import destroyApp from '../../helpers/destroy-app';
import {authenticateSession} from 'ghost-admin/tests/helpers/ember-simple-auth';
import {errorOverride, errorReset} from 'ghost-admin/tests/helpers/adapter-error';
import Mirage from 'ember-cli-mirage';
import {Response} from 'ember-cli-mirage';

describe('Acceptance: Posts - Post', function() {
let application;
Expand All @@ -29,10 +29,6 @@ describe('Acceptance: Posts - Post', function() {
let role = server.create('role', {name: 'Administrator'});
server.create('user', {roles: [role]});

// load the settings fixtures
// TODO: this should always be run for acceptance tests
server.loadFixtures();

return authenticateSession(application);
});

Expand Down Expand Up @@ -71,7 +67,7 @@ describe('Acceptance: Posts - Post', function() {

it('redirects to 404 when post does not exist', function () {
server.get('/posts/200/', function () {
return new Mirage.Response(404, {'Content-Type': 'application/json'}, {errors: [{message: 'Post not found.', errorType: 'NotFoundError'}]});
return new Response(404, {'Content-Type': 'application/json'}, {errors: [{message: 'Post not found.', errorType: 'NotFoundError'}]});
});

errorOverride();
Expand Down
2 changes: 0 additions & 2 deletions tests/acceptance/settings/apps-test.js
Expand Up @@ -59,8 +59,6 @@ describe('Acceptance: Settings - Apps', function () {
let role = server.create('role', {name: 'Administrator'});
server.create('user', {roles: [role]});

server.loadFixtures();

return authenticateSession(application);
});

Expand Down
2 changes: 0 additions & 2 deletions tests/acceptance/settings/code-injection-test.js
Expand Up @@ -60,8 +60,6 @@ describe('Acceptance: Settings - Code-Injection', function() {
let role = server.create('role', {name: 'Administrator'});
server.create('user', {roles: [role]});

server.loadFixtures();

return authenticateSession(application);
});

Expand Down
2 changes: 0 additions & 2 deletions tests/acceptance/settings/general-test.js
Expand Up @@ -62,8 +62,6 @@ describe('Acceptance: Settings - General', function () {
let role = server.create('role', {name: 'Administrator'});
server.create('user', {roles: [role]});

server.loadFixtures();

return authenticateSession(application);
});

Expand Down
2 changes: 0 additions & 2 deletions tests/acceptance/settings/labs-test.js
Expand Up @@ -60,8 +60,6 @@ describe('Acceptance: Settings - Labs', function() {
let role = server.create('role', {name: 'Administrator'});
server.create('user', {roles: [role]});

server.loadFixtures();

return authenticateSession(application);
});

Expand Down
4 changes: 0 additions & 4 deletions tests/acceptance/settings/navigation-test.js
Expand Up @@ -48,10 +48,6 @@ describe('Acceptance: Settings - Navigation', function () {
let role = server.create('role', {name: 'Administrator'});
server.create('user', {roles: [role]});

// load the settings fixtures
// TODO: this should always be run for acceptance tests
server.loadFixtures();

authenticateSession(application);
});

Expand Down
2 changes: 0 additions & 2 deletions tests/acceptance/settings/slack-test.js
Expand Up @@ -60,8 +60,6 @@ describe('Acceptance: Settings - Apps - Slack', function () {
let role = server.create('role', {name: 'Administrator'});
server.create('user', {roles: [role]});

server.loadFixtures();

return authenticateSession(application);
});

Expand Down
8 changes: 2 additions & 6 deletions tests/acceptance/settings/tags-test.js
Expand Up @@ -13,7 +13,7 @@ import startApp from '../../helpers/start-app';
import destroyApp from '../../helpers/destroy-app';
import {invalidateSession, authenticateSession} from 'ghost-admin/tests/helpers/ember-simple-auth';
import {errorOverride, errorReset} from 'ghost-admin/tests/helpers/adapter-error';
import Mirage from 'ember-cli-mirage';
import {Response} from 'ember-cli-mirage';

// Grabbed from keymaster's testing code because Ember's `keyEvent` helper
// is for some reason not triggering the events in a way that keymaster detects:
Expand Down Expand Up @@ -79,10 +79,6 @@ describe('Acceptance: Settings - Tags', function () {
let role = server.create('role', {name: 'Administrator'});
server.create('user', {roles: [role]});

// load the settings fixtures
// TODO: this should always be run for acceptance tests
server.loadFixtures();

return authenticateSession(application);
});

Expand Down Expand Up @@ -308,7 +304,7 @@ describe('Acceptance: Settings - Tags', function () {

it('redirects to 404 when tag does not exist', function () {
server.get('/tags/slug/unknown/', function () {
return new Mirage.Response(404, {'Content-Type': 'application/json'}, {errors: [{message: 'Tag not found.', errorType: 'NotFoundError'}]});
return new Response(404, {'Content-Type': 'application/json'}, {errors: [{message: 'Tag not found.', errorType: 'NotFoundError'}]});
});

errorOverride();
Expand Down
22 changes: 9 additions & 13 deletions tests/acceptance/setup-test.js
Expand Up @@ -10,7 +10,7 @@ import startApp from '../helpers/start-app';
import destroyApp from '../helpers/destroy-app';
import {invalidateSession, authenticateSession} from '../helpers/ember-simple-auth';
import {enableGhostOAuth} from '../helpers/configuration';
import Mirage from 'ember-cli-mirage';
import {Response} from 'ember-cli-mirage';
import {
stubSuccessfulOAuthConnect,
stubFailedOAuthConnect
Expand Down Expand Up @@ -185,7 +185,7 @@ describe('Acceptance: Setup', function () {

// validation error
if (postCount === 1) {
return new Mirage.Response(422, {}, {
return new Response(422, {}, {
errors: [
{
errorType: 'ValidationError',
Expand All @@ -197,7 +197,7 @@ describe('Acceptance: Setup', function () {

// server error
if (postCount === 2) {
return new Mirage.Response(500, {}, null);
return new Response(500, {}, null);
}
});

Expand Down Expand Up @@ -238,7 +238,7 @@ describe('Acceptance: Setup', function () {
it('handles invalid origin error on step 2', function () {
// mimick the API response for an invalid origin
server.post('/authentication/token', function () {
return new Mirage.Response(401, {}, {
return new Response(401, {}, {
errors: [
{
errorType: 'UnauthorizedError',
Expand Down Expand Up @@ -271,19 +271,19 @@ describe('Acceptance: Setup', function () {
it('handles validation errors in step 3', function () {
let input = '[name="users"]';
let postCount = 0;
let button, formGroup, invite;
let button, formGroup;

invalidateSession(application);
server.loadFixtures('roles');

server.post('/invites', function (db, request) {
server.post('/invites', function ({invites}, request) {
let [params] = JSON.parse(request.requestBody).invites;

postCount++;

// invalid
if (postCount === 1) {
return new Mirage.Response(422, {}, {
return new Response(422, {}, {
errors: [
{
errorType: 'ValidationError',
Expand All @@ -295,7 +295,7 @@ describe('Acceptance: Setup', function () {

// TODO: duplicated from mirage/config/invites - extract method?
/* eslint-disable camelcase */
params.token = `${db.invites.length}-token`;
params.token = `${invites.all().models.length}-token`;
params.expires = moment.utc().add(1, 'day').unix();
params.created_at = moment.utc().format();
params.created_by = 1;
Expand All @@ -304,11 +304,7 @@ describe('Acceptance: Setup', function () {
params.status = 'sent';
/* eslint-enable camelcase */

// valid
invite = db.invites.insert(params);
return {
invites: [invite]
};
return invites.create(params);
});

// complete step 2 so we can access step 3
Expand Down
10 changes: 5 additions & 5 deletions tests/acceptance/signin-test.js
Expand Up @@ -5,13 +5,13 @@ import {
beforeEach,
afterEach
} from 'mocha';
import {expect} from 'chai';
import $ from 'jquery';
import {expect} from 'chai';
import startApp from '../helpers/start-app';
import destroyApp from '../helpers/destroy-app';
import {invalidateSession, authenticateSession} from '../helpers/ember-simple-auth';
import {enableGhostOAuth} from '../helpers/configuration';
import Mirage from 'ember-cli-mirage';
import {Response} from 'ember-cli-mirage';
import {
stubSuccessfulOAuthConnect,
stubFailedOAuthConnect
Expand Down Expand Up @@ -45,14 +45,14 @@ describe('Acceptance: Signin', function() {
let role = server.create('role', {name: 'Administrator'});
server.create('user', {roles: [role], slug: 'test-user'});

server.post('/authentication/token', function (db, request) {
server.post('/authentication/token', function (schema, {requestBody}) {
/* eslint-disable camelcase */
let {
grant_type: grantType,
username,
password,
client_id: clientId
} = $.deparam(request.requestBody);
} = $.deparam(requestBody);

expect(grantType, 'grant type').to.equal('password');
expect(username, 'username').to.equal('test@example.com');
Expand All @@ -66,7 +66,7 @@ describe('Acceptance: Signin', function() {
token_type: 'Bearer'
};
} else {
return new Mirage.Response(401, {}, {
return new Response(401, {}, {
errors: [{
errorType: 'UnauthorizedError',
message: 'Invalid Password'
Expand Down

0 comments on commit f110a97

Please sign in to comment.