mirror of
https://github.com/wassname/talk.git
synced 2026-07-29 11:28:24 +08:00
Fix tests related to tags on comments.
This commit is contained in:
@@ -4,7 +4,7 @@ const {graphql} = require('graphql');
|
||||
const schema = require('../../../../graph/schema');
|
||||
const Context = require('../../../../graph/context');
|
||||
const UserModel = require('../../../../models/user');
|
||||
const TagModel = require('../../../../models/tag');
|
||||
const TagService = require('../../../../services/tags');
|
||||
const SettingsService = require('../../../../services/settings');
|
||||
const CommentsService = require('../../../../services/comments');
|
||||
|
||||
@@ -19,9 +19,7 @@ describe('graph.mutations.addCommentTag', () => {
|
||||
mutation AddCommentTag ($id: ID!, $tag: String!) {
|
||||
addCommentTag(id:$id, tag:$tag) {
|
||||
comment {
|
||||
tags {
|
||||
name
|
||||
}
|
||||
id
|
||||
}
|
||||
errors {
|
||||
translation_key
|
||||
@@ -38,10 +36,9 @@ describe('graph.mutations.addCommentTag', () => {
|
||||
console.error(response.errors);
|
||||
}
|
||||
expect(response.errors).to.be.empty;
|
||||
TagModel.find({
|
||||
item_id: response.data.addCommentTag.comment.id,
|
||||
name: 'BEST'
|
||||
}).then((tags) => {
|
||||
|
||||
return TagService.findByItemIdAndName(response.data.addCommentTag.comment.id, 'BEST', 'COMMENTS')
|
||||
.then((tags) => {
|
||||
expect(tags).to.have.length(1);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,11 +3,14 @@ const {graphql} = require('graphql');
|
||||
|
||||
const schema = require('../../../../graph/schema');
|
||||
const Context = require('../../../../graph/context');
|
||||
|
||||
const UserModel = require('../../../../models/user');
|
||||
const AssetModel = require('../../../../models/asset');
|
||||
const SettingsService = require('../../../../services/settings');
|
||||
const ActionModel = require('../../../../models/action');
|
||||
|
||||
const SettingsService = require('../../../../services/settings');
|
||||
const TagService = require('../../../../services/tags');
|
||||
|
||||
describe('graph.mutations.createComment', () => {
|
||||
beforeEach(() => SettingsService.init());
|
||||
|
||||
@@ -217,11 +220,14 @@ describe('graph.mutations.createComment', () => {
|
||||
expect(data.createComment).to.have.property('comment').not.null;
|
||||
expect(data.createComment).to.have.property('errors').null;
|
||||
|
||||
return TagService.findByItemIdAndName(data.createComment.comment.id, tag, 'COMMENTS');
|
||||
})
|
||||
.then((tags) => {
|
||||
if (tag) {
|
||||
expect(data.createComment.comment).to.have.property('tags').length(1);
|
||||
expect(data.createComment.comment.tags[0]).to.have.property('name', tag);
|
||||
expect(tags).to.have.length(1);
|
||||
expect(tags[0]).to.have.property('name', tag);
|
||||
} else {
|
||||
expect(data.createComment.comment).to.have.property('tags').length(0);
|
||||
expect(tags).length(0);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -4,8 +4,10 @@ const {graphql} = require('graphql');
|
||||
const schema = require('../../../../graph/schema');
|
||||
const Context = require('../../../../graph/context');
|
||||
const UserModel = require('../../../../models/user');
|
||||
|
||||
const SettingsService = require('../../../../services/settings');
|
||||
const CommentsService = require('../../../../services/comments');
|
||||
const TagService = require('../../../../services/tags');
|
||||
|
||||
describe('graph.mutations.removeCommentTag', () => {
|
||||
let comment;
|
||||
@@ -18,9 +20,7 @@ describe('graph.mutations.removeCommentTag', () => {
|
||||
mutation RemoveCommentTag ($id: ID!, $tag: String!) {
|
||||
removeCommentTag(id:$id, tag:$tag) {
|
||||
comment {
|
||||
tags {
|
||||
name
|
||||
}
|
||||
id
|
||||
}
|
||||
errors {
|
||||
translation_key
|
||||
@@ -41,7 +41,12 @@ describe('graph.mutations.removeCommentTag', () => {
|
||||
}
|
||||
expect(response.errors).to.be.empty;
|
||||
expect(response.data.removeCommentTag.errors).to.be.null;
|
||||
expect(response.data.removeCommentTag.comment.tags).to.deep.equal([]);
|
||||
|
||||
TagService.findByItemIdAndName(response.data.removeCommentTag.comment.id, 'BEST')
|
||||
.then((tags) => {
|
||||
expect(tags).to.deep.equal([]);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('users who cant remove tags', () => {
|
||||
@@ -60,8 +65,9 @@ describe('graph.mutations.removeCommentTag', () => {
|
||||
console.error(response.errors);
|
||||
}
|
||||
expect(response.errors).to.be.empty;
|
||||
|
||||
expect(response.data.removeCommentTag.errors).to.deep.equal([{'translation_key':'NOT_AUTHORIZED'}]);
|
||||
expect(response.data.removeCommentTag.comment).to.be.null;
|
||||
expect(response.data.removeCommentTag.comment).to.be.null;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -5,6 +5,7 @@ const ActionsService = require('../../../services/actions');
|
||||
const UsersService = require('../../../services/users');
|
||||
const SettingsService = require('../../../services/settings');
|
||||
const CommentsService = require('../../../services/comments');
|
||||
const TagService = require('../../../services/tags');
|
||||
|
||||
const settings = {id: '1', moderation: 'PRE', wordlist: {banned: ['bad words'], suspect: ['suspect words']}};
|
||||
|
||||
@@ -225,16 +226,17 @@ describe('services.CommentsService', () => {
|
||||
const tagName = 'BEST';
|
||||
const userId = users[0].id;
|
||||
await CommentsService.addTag(commentId, tagName, userId);
|
||||
const updatedComment = await CommentsService.findById(commentId);
|
||||
expect(updatedComment.tags.length).to.equal(1);
|
||||
expect(updatedComment.tags[0].name).to.equal(tagName);
|
||||
expect(updatedComment.tags[0].assigned_by).to.equal(userId);
|
||||
expect(updatedComment.tags[0].created_at).to.be.an.instanceof(Date);
|
||||
const tags = await TagService.findByItemIdAndName(commentId, 'BEST', 'COMMENTS');
|
||||
expect(tags.length).to.equal(1);
|
||||
expect(tags[0].name).to.equal(tagName);
|
||||
expect(tags[0].assigned_by).to.equal(userId);
|
||||
expect(tags[0].created_at).to.be.an.instanceof(Date);
|
||||
});
|
||||
it('can\'t add a tag to comment id that doesn\'t exist', async () => {
|
||||
const commentId = 'fakenews';
|
||||
const tagName = 'BEST';
|
||||
const userId = users[0].id;
|
||||
|
||||
await expect(CommentsService.addTag(commentId, tagName, userId)).to.be.rejected;
|
||||
});
|
||||
it('can\'t add same tag.name twice', async () => {
|
||||
@@ -255,23 +257,23 @@ describe('services.CommentsService', () => {
|
||||
const commentId = comments[0].id;
|
||||
const tagName = 'BEST';
|
||||
await CommentsService.addTag(commentId, tagName, users[0].id);
|
||||
const updatedComment = await CommentsService.findById(commentId);
|
||||
expect(updatedComment.tags.length).to.equal(1);
|
||||
const tags = await TagService.findByItemIdAndName(commentId, tagName, 'COMMENTS');
|
||||
expect(tags.length).to.equal(1);
|
||||
|
||||
// ok now to remove it
|
||||
await CommentsService.removeTag(commentId, tagName);
|
||||
const updatedComment2 = await CommentsService.findById(commentId);
|
||||
expect(updatedComment2.tags.length).to.equal(0);
|
||||
const tags2 = await TagService.findByItemIdAndName(commentId, tagName, 'COMMENTS');
|
||||
expect(tags2.length).to.equal(0);
|
||||
});
|
||||
it('throws if removing a tag that isn\'t there', async () => {
|
||||
const commentId = comments[0].id;
|
||||
|
||||
// just make sure it has no tags to start
|
||||
const updatedComment2 = await CommentsService.findById(commentId);
|
||||
expect(updatedComment2.tags.length).to.equal(0);
|
||||
|
||||
const tagName = 'BEST';
|
||||
|
||||
// just make sure it has no tags to start
|
||||
const tags = await TagService.findByItemIdAndName(commentId, tagName, 'COMMENTS');
|
||||
expect(tags.length).to.equal(0);
|
||||
|
||||
// ok now to remove it
|
||||
await expect(CommentsService.removeTag(commentId, tagName)).to.be.rejected;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user