speedflow-plugin-jira 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,115 @@
1
+ require 'spec_helper'
2
+
3
+ describe Speedflow::Plugin::Jira::PluginCore do
4
+ let(:plugin) do
5
+ plugin = ::Speedflow::Plugin::Jira::PluginCore.new({})
6
+ plugin.config = double
7
+ plugin.prompt = double
8
+ plugin.client = double
9
+ plugin
10
+ end
11
+
12
+ it '.action_create_issue' do
13
+ allow(plugin.config)
14
+ .to receive(:by_required_input)
15
+ .with('title')
16
+ .and_return('Test')
17
+ allow(plugin.config)
18
+ .to receive(:by_input)
19
+ .with('project')
20
+ .and_return('T')
21
+ allow(plugin.config)
22
+ .to receive(:by_input)
23
+ .with('type')
24
+ .and_return('')
25
+
26
+ allow(plugin.client)
27
+ .to receive(:issue_types)
28
+ .and_return('3')
29
+
30
+ allow(plugin.prompt)
31
+ .to receive(:issue_type)
32
+ .with('3')
33
+ .and_return('3')
34
+
35
+ allow(plugin.client)
36
+ .to receive(:create_issue)
37
+ .with('T', 'Test', '3')
38
+
39
+ plugin.action_create_issue
40
+ end
41
+
42
+ it '.action_search_issue' do
43
+ allow(plugin.config)
44
+ .to receive(:by_input)
45
+ .with('limit', 20)
46
+ .and_return(20)
47
+ allow(plugin.config)
48
+ .to receive(:by_input)
49
+ .with('project')
50
+ .and_return('T')
51
+
52
+ allow(plugin.prompt)
53
+ .to receive(:issue)
54
+ .and_yield('test')
55
+
56
+ allow(plugin.client)
57
+ .to receive(:search_issue)
58
+ .with('T', 'test')
59
+ .and_return(double(take: 'T-1'))
60
+
61
+ expect(plugin.action_search_issue).to eq 'T-1'
62
+ end
63
+
64
+ it '.action_change_issue_assignee' do
65
+ allow(plugin.config)
66
+ .to receive(:by_input)
67
+ .with('issue')
68
+ .and_return('T-1')
69
+ allow(plugin.config)
70
+ .to receive(:by_input)
71
+ .with('assignee')
72
+ .and_return('julien.breux')
73
+
74
+ allow(plugin.prompt)
75
+ .to receive(:ok)
76
+ .with('[JIRA] Issue assignee changed to: julien.breux')
77
+
78
+ allow(plugin.client)
79
+ .to receive(:update_issue_assignee)
80
+ .with('T-1', 'julien.breux')
81
+ .and_return(double(take: 'T-1'))
82
+
83
+ plugin.action_change_issue_assignee
84
+ end
85
+
86
+ it '.action_change_issue_transition' do
87
+ allow(plugin.config)
88
+ .to receive(:by_input)
89
+ .with('issue')
90
+ .and_return('T-1')
91
+ allow(plugin.config)
92
+ .to receive(:by_input)
93
+ .with('transition')
94
+ .and_return('')
95
+
96
+ allow(plugin.client)
97
+ .to receive(:issue_trans)
98
+ .and_return('T-1')
99
+
100
+ allow(plugin.prompt)
101
+ .to receive(:transition)
102
+ .with('T-1')
103
+ .and_return('1')
104
+
105
+ allow(plugin.client)
106
+ .to receive(:update_issue_transition)
107
+ .with('T-1', '1')
108
+
109
+ allow(plugin.prompt)
110
+ .to receive(:ok)
111
+ .with('[JIRA] Issue transition changed to: 1')
112
+
113
+ plugin.action_change_issue_transition
114
+ end
115
+ end
@@ -0,0 +1,79 @@
1
+ require 'spec_helper'
2
+
3
+ describe Speedflow::Plugin::Jira::Prompt do
4
+ let(:prompt) do
5
+ prompt = ::Speedflow::Plugin::Jira::Prompt.new
6
+ prompt.prompt = double
7
+ prompt
8
+ end
9
+ let(:response) do
10
+ double(body: '{"errors": {"k": "v"}, "errorMessages": ["v"]}')
11
+ end
12
+ let(:exception) do
13
+ double(response: response)
14
+ end
15
+
16
+ it '.project' do
17
+ allow(prompt.prompt)
18
+ .to receive(:select)
19
+ .with('Choose the project:')
20
+ .and_yield(double(choice: nil))
21
+ .and_return('T')
22
+
23
+ projects = [double(name: 'Test', key: 'T')]
24
+ expect(prompt.project(projects)).to eq 'T'
25
+ end
26
+
27
+ it '.issue_type' do
28
+ allow(prompt.prompt)
29
+ .to receive(:select)
30
+ .with('Choose the issue type:')
31
+ .and_yield(double(choice: nil))
32
+ .and_return('3')
33
+
34
+ issue_types = [double(name: 'Task', id: '3')]
35
+ expect(prompt.issue_type(issue_types)).to eq '3'
36
+ end
37
+
38
+ it '.transition' do
39
+ allow(prompt.prompt)
40
+ .to receive(:select)
41
+ .with('Choose the transition:')
42
+ .and_yield(double(choice: nil))
43
+ .and_return('1')
44
+
45
+ transitions = [double(name: 'Start', id: '1')]
46
+ expect(prompt.transition(transitions)).to eq '1'
47
+ end
48
+
49
+ it '.issue' do
50
+ allow(prompt.prompt)
51
+ .to receive(:select)
52
+ .with('Choose the issue:')
53
+ .and_yield(double(choice: nil))
54
+ .and_return('T-1')
55
+ allow(prompt.prompt)
56
+ .to receive(:ask)
57
+ .with('What is the title of issue?', required: true)
58
+ .and_return('First Task')
59
+ allow(prompt.prompt)
60
+ .to receive(:ok)
61
+ .with('[JIRA] Issue found: T-1')
62
+
63
+ issue = prompt.issue do |_|
64
+ [double(summary: 'First Task', key: 'T-1')]
65
+ end
66
+ expect(issue).to eq 'T-1'
67
+ end
68
+
69
+ it '.errors' do
70
+ allow(prompt.prompt)
71
+ .to receive(:error).with('Jira errors')
72
+ allow(prompt.prompt)
73
+ .to receive(:warn).with('- k: v')
74
+ allow(prompt.prompt)
75
+ .to receive(:warn).with('- v')
76
+
77
+ expect(prompt.errors(exception))
78
+ end
79
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe Speedflow::Plugin::Jira do
4
+ let(:plugin) do
5
+ double(new: double(action_create_issue: nil))
6
+ end
7
+
8
+ it 'has a version number' do
9
+ expect(Speedflow::Plugin::Jira::VERSION).not_to be nil
10
+ end
11
+
12
+ it 'has an action catcher' do
13
+ expect { Speedflow::Plugin::Jira.action_lol }.to raise_error(NoMethodError)
14
+
15
+ Speedflow::Plugin::Jira.plugin = plugin
16
+
17
+ expect(Speedflow::Plugin::Jira.action_create_issue).to eq nil
18
+ end
19
+ end
metadata ADDED
@@ -0,0 +1,217 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: speedflow-plugin-jira
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Julien Breux
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-04-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jira-ruby
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.1.17
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.1.17
27
+ - !ruby/object:Gem::Dependency
28
+ name: tty-prompt
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.5.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.5.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.11'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.11'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: fuubar
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard-rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '4.6'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '4.6'
111
+ - !ruby/object:Gem::Dependency
112
+ name: guard-rubocop
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.2'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.2'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: codeclimate-test-reporter
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ description: A Speedflow plugin for JIRA.
168
+ email:
169
+ - julien.breux@gmail.com
170
+ executables: []
171
+ extensions: []
172
+ extra_rdoc_files: []
173
+ files:
174
+ - LICENSE
175
+ - README.md
176
+ - bin/console
177
+ - bin/setup
178
+ - lib/speedflow-plugin-jira.rb
179
+ - lib/speedflow/plugin/jira.rb
180
+ - lib/speedflow/plugin/jira/client.rb
181
+ - lib/speedflow/plugin/jira/configuration.rb
182
+ - lib/speedflow/plugin/jira/formatter/issue_formatter.rb
183
+ - lib/speedflow/plugin/jira/plugin_core.rb
184
+ - lib/speedflow/plugin/jira/prompt.rb
185
+ - lib/speedflow/plugin/jira/version.rb
186
+ - spec/spec_helper.rb
187
+ - spec/speedflow/plugin/jira/client_spec.rb
188
+ - spec/speedflow/plugin/jira/configuration_spec.rb
189
+ - spec/speedflow/plugin/jira/formatter/issue_formatter_spec.rb
190
+ - spec/speedflow/plugin/jira/plugin_core_spec.rb
191
+ - spec/speedflow/plugin/jira/prompt_spec.rb
192
+ - spec/speedflow/plugin/jira_spec.rb
193
+ homepage: https://github.com/speedflow/speedflow-plugin-jira
194
+ licenses:
195
+ - MIT
196
+ metadata: {}
197
+ post_install_message:
198
+ rdoc_options: []
199
+ require_paths:
200
+ - lib
201
+ required_ruby_version: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ required_rubygems_version: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - ">="
209
+ - !ruby/object:Gem::Version
210
+ version: '0'
211
+ requirements: []
212
+ rubyforge_project:
213
+ rubygems_version: 2.5.2
214
+ signing_key:
215
+ specification_version: 4
216
+ summary: A Speedflow plugin for JIRA.
217
+ test_files: []