diff --git a/lib/actions/addLinkToProjectAction.js b/lib/actions/addLinkToProjectAction.js index eb39cc7..10399f0 100644 --- a/lib/actions/addLinkToProjectAction.js +++ b/lib/actions/addLinkToProjectAction.js @@ -11,15 +11,20 @@ class AddLinkToProjectAction { parseParams(userInputString = '') { assert(typeof userInputString === 'string'); const parsedUserInput = userInputString.split(' '); - + let linkParams; if (parsedUserInput.length < 2) { throw new TypeError('invalid input'); } - const linkParams = { - label: parsedUserInput[1], - link: parsedUserInput[2], - }; + if (parsedUserInput.length >= 4) { + linkParams = { + label: parsedUserInput.slice(1, 3).join(' '), + link: parsedUserInput.pop(), + }; + } else { + linkParams = { label: parsedUserInput[1], link: parsedUserInput[2] }; + } + return linkParams; } @@ -29,8 +34,7 @@ class AddLinkToProjectAction { const projectLink = new this.projectLink(context.project, paramsObj.label, paramsObj.link); await projectLink.save(context.driver); // eslint-disable-next-line new-cap - const response = new AddLinkToProjectResponse(paramsObj.label, paramsObj.link); - return response; + return new AddLinkToProjectResponse(paramsObj.label, paramsObj.link); } } diff --git a/test/addLinkToProjectAction.test.js b/test/addLinkToProjectAction.test.js index 0f19271..7ebf61b 100644 --- a/test/addLinkToProjectAction.test.js +++ b/test/addLinkToProjectAction.test.js @@ -69,6 +69,7 @@ describe('Add Link to Project Action', () => { await knex.select('*') .from('project_links') .where({ project_id: 'a123' }) + .andWhere({ url: 'toProjectExecute.com' }) .then(rows => expect(rows[0].label).to.equal('addlink')) .then(knex.select('label') .from('project_links')