mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-04-01 02:41:39 -05:00
Integration tests use consistent teardown methods
This commit is contained in:
parent
c2f0fd54da
commit
cf9839c71d
23 changed files with 405 additions and 565 deletions
|
@ -628,7 +628,7 @@ var path = require('path'),
|
|||
// globally, by using a command in the form (replace path to api_tags_spec.js with the test file you want to
|
||||
// run):
|
||||
//
|
||||
// NODE_ENV=testing mocha --timeout=15000 --ui=bdd --reporter=spec core/test/integration/api/api_tags_spec.js`
|
||||
// `NODE_ENV=testing mocha --timeout=15000 --ui=bdd --reporter=spec core/test/integration/api/api_tags_spec.js`
|
||||
//
|
||||
// Their purpose is to test that both the api and models behave as expected when the database layer is involved.
|
||||
// These tests are run against sqlite3, mysql and pg on travis and ensure that differences between the databases
|
||||
|
|
|
@ -1,31 +1,31 @@
|
|||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
when = require('when'),
|
||||
rewire = require('rewire'),
|
||||
mail = rewire('../../../server/api/mail'),
|
||||
permissions = require('../../../server/permissions'),
|
||||
settings = require('../../../server/api/settings'),
|
||||
/*globals describe, before, beforeEach, afterEach, it */
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
when = require('when'),
|
||||
rewire = require('rewire'),
|
||||
|
||||
authentication = require('../../../server/api/authentication');
|
||||
// Stuff we are testing
|
||||
mail = rewire('../../../server/api/mail'),
|
||||
settings = require('../../../server/api/settings'),
|
||||
permissions = require('../../../server/permissions'),
|
||||
AuthAPI = require('../../../server/api/authentication');
|
||||
|
||||
describe('Authentication API', function () {
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(AuthAPI);
|
||||
|
||||
describe('Setup', function () {
|
||||
|
||||
describe('Not completed', function () {
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
return testUtils.initData().then(function () {
|
||||
return permissions.init().then(function () {
|
||||
return settings.updateSettingsCache();
|
||||
});
|
||||
testUtils.initData().then(function () {
|
||||
return permissions.init().then(function () {
|
||||
return settings.updateSettingsCache();
|
||||
});
|
||||
}).then(function () {
|
||||
done();
|
||||
|
@ -33,7 +33,7 @@ describe('Authentication API', function () {
|
|||
});
|
||||
|
||||
it('should report that setup has not been completed', function (done) {
|
||||
authentication.isSetup().then(function (result) {
|
||||
AuthAPI.isSetup().then(function (result) {
|
||||
should.exist(result);
|
||||
result.setup[0].status.should.be.false;
|
||||
|
||||
|
@ -55,8 +55,12 @@ describe('Authentication API', function () {
|
|||
return when.resolve();
|
||||
});
|
||||
|
||||
authentication.setup({ setup: [setupData] }).then(function (result) {
|
||||
AuthAPI.setup({ setup: [setupData] }).then(function (result) {
|
||||
should.exist(result);
|
||||
should.exist(result.users);
|
||||
result.users.should.have.length(1);
|
||||
testUtils.API.checkResponse(result, 'users');
|
||||
testUtils.API.checkResponse(result.users[0], 'user', ['roles']);
|
||||
|
||||
var newUser = result.users[0];
|
||||
|
||||
|
@ -74,12 +78,10 @@ describe('Authentication API', function () {
|
|||
describe('Completed', function () {
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
return testUtils.initData().then(function () {
|
||||
return testUtils.insertDefaultFixtures().then(function () {
|
||||
return permissions.init().then(function () {
|
||||
return settings.updateSettingsCache();
|
||||
});
|
||||
testUtils.initData().then(function () {
|
||||
return testUtils.insertDefaultFixtures().then(function () {
|
||||
return permissions.init().then(function () {
|
||||
return settings.updateSettingsCache();
|
||||
});
|
||||
});
|
||||
}).then(function () {
|
||||
|
@ -88,7 +90,7 @@ describe('Authentication API', function () {
|
|||
});
|
||||
|
||||
it('should report that setup has been completed', function (done) {
|
||||
authentication.isSetup().then(function (result) {
|
||||
AuthAPI.isSetup().then(function (result) {
|
||||
should.exist(result);
|
||||
result.setup[0].status.should.be.true;
|
||||
|
||||
|
@ -104,7 +106,7 @@ describe('Authentication API', function () {
|
|||
title: 'a test blog'
|
||||
};
|
||||
|
||||
authentication.setup({ setup: [setupData] }).then(function (result) {
|
||||
AuthAPI.setup({ setup: [setupData] }).then(function () {
|
||||
done(new Error('Setup was able to be run'));
|
||||
}).catch(function (err) {
|
||||
should.exist(err);
|
||||
|
@ -123,11 +125,9 @@ describe('Authentication API', function () {
|
|||
describe('Setup not completed', function () {
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
return testUtils.initData().then(function () {
|
||||
return permissions.init().then(function () {
|
||||
return settings.updateSettingsCache();
|
||||
});
|
||||
return testUtils.initData().then(function () {
|
||||
return permissions.init().then(function () {
|
||||
return settings.updateSettingsCache();
|
||||
});
|
||||
}).then(function () {
|
||||
done();
|
||||
|
@ -135,7 +135,7 @@ describe('Authentication API', function () {
|
|||
});
|
||||
|
||||
it('should not allow an invitation to be accepted', function (done) {
|
||||
authentication.acceptInvitation().then(function () {
|
||||
AuthAPI.acceptInvitation().then(function () {
|
||||
done(new Error('Invitation was allowed to be accepted'));
|
||||
}).catch(function (err) {
|
||||
should.exist(err);
|
||||
|
@ -148,7 +148,7 @@ describe('Authentication API', function () {
|
|||
});
|
||||
|
||||
it('should not generate a password reset token', function (done) {
|
||||
authentication.generateResetToken().then(function () {
|
||||
AuthAPI.generateResetToken().then(function () {
|
||||
done(new Error('Reset token was generated'));
|
||||
}).catch(function (err) {
|
||||
should.exist(err);
|
||||
|
@ -161,7 +161,7 @@ describe('Authentication API', function () {
|
|||
});
|
||||
|
||||
it('should not allow a password reset', function (done) {
|
||||
authentication.resetPassword().then(function () {
|
||||
AuthAPI.resetPassword().then(function () {
|
||||
done(new Error('Password was reset'));
|
||||
}).catch(function (err) {
|
||||
should.exist(err);
|
||||
|
|
|
@ -1,21 +1,18 @@
|
|||
/*globals describe, before, beforeEach, afterEach, it */
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
|
||||
// Stuff we are testing
|
||||
permissions = require('../../../server/permissions'),
|
||||
DataGenerator = require('../../utils/fixtures/data-generator'),
|
||||
dbAPI = require('../../../server/api/db'),
|
||||
TagsAPI = require('../../../server/api/tags'),
|
||||
PostAPI = require('../../../server/api/posts');
|
||||
|
||||
describe('DB API', function () {
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData().then(function () {
|
||||
|
@ -29,11 +26,7 @@ describe('DB API', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(dbAPI);
|
||||
|
||||
it('delete all content', function (done) {
|
||||
var options = {context: {user: 1}};
|
||||
|
@ -62,17 +55,17 @@ describe('DB API', function () {
|
|||
permissions.init().then(function () {
|
||||
return dbAPI.deleteAllContent({context: {user: 2}});
|
||||
}).then(function (){
|
||||
done(new Error("Delete all content is not denied for editor."));
|
||||
done(new Error('Delete all content is not denied for editor.'));
|
||||
}, function (error) {
|
||||
error.type.should.eql('NoPermissionError');
|
||||
return dbAPI.deleteAllContent({context: {user: 3}});
|
||||
}).then(function (){
|
||||
done(new Error("Delete all content is not denied for author."));
|
||||
done(new Error('Delete all content is not denied for author.'));
|
||||
}, function (error) {
|
||||
error.type.should.eql('NoPermissionError');
|
||||
return dbAPI.deleteAllContent();
|
||||
}).then(function (){
|
||||
done(new Error("Delete all content is not denied without authentication."));
|
||||
done(new Error('Delete all content is not denied without authentication.'));
|
||||
}).catch(function (error) {
|
||||
error.type.should.eql('NoPermissionError');
|
||||
done();
|
||||
|
@ -83,17 +76,17 @@ describe('DB API', function () {
|
|||
permissions.init().then(function () {
|
||||
return dbAPI.exportContent({context: {user: 2}});
|
||||
}).then(function (){
|
||||
done(new Error("Export content is not denied for editor."));
|
||||
done(new Error('Export content is not denied for editor.'));
|
||||
}, function (error) {
|
||||
error.type.should.eql('NoPermissionError');
|
||||
return dbAPI.exportContent({context: {user: 3}});
|
||||
}).then(function (){
|
||||
done(new Error("Export content is not denied for author."));
|
||||
done(new Error('Export content is not denied for author.'));
|
||||
}, function (error) {
|
||||
error.type.should.eql('NoPermissionError');
|
||||
return dbAPI.exportContent();
|
||||
}).then(function (){
|
||||
done(new Error("Export content is not denied without authentication."));
|
||||
done(new Error('Export content is not denied without authentication.'));
|
||||
}).catch(function (error) {
|
||||
error.type.should.eql('NoPermissionError');
|
||||
done();
|
||||
|
@ -103,18 +96,18 @@ describe('DB API', function () {
|
|||
it('import content is denied', function (done) {
|
||||
permissions.init().then(function () {
|
||||
return dbAPI.importContent({context: {user: 2}});
|
||||
}).then(function (result) {
|
||||
done(new Error("Import content is not denied for editor."));
|
||||
}).then(function () {
|
||||
done(new Error('Import content is not denied for editor.'));
|
||||
}, function (error) {
|
||||
error.type.should.eql('NoPermissionError');
|
||||
return dbAPI.importContent({context: {user: 3}});
|
||||
}).then(function (result) {
|
||||
done(new Error("Import content is not denied for author."));
|
||||
}).then(function () {
|
||||
done(new Error('Import content is not denied for author.'));
|
||||
}, function (error) {
|
||||
error.type.should.eql('NoPermissionError');
|
||||
return dbAPI.importContent();
|
||||
}).then(function (result) {
|
||||
done(new Error("Import content is not denied without authentication."));
|
||||
}).then(function () {
|
||||
done(new Error('Import content is not denied without authentication.'));
|
||||
}).catch(function (error) {
|
||||
error.type.should.eql('NoPermissionError');
|
||||
done();
|
||||
|
|
|
@ -1,25 +1,28 @@
|
|||
/*globals describe, before, beforeEach, afterEach, it */
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
|
||||
// Stuff we are testing
|
||||
permissions = require('../../../server/permissions'),
|
||||
MailAPI = require('../../../server/api/mail');
|
||||
|
||||
MailAPI = require('../../../server/api/mail'),
|
||||
mailData = {
|
||||
mail: [{
|
||||
message: {
|
||||
to: 'joe@example.com',
|
||||
subject: 'testemail',
|
||||
html: '<p>This</p>'
|
||||
},
|
||||
options: {}
|
||||
}]
|
||||
};
|
||||
|
||||
describe('Mail API', function () {
|
||||
var mailData = {
|
||||
mail: [{
|
||||
message: {
|
||||
to: 'joe@example.com',
|
||||
subject: 'testemail',
|
||||
html: '<p>This</p>'
|
||||
},
|
||||
options: {}
|
||||
}]
|
||||
};
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
before(function (done) {
|
||||
beforeEach(function (done) {
|
||||
testUtils.clearData()
|
||||
.then(function () {
|
||||
return testUtils.initData();
|
||||
|
@ -32,13 +35,7 @@ describe('Mail API', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
|
||||
should.exist(MailAPI);
|
||||
|
||||
it('return correct failure message', function (done) {
|
||||
MailAPI.send(mailData, {context: {internal: true}}).then(function (response) {
|
||||
|
|
|
@ -1,19 +1,17 @@
|
|||
/*globals describe, before, beforeEach, afterEach, it */
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
|
||||
// Stuff we are testing
|
||||
permissions = require('../../../server/permissions'),
|
||||
DataGenerator = require('../../utils/fixtures/data-generator'),
|
||||
permissions = require('../../../server/permissions'),
|
||||
NotificationsAPI = require('../../../server/api/notifications');
|
||||
|
||||
describe('Notifications API', function () {
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData()
|
||||
|
@ -26,11 +24,7 @@ describe('Notifications API', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(NotificationsAPI);
|
||||
|
||||
it('can add, adds defaults (internal)', function (done) {
|
||||
var msg = {
|
||||
|
@ -102,7 +96,7 @@ describe('Notifications API', function () {
|
|||
type: 'error', // this can be 'error', 'success', 'warn' and 'info'
|
||||
message: 'This is an error' // A string. Should fit in one line.
|
||||
};
|
||||
NotificationsAPI.add({ notifications: [msg] }, {context: {internal: true}}).then(function (notification) {
|
||||
NotificationsAPI.add({ notifications: [msg] }, {context: {internal: true}}).then(function () {
|
||||
NotificationsAPI.browse({context: {internal: true}}).then(function (results) {
|
||||
should.exist(results);
|
||||
should.exist(results.notifications);
|
||||
|
@ -118,7 +112,7 @@ describe('Notifications API', function () {
|
|||
type: 'error', // this can be 'error', 'success', 'warn' and 'info'
|
||||
message: 'This is an error' // A string. Should fit in one line.
|
||||
};
|
||||
NotificationsAPI.add({ notifications: [msg] }, {context: {internal: true}}).then(function (notification) {
|
||||
NotificationsAPI.add({ notifications: [msg] }, {context: {internal: true}}).then(function () {
|
||||
NotificationsAPI.browse({context: {user: 1}}).then(function (results) {
|
||||
should.exist(results);
|
||||
should.exist(results.notifications);
|
||||
|
|
|
@ -1,18 +1,16 @@
|
|||
/*globals describe, before, beforeEach, afterEach, it */
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
|
||||
// Stuff we are testing
|
||||
DataGenerator = require('../../utils/fixtures/data-generator'),
|
||||
PostAPI = require('../../../server/api/posts');
|
||||
|
||||
describe('Post API', function () {
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData()
|
||||
|
@ -24,11 +22,7 @@ describe('Post API', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(PostAPI);
|
||||
|
||||
it('can browse', function (done) {
|
||||
PostAPI.browse().then(function (results) {
|
||||
|
|
|
@ -1,46 +1,22 @@
|
|||
/*globals describe, before, beforeEach, afterEach, it */
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
_ = require('lodash'),
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
_ = require('lodash'),
|
||||
|
||||
// Stuff we are testing
|
||||
permissions = require('../../../server/permissions'),
|
||||
DataGenerator = require('../../utils/fixtures/data-generator'),
|
||||
SettingsAPI = require('../../../server/api/settings');
|
||||
permissions = require('../../../server/permissions'),
|
||||
SettingsAPI = require('../../../server/api/settings'),
|
||||
defaultContext = {user: 1},
|
||||
internalContext = {internal: true},
|
||||
callApiWithContext,
|
||||
getErrorDetails;
|
||||
|
||||
describe('Settings API', function () {
|
||||
|
||||
var defaultContext = {
|
||||
user: 1
|
||||
},
|
||||
internalContext = {
|
||||
internal: true
|
||||
},
|
||||
callApiWithContext = function (context, method) {
|
||||
var args = _.toArray(arguments),
|
||||
options = args[args.length - 1];
|
||||
|
||||
if (_.isObject(options)) {
|
||||
options.context = _.clone(context);
|
||||
}
|
||||
|
||||
return SettingsAPI[method].apply({}, args.slice(2));
|
||||
},
|
||||
getErrorDetails = function (done) {
|
||||
return function (err) {
|
||||
if (err instanceof Error) {
|
||||
return done(err);
|
||||
}
|
||||
|
||||
done(new Error(err.message));
|
||||
};
|
||||
};
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData()
|
||||
|
@ -58,11 +34,27 @@ describe('Settings API', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(getErrorDetails(done));
|
||||
});
|
||||
should.exist(SettingsAPI);
|
||||
|
||||
callApiWithContext = function (context, method) {
|
||||
var args = _.toArray(arguments),
|
||||
options = args[args.length - 1];
|
||||
|
||||
if (_.isObject(options)) {
|
||||
options.context = _.clone(context);
|
||||
}
|
||||
|
||||
return SettingsAPI[method].apply({}, args.slice(2));
|
||||
};
|
||||
getErrorDetails = function (done) {
|
||||
return function (err) {
|
||||
if (err instanceof Error) {
|
||||
return done(err);
|
||||
}
|
||||
|
||||
done(new Error(err.message));
|
||||
};
|
||||
};
|
||||
|
||||
it('uses Date objects for dateTime fields', function (done) {
|
||||
return callApiWithContext(defaultContext, 'browse', {}).then(function (results) {
|
||||
|
@ -129,7 +121,7 @@ describe('Settings API', function () {
|
|||
});
|
||||
|
||||
it('cannot read core settings if not an internal request', function (done) {
|
||||
return callApiWithContext(defaultContext, 'read', {key: 'databaseVersion'}).then(function (response) {
|
||||
return callApiWithContext(defaultContext, 'read', {key: 'databaseVersion'}).then(function () {
|
||||
done(new Error('Allowed to read databaseVersion with external request'));
|
||||
}).catch(function (error) {
|
||||
should.exist(error);
|
||||
|
@ -210,15 +202,16 @@ describe('Settings API', function () {
|
|||
});
|
||||
|
||||
it('does not allow an active theme which is not installed', function (done) {
|
||||
return callApiWithContext(defaultContext, 'edit', 'activeTheme', { settings: [{ key: 'activeTheme', value: 'rasper' }] })
|
||||
.then(function (response) {
|
||||
done(new Error('Allowed to set an active theme which is not installed'));
|
||||
}).catch(function (err) {
|
||||
should.exist(err);
|
||||
return callApiWithContext(defaultContext, 'edit', 'activeTheme', {
|
||||
settings: [{ key: 'activeTheme', value: 'rasper' }]
|
||||
}).then(function () {
|
||||
done(new Error('Allowed to set an active theme which is not installed'));
|
||||
}).catch(function (err) {
|
||||
should.exist(err);
|
||||
|
||||
err.type.should.eql('ValidationError');
|
||||
err.type.should.eql('ValidationError');
|
||||
|
||||
done();
|
||||
}).catch(done);
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,16 +1,15 @@
|
|||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
/*globals describe, before, beforeEach, afterEach, it */
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
|
||||
permissions = require('../../../server/permissions'),
|
||||
slugAPI = require('../../../server/api/slugs');
|
||||
SlugAPI = require('../../../server/api/slugs');
|
||||
|
||||
describe('Slug API', function () {
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData().then(function () {
|
||||
|
@ -22,14 +21,10 @@ describe('Slug API', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(SlugAPI);
|
||||
|
||||
it('can generate post slug', function (done) {
|
||||
slugAPI.generate({ context: { user: 1 }, type: 'post', name: 'A fancy Title' })
|
||||
SlugAPI.generate({ context: { user: 1 }, type: 'post', name: 'A fancy Title' })
|
||||
.then(function (results) {
|
||||
should.exist(results);
|
||||
testUtils.API.checkResponse(results, 'slugs');
|
||||
|
@ -41,7 +36,7 @@ describe('Slug API', function () {
|
|||
});
|
||||
|
||||
it('can generate tag slug', function (done) {
|
||||
slugAPI.generate({ context: { user: 1 }, type: 'tag', name: 'A fancy Title' })
|
||||
SlugAPI.generate({ context: { user: 1 }, type: 'tag', name: 'A fancy Title' })
|
||||
.then(function (results) {
|
||||
should.exist(results);
|
||||
testUtils.API.checkResponse(results, 'slugs');
|
||||
|
@ -53,7 +48,7 @@ describe('Slug API', function () {
|
|||
});
|
||||
|
||||
it('can generate user slug', function (done) {
|
||||
slugAPI.generate({ context: { user: 1 }, type: 'tag', name: 'user name' })
|
||||
SlugAPI.generate({ context: { user: 1 }, type: 'tag', name: 'user name' })
|
||||
.then(function (results) {
|
||||
should.exist(results);
|
||||
testUtils.API.checkResponse(results, 'slugs');
|
||||
|
@ -65,7 +60,7 @@ describe('Slug API', function () {
|
|||
});
|
||||
|
||||
it('can generate app slug', function (done) {
|
||||
slugAPI.generate({ context: { user: 1 }, type: 'tag', name: 'app name' })
|
||||
SlugAPI.generate({ context: { user: 1 }, type: 'tag', name: 'app name' })
|
||||
.then(function (results) {
|
||||
should.exist(results);
|
||||
testUtils.API.checkResponse(results, 'slugs');
|
||||
|
@ -77,7 +72,7 @@ describe('Slug API', function () {
|
|||
});
|
||||
|
||||
it('rejects unknown types', function (done) {
|
||||
slugAPI.generate({ context: { user: 1 }, type: 'unknown type', name: 'A fancy Title' })
|
||||
SlugAPI.generate({ context: { user: 1 }, type: 'unknown type', name: 'A fancy Title' })
|
||||
.then(function () {
|
||||
done(new Error('Generate a slug for an unknown type is not rejected.'));
|
||||
}).catch(function (error) {
|
||||
|
|
|
@ -1,19 +1,16 @@
|
|||
/*globals describe, before, beforeEach, afterEach, it */
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
|
||||
// Stuff we are testing
|
||||
permissions = require('../../../server/permissions'),
|
||||
DataGenerator = require('../../utils/fixtures/data-generator'),
|
||||
TagsAPI = require('../../../server/api/tags');
|
||||
permissions = require('../../../server/permissions'),
|
||||
TagAPI = require('../../../server/api/tags');
|
||||
|
||||
describe('Tags API', function () {
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData()
|
||||
|
@ -30,14 +27,10 @@ describe('Tags API', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(TagAPI);
|
||||
|
||||
it('can browse (internal)', function (done) {
|
||||
TagsAPI.browse({context: {internal: true}}).then(function (results) {
|
||||
TagAPI.browse({context: {internal: true}}).then(function (results) {
|
||||
should.exist(results);
|
||||
should.exist(results.tags);
|
||||
results.tags.length.should.be.above(0);
|
||||
|
@ -49,7 +42,7 @@ describe('Tags API', function () {
|
|||
});
|
||||
|
||||
it('can browse (admin)', function (done) {
|
||||
TagsAPI.browse({context: {user: 1}}).then(function (results) {
|
||||
TagAPI.browse({context: {user: 1}}).then(function (results) {
|
||||
should.exist(results);
|
||||
should.exist(results.tags);
|
||||
results.tags.length.should.be.above(0);
|
||||
|
@ -61,7 +54,7 @@ describe('Tags API', function () {
|
|||
});
|
||||
|
||||
it('can browse (editor)', function (done) {
|
||||
TagsAPI.browse({context: {user: 2}}).then(function (results) {
|
||||
TagAPI.browse({context: {user: 2}}).then(function (results) {
|
||||
should.exist(results);
|
||||
should.exist(results.tags);
|
||||
results.tags.length.should.be.above(0);
|
||||
|
@ -73,7 +66,7 @@ describe('Tags API', function () {
|
|||
});
|
||||
|
||||
it('can browse (author)', function (done) {
|
||||
TagsAPI.browse({context: {user: 3}}).then(function (results) {
|
||||
TagAPI.browse({context: {user: 3}}).then(function (results) {
|
||||
should.exist(results);
|
||||
should.exist(results.tags);
|
||||
results.tags.length.should.be.above(0);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
/*globals describe, before, beforeEach, afterEach, it */
|
||||
/*jshint expr:true*/
|
||||
var _ = require('lodash'),
|
||||
testUtils = require('../../utils'),
|
||||
rewire = require('rewire'),
|
||||
|
@ -8,7 +9,7 @@ var _ = require('lodash'),
|
|||
|
||||
// Stuff we are testing
|
||||
permissions = require('../../../server/permissions'),
|
||||
SettingsAPI = require('../../../server/api/settings'),
|
||||
SettingsAPI = require('../../../server/api/settings'),
|
||||
ThemeAPI = rewire('../../../server/api/themes');
|
||||
|
||||
describe('Themes API', function () {
|
||||
|
@ -16,8 +17,11 @@ describe('Themes API', function () {
|
|||
sandbox,
|
||||
settingsReadStub;
|
||||
|
||||
before(function (done) {
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
sandbox.restore();
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
|
@ -56,12 +60,7 @@ describe('Themes API', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
sandbox.restore();
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(ThemeAPI);
|
||||
|
||||
it('can browse', function (done) {
|
||||
var config;
|
||||
|
|
|
@ -1,121 +1,121 @@
|
|||
/*globals describe, beforeEach, afterEach, it*/
|
||||
/*jshint expr:true*/
|
||||
var fs = require('fs-extra'),
|
||||
should = require('should'),
|
||||
sinon = require('sinon'),
|
||||
when = require('when'),
|
||||
storage = require('../../../server/storage'),
|
||||
var fs = require('fs-extra'),
|
||||
should = require('should'),
|
||||
sinon = require('sinon'),
|
||||
when = require('when'),
|
||||
storage = require('../../../server/storage'),
|
||||
|
||||
// Stuff we are testing
|
||||
UploadAPI = require('../../../server/api/upload');
|
||||
UploadAPI = require('../../../server/api/upload'),
|
||||
store;
|
||||
|
||||
// To stop jshint complaining
|
||||
should.equal(true, true);
|
||||
|
||||
describe('Upload API', function () {
|
||||
describe('upload', function () {
|
||||
// Doesn't test the DB
|
||||
|
||||
var req, res, store;
|
||||
afterEach(function () {
|
||||
storage.get_storage.restore();
|
||||
fs.unlink.restore();
|
||||
});
|
||||
|
||||
beforeEach(function () {
|
||||
store = sinon.stub();
|
||||
store.save = sinon.stub().returns(when('URL'));
|
||||
store.exists = sinon.stub().returns(when(true));
|
||||
store.destroy = sinon.stub().returns(when());
|
||||
sinon.stub(storage, 'get_storage').returns(store);
|
||||
sinon.stub(fs, 'unlink').yields();
|
||||
});
|
||||
beforeEach(function () {
|
||||
store = sinon.stub();
|
||||
store.save = sinon.stub().returns(when('URL'));
|
||||
store.exists = sinon.stub().returns(when(true));
|
||||
store.destroy = sinon.stub().returns(when());
|
||||
sinon.stub(storage, 'get_storage').returns(store);
|
||||
sinon.stub(fs, 'unlink').yields();
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
storage.get_storage.restore();
|
||||
fs.unlink.restore();
|
||||
});
|
||||
should.exist(UploadAPI);
|
||||
|
||||
describe('can not upload invalid file', function () {
|
||||
it('should return 415 for invalid file type', function (done) {
|
||||
var uploadimage = {
|
||||
name: 'INVALID.FILE',
|
||||
type: 'application/octet-stream',
|
||||
path: '/tmp/TMPFILEID'
|
||||
};
|
||||
UploadAPI.add({uploadimage: uploadimage}).then(function () {
|
||||
done(new Error('Upload suceeded with invalid file.'));
|
||||
}, function (result) {
|
||||
result.code.should.equal(415);
|
||||
result.type.should.equal('UnsupportedMediaTypeError');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('can not upload file with valid extension but invalid type', function () {
|
||||
it('should return 415 for invalid file type', function (done) {
|
||||
var uploadimage = {
|
||||
name: 'INVALID.jpg',
|
||||
type: 'application/octet-stream',
|
||||
path: '/tmp/TMPFILEID'
|
||||
};
|
||||
UploadAPI.add({uploadimage: uploadimage}).then(function () {
|
||||
done(new Error('Upload suceeded with invalid file.'));
|
||||
}, function (result) {
|
||||
result.code.should.equal(415);
|
||||
result.type.should.equal('UnsupportedMediaTypeError');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('valid file', function () {
|
||||
it('can upload jpg', function (done) {
|
||||
var uploadimage = {
|
||||
name: 'INVALID.jpg',
|
||||
type: 'image/jpeg',
|
||||
path: '/tmp/TMPFILEID'
|
||||
};
|
||||
UploadAPI.add({uploadimage: uploadimage}).then(function (result) {
|
||||
result.should.equal('URL');
|
||||
describe('invalid file', function () {
|
||||
it('should return 415 for invalid file type', function (done) {
|
||||
var uploadimage = {
|
||||
name: 'INVALID.FILE',
|
||||
type: 'application/octet-stream',
|
||||
path: '/tmp/TMPFILEID'
|
||||
};
|
||||
UploadAPI.add({uploadimage: uploadimage}).then(function () {
|
||||
done(new Error('Upload suceeded with invalid file.'));
|
||||
}, function (result) {
|
||||
result.code.should.equal(415);
|
||||
result.type.should.equal('UnsupportedMediaTypeError');
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('cannot upload jpg with incorrect extension', function (done) {
|
||||
var uploadimage = {
|
||||
name: 'INVALID.xjpg',
|
||||
type: 'image/jpeg',
|
||||
path: '/tmp/TMPFILEID'
|
||||
};
|
||||
UploadAPI.add({uploadimage: uploadimage}).then(function (result) {
|
||||
done(new Error('Upload suceeded with invalid file.'));
|
||||
}, function (result) {
|
||||
result.code.should.equal(415);
|
||||
result.type.should.equal('UnsupportedMediaTypeError');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('can upload png', function (done) {
|
||||
var uploadimage = {
|
||||
name: 'INVALID.png',
|
||||
type: 'image/png',
|
||||
path: '/tmp/TMPFILEID'
|
||||
};
|
||||
UploadAPI.add({uploadimage: uploadimage}).then(function (result) {
|
||||
result.should.equal('URL');
|
||||
describe('valid extension but invalid type', function () {
|
||||
it('should return 415 for invalid file type', function (done) {
|
||||
var uploadimage = {
|
||||
name: 'INVALID.jpg',
|
||||
type: 'application/octet-stream',
|
||||
path: '/tmp/TMPFILEID'
|
||||
};
|
||||
UploadAPI.add({uploadimage: uploadimage}).then(function () {
|
||||
done(new Error('Upload suceeded with invalid file.'));
|
||||
}, function (result) {
|
||||
result.code.should.equal(415);
|
||||
result.type.should.equal('UnsupportedMediaTypeError');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('valid file', function () {
|
||||
it('can upload jpg', function (done) {
|
||||
var uploadimage = {
|
||||
name: 'INVALID.jpg',
|
||||
type: 'image/jpeg',
|
||||
path: '/tmp/TMPFILEID'
|
||||
};
|
||||
UploadAPI.add({uploadimage: uploadimage}).then(function (result) {
|
||||
result.should.equal('URL');
|
||||
done();
|
||||
});
|
||||
|
||||
it('can upload gif', function (done) {
|
||||
var uploadimage = {
|
||||
name: 'INVALID.gif',
|
||||
type: 'image/gif',
|
||||
path: '/tmp/TMPFILEID'
|
||||
};
|
||||
UploadAPI.add({uploadimage: uploadimage}).then(function (result) {
|
||||
result.should.equal('URL');
|
||||
});
|
||||
|
||||
it('cannot upload jpg with incorrect extension', function (done) {
|
||||
var uploadimage = {
|
||||
name: 'INVALID.xjpg',
|
||||
type: 'image/jpeg',
|
||||
path: '/tmp/TMPFILEID'
|
||||
};
|
||||
UploadAPI.add({uploadimage: uploadimage}).then(function () {
|
||||
done(new Error('Upload suceeded with invalid file.'));
|
||||
}, function (result) {
|
||||
result.code.should.equal(415);
|
||||
result.type.should.equal('UnsupportedMediaTypeError');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('can upload png', function (done) {
|
||||
var uploadimage = {
|
||||
name: 'INVALID.png',
|
||||
type: 'image/png',
|
||||
path: '/tmp/TMPFILEID'
|
||||
};
|
||||
UploadAPI.add({uploadimage: uploadimage}).then(function (result) {
|
||||
result.should.equal('URL');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('can upload gif', function (done) {
|
||||
var uploadimage = {
|
||||
name: 'INVALID.gif',
|
||||
type: 'image/gif',
|
||||
path: '/tmp/TMPFILEID'
|
||||
};
|
||||
UploadAPI.add({uploadimage: uploadimage}).then(function (result) {
|
||||
result.should.equal('URL');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,53 +1,19 @@
|
|||
/*globals describe, before, beforeEach, afterEach, it */
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
|
||||
permissions = require('../../../server/permissions'),
|
||||
UserModel = require('../../../server/models').User;
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
|
||||
// Stuff we are testing
|
||||
UsersAPI = require('../../../server/api/users');
|
||||
AuthAPI = require('../../../server/api/authentication');
|
||||
permissions = require('../../../server/permissions'),
|
||||
UserModel = require('../../../server/models').User,
|
||||
UsersAPI = require('../../../server/api/users');
|
||||
|
||||
describe('Users API', function () {
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
|
||||
describe('No User', function () {
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData().then(function () {
|
||||
return permissions.init();
|
||||
}).then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
|
||||
it('can add with internal user', function (done) {
|
||||
AuthAPI.setup({ setup: [{
|
||||
'name': 'Hello World',
|
||||
'email': 'hello@world.com',
|
||||
'password': 'password'
|
||||
}]}).then(function (results) {
|
||||
should.exist(results);
|
||||
testUtils.API.checkResponse(results, 'users');
|
||||
should.exist(results.users);
|
||||
results.users.should.have.length(1);
|
||||
testUtils.API.checkResponse(results.users[0], 'user', ['roles']);
|
||||
results.users[0].name.should.equal('Hello World');
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
});
|
||||
should.exist(UsersAPI);
|
||||
|
||||
describe('With Users', function () {
|
||||
beforeEach(function (done) {
|
||||
|
|
|
@ -1,20 +1,16 @@
|
|||
/*globals describe, before, beforeEach, afterEach, after, it*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
/*globals describe, before, beforeEach, afterEach, it*/
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
|
||||
// Stuff we are testing
|
||||
Models = require('../../../server/models'),
|
||||
context = {context: {user: 1}};
|
||||
AppFieldsModel = require('../../../server/models').AppField,
|
||||
context = {context: {user: 1}};
|
||||
|
||||
describe('App Fields Model', function () {
|
||||
|
||||
var AppFieldsModel = Models.AppField;
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData()
|
||||
|
@ -26,17 +22,7 @@ describe('App Fields Model', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
|
||||
after(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(AppFieldsModel);
|
||||
|
||||
it('can findAll', function (done) {
|
||||
AppFieldsModel.findAll().then(function (results) {
|
||||
|
|
|
@ -1,20 +1,16 @@
|
|||
/*globals describe, before, beforeEach, afterEach, after, it*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
/*globals describe, before, beforeEach, afterEach, it*/
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
|
||||
// Stuff we are testing
|
||||
Models = require('../../../server/models'),
|
||||
context = {context: {user: 1}};
|
||||
AppSettingModel = require('../../../server/models').AppSetting,
|
||||
context = {context: {user: 1}};
|
||||
|
||||
describe('App Setting Model', function () {
|
||||
|
||||
var AppSettingModel = Models.AppSetting;
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData()
|
||||
|
@ -26,17 +22,7 @@ describe('App Setting Model', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
|
||||
after(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(AppSettingModel);
|
||||
|
||||
it('can findAll', function (done) {
|
||||
AppSettingModel.findAll().then(function (results) {
|
||||
|
|
|
@ -1,22 +1,19 @@
|
|||
/*globals describe, before, beforeEach, afterEach, after, it*/
|
||||
var testUtils = require('../../utils'),
|
||||
sequence = require('when/sequence'),
|
||||
should = require('should'),
|
||||
_ = require('lodash'),
|
||||
/*globals describe, before, beforeEach, afterEach, it*/
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
sequence = require('when/sequence'),
|
||||
_ = require('lodash'),
|
||||
|
||||
// Stuff we are testing
|
||||
Models = require('../../../server/models'),
|
||||
context = {context: {user: 1}};
|
||||
Models = require('../../../server/models'),
|
||||
context = {context: {user: 1}},
|
||||
AppModel = Models.App;
|
||||
|
||||
describe('App Model', function () {
|
||||
|
||||
var AppModel = Models.App;
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData()
|
||||
|
@ -28,17 +25,7 @@ describe('App Model', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
|
||||
after(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(AppModel);
|
||||
|
||||
it('can findAll', function (done) {
|
||||
AppModel.findAll().then(function (results) {
|
||||
|
|
|
@ -1,22 +1,16 @@
|
|||
/*globals describe, it, before, beforeEach, afterEach */
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
|
||||
// Stuff we are testing
|
||||
Models = require('../../../server/models'),
|
||||
context = {context: {user: 1}};
|
||||
PermissionModel = require('../../../server/models').Permission,
|
||||
context = {context: {user: 1}};
|
||||
|
||||
describe('Permission Model', function () {
|
||||
|
||||
var PermissionModel = Models.Permission;
|
||||
|
||||
should.exist(PermissionModel);
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData().then(function () {
|
||||
|
@ -24,11 +18,7 @@ describe('Permission Model', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(PermissionModel);
|
||||
|
||||
it('can findAll', function (done) {
|
||||
PermissionModel.findAll().then(function (foundPermissions) {
|
||||
|
|
|
@ -1,23 +1,19 @@
|
|||
/*globals describe, before, beforeEach, afterEach, it */
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
_ = require('lodash'),
|
||||
sequence = require('when/sequence'),
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
sequence = require('when/sequence'),
|
||||
_ = require('lodash'),
|
||||
|
||||
// Stuff we are testing
|
||||
Models = require('../../../server/models'),
|
||||
DataGenerator = testUtils.DataGenerator,
|
||||
context = {context: {user: 1}};
|
||||
PostModel = require('../../../server/models').Post,
|
||||
DataGenerator = testUtils.DataGenerator,
|
||||
context = {context: {user: 1}};
|
||||
|
||||
describe('Post Model', function () {
|
||||
|
||||
var PostModel = Models.Post;
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData()
|
||||
|
@ -29,11 +25,7 @@ describe('Post Model', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(PostModel);
|
||||
|
||||
function checkFirstPostData(firstPost) {
|
||||
should.not.exist(firstPost.author_id);
|
||||
|
|
|
@ -1,22 +1,16 @@
|
|||
/*globals describe, it, before, beforeEach, afterEach */
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
|
||||
// Stuff we are testing
|
||||
Models = require('../../../server/models'),
|
||||
context = {context: {user: 1}};
|
||||
RoleModel = require('../../../server/models').Role,
|
||||
context = {context: {user: 1}};
|
||||
|
||||
describe('Role Model', function () {
|
||||
|
||||
var RoleModel = Models.Role;
|
||||
|
||||
should.exist(RoleModel);
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData().then(function () {
|
||||
|
@ -24,11 +18,7 @@ describe('Role Model', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(RoleModel);
|
||||
|
||||
it('can findAll', function (done) {
|
||||
RoleModel.findAll().then(function (foundRoles) {
|
||||
|
|
|
@ -1,21 +1,17 @@
|
|||
/*globals describe, before, beforeEach, afterEach, after, it*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
/*globals describe, before, beforeEach, afterEach, it*/
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
|
||||
// Stuff we are testing
|
||||
Models = require('../../../server/models'),
|
||||
config = require('../../../server/config'),
|
||||
context = {context: {user: 1}};
|
||||
SettingsModel = require('../../../server/models').Settings,
|
||||
config = require('../../../server/config'),
|
||||
context = {context: {user: 1}};
|
||||
|
||||
describe('Settings Model', function () {
|
||||
|
||||
var SettingsModel = Models.Settings;
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData().then(function () {
|
||||
|
@ -23,17 +19,7 @@ describe('Settings Model', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
|
||||
after(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(SettingsModel);
|
||||
|
||||
describe('API', function () {
|
||||
|
||||
|
|
|
@ -1,23 +1,20 @@
|
|||
/*globals describe, before, beforeEach, afterEach, it */
|
||||
var testUtils = require('../../utils'),
|
||||
_ = require("lodash"),
|
||||
when = require('when'),
|
||||
sequence = require('when/sequence'),
|
||||
should = require('should'),
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
when = require('when'),
|
||||
_ = require('lodash'),
|
||||
|
||||
// Stuff we are testing
|
||||
Models = require('../../../server/models'),
|
||||
context = {context: {user: 1}};
|
||||
Models = require('../../../server/models'),
|
||||
TagModel = Models.Tag,
|
||||
PostModel = Models.Post,
|
||||
context = {context: {user: 1}};
|
||||
|
||||
describe('Tag Model', function () {
|
||||
|
||||
var TagModel = Models.Tag;
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
beforeEach(function (done) {
|
||||
testUtils.initData()
|
||||
|
@ -26,11 +23,7 @@ describe('Tag Model', function () {
|
|||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(TagModel);
|
||||
|
||||
it('uses Date objects for dateTime fields', function (done) {
|
||||
TagModel.add(testUtils.DataGenerator.forModel.tags[0], context).then(function (tag) {
|
||||
|
@ -44,7 +37,6 @@ describe('Tag Model', function () {
|
|||
});
|
||||
|
||||
describe('a Post', function () {
|
||||
var PostModel = Models.Post;
|
||||
|
||||
it('can add a tag', function (done) {
|
||||
var newPost = testUtils.DataGenerator.forModel.posts[0],
|
||||
|
@ -118,7 +110,7 @@ describe('Tag Model', function () {
|
|||
attachOperations;
|
||||
|
||||
attachOperations = [];
|
||||
for (var i = 1; i < models.length; i++) {
|
||||
for (var i = 1; i < models.length; i += 1) {
|
||||
attachOperations.push(postModel.tags().attach(models[i]));
|
||||
}
|
||||
|
||||
|
|
|
@ -1,29 +1,22 @@
|
|||
/*globals describe, before, beforeEach, afterEach, it*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
when = require('when'),
|
||||
sinon = require('sinon'),
|
||||
uuid = require('node-uuid'),
|
||||
/*jshint expr:true*/
|
||||
var testUtils = require('../../utils'),
|
||||
should = require('should'),
|
||||
when = require('when'),
|
||||
sinon = require('sinon'),
|
||||
uuid = require('node-uuid'),
|
||||
|
||||
// Stuff we are testing
|
||||
Models = require('../../../server/models'),
|
||||
context = {context: {user: 1}};
|
||||
UserModel = require('../../../server/models').User,
|
||||
context = {context: {user: 1}};
|
||||
|
||||
|
||||
describe('User Model', function run() {
|
||||
var UserModel = Models.User;
|
||||
// Keep the DB clean
|
||||
before(testUtils.teardown);
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
before(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
should.exist(UserModel);
|
||||
|
||||
describe('Registration', function runRegistration() {
|
||||
beforeEach(function (done) {
|
||||
|
@ -41,8 +34,8 @@ describe('User Model', function run() {
|
|||
UserModel.add(userData, context).then(function (createdUser) {
|
||||
should.exist(createdUser);
|
||||
createdUser.has('uuid').should.equal(true);
|
||||
createdUser.attributes.password.should.not.equal(userData.password, "password was hashed");
|
||||
createdUser.attributes.email.should.eql(userData.email, "email address correct");
|
||||
createdUser.attributes.password.should.not.equal(userData.password, 'password was hashed');
|
||||
createdUser.attributes.email.should.eql(userData.email, 'email address correct');
|
||||
gravatarStub.restore();
|
||||
done();
|
||||
}).catch(done);
|
||||
|
@ -57,7 +50,7 @@ describe('User Model', function run() {
|
|||
UserModel.add(userData, context).then(function (createdUser) {
|
||||
should.exist(createdUser);
|
||||
createdUser.has('uuid').should.equal(true);
|
||||
createdUser.attributes.email.should.eql(userData.email, "email address correct");
|
||||
createdUser.attributes.email.should.eql(userData.email, 'email address correct');
|
||||
gravatarStub.restore();
|
||||
done();
|
||||
}).catch(done);
|
||||
|
@ -73,7 +66,9 @@ describe('User Model', function run() {
|
|||
UserModel.add(userData, context).then(function (createdUser) {
|
||||
should.exist(createdUser);
|
||||
createdUser.has('uuid').should.equal(true);
|
||||
createdUser.attributes.image.should.eql('http://www.gravatar.com/avatar/2fab21a4c4ed88e76add10650c73bae1?d=404', 'Gravatar found');
|
||||
createdUser.attributes.image.should.eql(
|
||||
'http://www.gravatar.com/avatar/2fab21a4c4ed88e76add10650c73bae1?d=404', 'Gravatar found'
|
||||
);
|
||||
gravatarStub.restore();
|
||||
done();
|
||||
}).catch(done);
|
||||
|
@ -346,12 +341,12 @@ describe('User Model', function run() {
|
|||
}).then(function (token) {
|
||||
return UserModel.validateToken(token, dbHash);
|
||||
}).then(function () {
|
||||
throw new Error("Allowed expired token");
|
||||
throw new Error('Allowed expired token');
|
||||
}).catch(function (err) {
|
||||
|
||||
should.exist(err);
|
||||
|
||||
err.message.should.equal("Expired token");
|
||||
err.message.should.equal('Expired token');
|
||||
|
||||
done();
|
||||
});
|
||||
|
@ -381,12 +376,12 @@ describe('User Model', function run() {
|
|||
return UserModel.validateToken(fakeToken, dbHash);
|
||||
|
||||
}).then(function () {
|
||||
throw new Error("allowed invalid token");
|
||||
throw new Error('allowed invalid token');
|
||||
}).catch(function (err) {
|
||||
|
||||
should.exist(err);
|
||||
|
||||
err.message.should.equal("Invalid token");
|
||||
err.message.should.equal('Invalid token');
|
||||
|
||||
done();
|
||||
});
|
||||
|
|
|
@ -18,7 +18,10 @@ describe('Update Check', function () {
|
|||
return testUtils.clearData();
|
||||
}).then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
}).catch(function (err) {
|
||||
console.log('Update Check before error', err);
|
||||
throw new Error(err);
|
||||
});
|
||||
});
|
||||
|
||||
after(function () {
|
||||
|
@ -36,14 +39,13 @@ describe('Update Check', function () {
|
|||
return permissions.init();
|
||||
}).then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
}).catch(function (err) {
|
||||
console.log('Update Check beforeEach error', err);
|
||||
throw new Error(err);
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
testUtils.clearData().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
});
|
||||
afterEach(testUtils.teardown);
|
||||
|
||||
it('should report the correct data', function (done) {
|
||||
var updateCheckData = updateCheck.__get__('updateCheckData');
|
||||
|
|
|
@ -8,7 +8,9 @@ var knex = require('../../server/models/base').knex,
|
|||
migration = require('../../server/data/migration/'),
|
||||
DataGenerator = require('./fixtures/data-generator'),
|
||||
API = require('./api'),
|
||||
fork = require('./fork');
|
||||
fork = require('./fork'),
|
||||
|
||||
teardown;
|
||||
|
||||
function initData() {
|
||||
return migration.init();
|
||||
|
@ -49,7 +51,7 @@ function insertMorePosts(max) {
|
|||
return sequence(_.times(posts.length, function(index) {
|
||||
return function() {
|
||||
return knex('posts').insert(posts[index]);
|
||||
}
|
||||
};
|
||||
}));
|
||||
}
|
||||
|
||||
|
@ -218,7 +220,15 @@ function loadExportFixture(filename) {
|
|||
});
|
||||
}
|
||||
|
||||
teardown = function (done) {
|
||||
migration.reset().then(function () {
|
||||
done();
|
||||
}).catch(done);
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
teardown: teardown,
|
||||
|
||||
initData: initData,
|
||||
clearData: clearData,
|
||||
insertDefaultFixtures: insertDefaultFixtures,
|
||||
|
|
Loading…
Add table
Reference in a new issue