UNPKG

jira-term

Version:
192 lines (144 loc) 7.13 kB
fs = require 'fs' path = require 'path' colors = require 'colors' jira = require '../src/jira-cli.coffee' # These seem to be a bit silly, gets me more familiar with spies though, so I # guess that's a good thing. describe "JiraCli", -> beforeEach -> config = host: 'localhost' port: 80 user: 'test' password: 'test' @jiraCli = new jira.JiraHelper config @cb = jasmine.createSpy 'callback' spyOn @jiraCli.pp, 'prettyPrintIssue' spyOn @jiraCli.pp, 'prettyPrintLog' spyOn @jiraCli.pp, 'prettyPrintSuccess' spyOn @jiraCli.pp, 'prettyPrintError' spyOn @jiraCli.pp, 'prettyPrintList' spyOn @jiraCli, 'dieWithFire' it "Gets the requested issue", -> spyOn @jiraCli.jira, 'findIssue' @jiraCli.getIssue 1, false expect(@jiraCli.jira.findIssue) .toHaveBeenCalledWith 1, jasmine.any Function @jiraCli.jira.findIssue.mostRecentCall.args[1] null, "response" expect(@jiraCli.pp.prettyPrintIssue) .toHaveBeenCalledWith "response", false @jiraCli.jira.findIssue.mostRecentCall.args[1] "error" expect(@jiraCli.pp.prettyPrintError) .toHaveBeenCalledWith "Error finding issue: error" it "Gets the issue types", -> spyOn @jiraCli.jira, 'listIssueTypes' @jiraCli.getIssueTypes @cb @jiraCli.jira.listIssueTypes.mostRecentCall.args[0] null, "response" expect(@cb).toHaveBeenCalledWith "response" @jiraCli.jira.listIssueTypes.mostRecentCall.args[0] "error" expect(@jiraCli.pp.prettyPrintError) .toHaveBeenCalledWith "Error listing issueTypes: error" expect(@jiraCli.dieWithFire).toHaveBeenCalled() it "Adds a new issue", -> issue = @jiraCli.createIssueObject 'project', 'summary', 'issueType', 'description' spyOn @jiraCli.jira, 'addNewIssue' @jiraCli.addIssue 'summary', 'description', 'issueType', 'project' expect(@jiraCli.jira.addNewIssue) .toHaveBeenCalledWith issue, jasmine.any Function @jiraCli.jira.addNewIssue.mostRecentCall.args[1] null, key: 'response' expect(@jiraCli.pp.prettyPrintSuccess) .toHaveBeenCalledWith "Issue response has been created" @jiraCli.jira.addNewIssue.mostRecentCall.args[1] "error" expect(@jiraCli.pp.prettyPrintError) .toHaveBeenCalledWith "Error creating issue: \"error\"" it "Deletes an Issue", -> spyOn @jiraCli.jira, 'deleteIssue' @jiraCli.deleteIssue 1 expect(@jiraCli.jira.deleteIssue) .toHaveBeenCalledWith 1, jasmine.any Function @jiraCli.jira.deleteIssue.mostRecentCall.args[1] "error" expect(@jiraCli.pp.prettyPrintError) .toHaveBeenCalledWith "Error deleting issue: error" @jiraCli.jira.deleteIssue.mostRecentCall.args[1] null, "success" expect(@jiraCli.pp.prettyPrintSuccess) .toHaveBeenCalledWith "Issue 1 was deleted" it "Adds a worklog", -> worklog = comment: 'comment' timeSpent: 'timeSpent' spyOn @jiraCli.jira, 'addWorklog' @jiraCli.addWorklog 1, 'comment', 'timeSpent', true expect(@jiraCli.jira.addWorklog) .toHaveBeenCalledWith 1, worklog, jasmine.any Function @jiraCli.jira.addWorklog.mostRecentCall.args[2] null, "response" expect(@jiraCli.pp.prettyPrintSuccess) .toHaveBeenCalledWith "Worklog was added" @jiraCli.jira.addWorklog.mostRecentCall.args[2] "error" expect(@jiraCli.pp.prettyPrintError) .toHaveBeenCalledWith "Error adding worklog: error" expect(@jiraCli.dieWithFire).toHaveBeenCalled() it "Adds a worklog, but doesn't quit", -> spyOn @jiraCli.jira, 'addWorklog' @jiraCli.addWorklog 1, 'comment', 'timeSpent', false @jiraCli.jira.addWorklog.mostRecentCall.args[2] null, "response" expect(@jiraCli.dieWithFire).not.toHaveBeenCalled() it "Lists transitions", -> spyOn @jiraCli.jira, 'listTransitions' @jiraCli.listTransitions 1, @cb expect(@jiraCli.jira.listTransitions) .toHaveBeenCalledWith 1, jasmine.any Function @jiraCli.jira.listTransitions.mostRecentCall.args[1] null, "transitions" expect(@cb).toHaveBeenCalledWith "transitions" @jiraCli.jira.listTransitions.mostRecentCall.args[1] "error" expect(@jiraCli.pp.prettyPrintError) .toHaveBeenCalledWith "Error getting transitions: error" expect(@jiraCli.dieWithFire).toHaveBeenCalled() it "Transitions an Issue", -> issueUpdate = transition: id: 'transition' spyOn @jiraCli.jira, 'transitionIssue' @jiraCli.transitionIssue 1, 'transition' expect(@jiraCli.jira.transitionIssue) .toHaveBeenCalledWith 1, issueUpdate, jasmine.any Function @jiraCli.jira.transitionIssue.mostRecentCall.args[2] null, "response" expect(@jiraCli.pp.prettyPrintLog) .toHaveBeenCalledWith "Issue 1 was transitioned" # #{color "transitioned", 'green'}" @jiraCli.jira.transitionIssue.mostRecentCall.args[2] "error" expect(@jiraCli.pp.prettyPrintError) .toHaveBeenCalledWith "Error transitioning issue: error" expect(@jiraCli.dieWithFire).toHaveBeenCalled() it "Searches Jira", -> fields = ["summary", "status", "assignee"] spyOn @jiraCli.jira, 'searchJira' @jiraCli.searchJira 'query', true expect(@jiraCli.jira.searchJira) .toHaveBeenCalledWith 'query', fields, jasmine.any Function expect(@jiraCli.jira.searchJira.mostRecentCall.args[1]) .toEqual fields @jiraCli.jira.searchJira.mostRecentCall.args[2] null, issues: [1] expect(@jiraCli.pp.prettyPrintList).toHaveBeenCalledWith 1, true @jiraCli.jira.searchJira.mostRecentCall.args[2] "error" expect(@jiraCli.pp.prettyPrintError) .toHaveBeenCalledWith "Error retreiving issues list: error" it "Gets the user's OPEN issues", -> jql = "assignee = \"test\" AND resolution = unresolved" spyOn @jiraCli, 'searchJira' @jiraCli.getMyIssues true, true expect(@jiraCli.searchJira).toHaveBeenCalledWith jql, true it "Gets ALL the user's issues", -> jql = "assignee = \"test\"" spyOn @jiraCli, 'searchJira' @jiraCli.getMyIssues false, true expect(@jiraCli.searchJira).toHaveBeenCalledWith jql, true it "Gets the user's projects", -> spyOn @jiraCli.jira, 'listProjects' @jiraCli.getMyProjects @cb @jiraCli.jira.listProjects.mostRecentCall.args[0] null, "list" expect(@cb).toHaveBeenCalledWith "list" @jiraCli.jira.listProjects.mostRecentCall.args[0] "error" expect(@jiraCli.pp.prettyPrintError) .toHaveBeenCalledWith "Error listing projects: error" expect(@jiraCli.dieWithFire).toHaveBeenCalled()