mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-03 23:00:14 -05:00
Added missing test cases for post.author
no issue - Ghost does not support adding an author by relation (`post.author = {id: '..'}`) - Ghost does not support editing an author by relation (`post.author = {id: '..'}`) - only `author_id` is allowed
This commit is contained in:
parent
0aff9f33d9
commit
b204d5874e
1 changed files with 36 additions and 0 deletions
|
@ -9,6 +9,8 @@ var should = require('should'),
|
||||||
ghostBookshelf = require('../../../server/models/base'),
|
ghostBookshelf = require('../../../server/models/base'),
|
||||||
PostModel = require('../../../server/models/post').Post,
|
PostModel = require('../../../server/models/post').Post,
|
||||||
TagModel = require('../../../server/models/tag').Tag,
|
TagModel = require('../../../server/models/tag').Tag,
|
||||||
|
UserModel = require('../../../server/models/user').User,
|
||||||
|
RoleModel = require('../../../server/models/role').Role,
|
||||||
common = require('../../../server/lib/common'),
|
common = require('../../../server/lib/common'),
|
||||||
configUtils = require('../../utils/configUtils'),
|
configUtils = require('../../utils/configUtils'),
|
||||||
DataGenerator = testUtils.DataGenerator,
|
DataGenerator = testUtils.DataGenerator,
|
||||||
|
@ -51,6 +53,7 @@ describe('Post Model', function () {
|
||||||
firstPost.url.should.equal('/html-ipsum/');
|
firstPost.url.should.equal('/html-ipsum/');
|
||||||
firstPost.fields.should.be.an.Array();
|
firstPost.fields.should.be.an.Array();
|
||||||
firstPost.tags.should.be.an.Array();
|
firstPost.tags.should.be.an.Array();
|
||||||
|
|
||||||
firstPost.author.name.should.equal(DataGenerator.Content.users[0].name);
|
firstPost.author.name.should.equal(DataGenerator.Content.users[0].name);
|
||||||
firstPost.fields[0].key.should.equal(DataGenerator.Content.app_fields[0].key);
|
firstPost.fields[0].key.should.equal(DataGenerator.Content.app_fields[0].key);
|
||||||
firstPost.created_at.should.be.an.instanceof(Date);
|
firstPost.created_at.should.be.an.instanceof(Date);
|
||||||
|
@ -1027,6 +1030,21 @@ describe('Post Model', function () {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('[unsupported] can\'t add `author` as object', function () {
|
||||||
|
var newPost = testUtils.DataGenerator.forModel.posts[2];
|
||||||
|
|
||||||
|
// `post.author` relation get's ignored in Ghost - unsupported
|
||||||
|
newPost.author = {id: testUtils.DataGenerator.Content.users[3].id};
|
||||||
|
delete newPost.author_id;
|
||||||
|
|
||||||
|
return PostModel.add(newPost, context)
|
||||||
|
.then(function (createdPost) {
|
||||||
|
// fallsback to logged in user
|
||||||
|
createdPost.get('author_id').should.eql(context.context.user);
|
||||||
|
createdPost.get('author_id').should.not.eql(testUtils.DataGenerator.Content.users[3].id);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('can add, defaults are all correct', function (done) {
|
it('can add, defaults are all correct', function (done) {
|
||||||
var createdPostUpdatedDate,
|
var createdPostUpdatedDate,
|
||||||
newPost = testUtils.DataGenerator.forModel.posts[2],
|
newPost = testUtils.DataGenerator.forModel.posts[2],
|
||||||
|
@ -1720,6 +1738,8 @@ describe('Post Model', function () {
|
||||||
|
|
||||||
return Promise.props({
|
return Promise.props({
|
||||||
post: PostModel.add(post, _.extend({}, context, {withRelated: ['tags']})),
|
post: PostModel.add(post, _.extend({}, context, {withRelated: ['tags']})),
|
||||||
|
role: RoleModel.add(testUtils.DataGenerator.forKnex.roles[2], context),
|
||||||
|
user: UserModel.add(testUtils.DataGenerator.forKnex.users[0], context),
|
||||||
tag1: TagModel.add(extraTags[0], context),
|
tag1: TagModel.add(extraTags[0], context),
|
||||||
tag2: TagModel.add(extraTags[1], context),
|
tag2: TagModel.add(extraTags[1], context),
|
||||||
tag3: TagModel.add(extraTags[2], context)
|
tag3: TagModel.add(extraTags[2], context)
|
||||||
|
@ -1774,6 +1794,22 @@ describe('Post Model', function () {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('[unsupported] can\'t edit `author` as object', function () {
|
||||||
|
var newJSON = _.cloneDeep(postJSON),
|
||||||
|
modelOptions = _.clone(editOptions);
|
||||||
|
|
||||||
|
newJSON.author.should.eql(testUtils.DataGenerator.Content.users[0].id);
|
||||||
|
newJSON.author = {id: testUtils.DataGenerator.Content.users[3].id};
|
||||||
|
delete newJSON.author_id;
|
||||||
|
|
||||||
|
modelOptions.withRelated.push('author');
|
||||||
|
return PostModel.edit(newJSON, modelOptions)
|
||||||
|
.then(function (updatedPost) {
|
||||||
|
updatedPost.get('author_id').should.eql(testUtils.DataGenerator.Content.users[0].id);
|
||||||
|
updatedPost.related('author').toJSON().slug.should.eql(testUtils.DataGenerator.Content.users[0].slug);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('can\'t edit dates and authors of existing tag', function () {
|
it('can\'t edit dates and authors of existing tag', function () {
|
||||||
var newJSON = _.cloneDeep(postJSON), updatedAtFormat;
|
var newJSON = _.cloneDeep(postJSON), updatedAtFormat;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue