From 7e680038d6208620dc6c100134a1d783ebfd172f Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Thu, 13 Sep 2018 11:21:40 -0600 Subject: [PATCH] fix: added tests --- services/tags.js | 4 +++- test/server/services/tags.js | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/services/tags.js b/services/tags.js index 1689cf7a9..4153842c3 100644 --- a/services/tags.js +++ b/services/tags.js @@ -59,7 +59,9 @@ class TagsService { asset = await Assets.findById(id); } - // FIXME: comments ... + // Lodash has issues with determining property existence when the object + // is a Mongoose model, this is likely related to how Mongoose proxies the + // object, but this concrete check works. if ( asset && asset.settings && diff --git a/test/server/services/tags.js b/test/server/services/tags.js index c13cf69c9..519c68b82 100644 --- a/test/server/services/tags.js +++ b/test/server/services/tags.js @@ -2,6 +2,7 @@ const TagsService = require('../../../services/tags'); const UsersService = require('../../../services/users'); const SettingsService = require('../../../services/settings'); const CommentModel = require('../../../models/comment'); +const AssetModel = require('../../../models/asset'); const Context = require('../../../graph/context'); const chai = require('chai'); @@ -18,6 +19,24 @@ describe('services.TagsService', () => { '1Coral!!', 'Stampi' ); + // We don't care about the asset value, just that it exists. + await AssetModel.create({ + id: '123', + settings: { + tags: [ + { + name: 'TEST', + permissions: { + public: true, + self: true, + roles: [], + }, + models: ['COMMENTS'], + created_at: new Date(), + }, + ], + }, + }); comment = await CommentModel.create({ id: '1', body: 'comment 10', @@ -28,6 +47,18 @@ describe('services.TagsService', () => { }); }); + describe('#getAll', () => { + it('retrieves tags from the asset', async () => { + const tags = await TagsService.getAll({ + item_type: 'COMMENTS', + asset_id: comment.asset_id, + }); + + expect(tags.length).to.equal(1); + expect(tags[0].name).to.equal('TEST'); + }); + }); + describe('#add', () => { it('adds a tag', async () => { const id = comment.id;