reviewlette 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,202 @@
1
+ require 'spec_helper'
2
+
3
+ describe Reviewlette::TrelloConnection do
4
+
5
+ subject { Reviewlette::TrelloConnection }
6
+
7
+ describe '.new' do
8
+
9
+ it 'populates board variable with instance of Trello::Board' do
10
+ stub_boards_call
11
+ expect(subject.new.board).to be_kind_of Trello::Board
12
+ end
13
+
14
+ it 'sets up trello' do
15
+ allow(Trello::Board).to receive(:find).and_return nil
16
+ config = Reviewlette::TRELLO_CONFIG1
17
+ expect_any_instance_of(Trello::Configuration).to receive(:developer_public_key=).with(config['consumerkey']).and_call_original
18
+ subject.new
19
+ end
20
+
21
+ it 'sets up trello' do
22
+ allow(Trello::Board).to receive(:find).and_return nil
23
+ config = Reviewlette::TRELLO_CONFIG1
24
+ expect_any_instance_of(Trello::Configuration).to receive(:member_token=).with(config['oauthtoken']).and_call_original
25
+ subject.new
26
+ end
27
+
28
+ end
29
+
30
+
31
+ describe '#find_member_by_id(id)' do
32
+ let( :trello_connection ) { subject.new }
33
+
34
+ before do
35
+ allow_any_instance_of(subject).to receive(:setup_trello).and_return true
36
+ allow(subject).to receive(:find_card_by_id).and_return :id
37
+ end
38
+
39
+ it "finds the right card based on the trello id" do
40
+ board = double('board')
41
+ trello_connection.board = board
42
+ expect(board).to receive_message_chain(:cards, :find)
43
+ trello_connection.send(:find_card_by_id, 42)
44
+ #privates with send
45
+ end
46
+ end
47
+
48
+ describe '#find_member_by_username' do
49
+ let( :trello_connection ) { subject.new }
50
+
51
+ before do
52
+ allow_any_instance_of(subject).to receive(:setup_trello).and_return true
53
+ allow(subject).to receive(:find_member_by_username).and_return :username
54
+ end
55
+
56
+ it "finds a member based on a username and returns a trello member object" do
57
+ board = double('board')
58
+ trello_connection.board = board
59
+ expect(board).to receive_message_chain(:members, :find)
60
+ trello_connection.send(:find_member_by_username, 'art')
61
+ end
62
+ end
63
+
64
+ describe '#find_member_by_id' do
65
+ let( :trello_connection ) { subject.new }
66
+
67
+ before do
68
+ allow_any_instance_of(subject).to receive(:setup_trello).and_return true
69
+ allow(subject).to receive(:find_member_by_id).and_return :id
70
+ end
71
+
72
+ it "finds the right member based on the trello id and returns a trello member object" do
73
+ board = double('board')
74
+ trello_connection.board = board
75
+ expect(board).to receive_message_chain(:members, :find)
76
+ trello_connection.send(:find_member_by_id, 42)
77
+ end
78
+ end
79
+
80
+ describe '#add_reviewer_to_card' do
81
+ let ( :trello_connection ) { subject.new }
82
+
83
+ before do
84
+ allow_any_instance_of(subject).to receive(:setup_trello).and_return true
85
+ end
86
+
87
+ it "adds the valid member to the trello card and comments it" do
88
+ card = double('card')
89
+ allow(card).to receive(:add_member).and_return true
90
+ expect(trello_connection.add_reviewer_to_card('asd', card)).to eq true
91
+ end
92
+ end
93
+
94
+ describe '#comment_on_card' do
95
+ let ( :trello_connection ) { subject.new }
96
+
97
+ before do
98
+ allow_any_instance_of(subject).to receive(:setup_trello).and_return true
99
+ end
100
+
101
+ it "comments on the assigned trello card " do
102
+ card = double('card')
103
+ allow(card).to receive(:add_comment).with('username').and_return true
104
+ expect(trello_connection.comment_on_card('username', card)).to eq true
105
+ end
106
+ end
107
+
108
+ describe '#team' do
109
+ let ( :trello_connection ) { subject.new }
110
+
111
+ before do
112
+ allow_any_instance_of(subject).to receive(:setup_trello).and_return true
113
+ end
114
+
115
+ it "builds the team member list" do
116
+ expect(trello_connection.team).to be_a_kind_of Array
117
+ end
118
+ end
119
+
120
+ describe '#move_card_to_list' do
121
+ let( :trello_connection ) { subject.new }
122
+
123
+ before do
124
+ allow_any_instance_of(subject).to receive(:setup_trello).and_return true
125
+ end
126
+
127
+ it 'move cards to its certain column' do
128
+ card = double('card')
129
+ allow(card).to receive(:move_to_list).with('Done').and_return true
130
+ expect(trello_connection.move_card_to_list(card, 'Done')).to be true
131
+ end
132
+
133
+ it 'fails to move cards to its certain column' do
134
+ card = double('card')
135
+ allow(card).to receive(:move_to_list).with('Done').and_return false
136
+ expect(trello_connection.move_card_to_list(card, 'Done')).to be false
137
+ end
138
+ end
139
+
140
+ describe '#find_column' do
141
+ let( :trello_connection ) { subject.new }
142
+
143
+ before do
144
+ allow_any_instance_of(subject).to receive(:setup_trello).and_return true
145
+ end
146
+
147
+ it 'detects columns' do
148
+ board = double('board')
149
+ trello_connection.board = board
150
+ expect(board).to receive_message_chain(:lists, :find)
151
+ trello_connection.send(:find_column, 'Done')
152
+ end
153
+ end
154
+
155
+ describe '#sample_reviewer' do
156
+ let ( :trello_connection ) { subject.new }
157
+
158
+ before do
159
+ allow_any_instance_of(subject).to receive(:setup_trello).and_return true
160
+ end
161
+ it 'randomly selects a teammember' do
162
+ card = double('card')
163
+ expect(card).to receive_message_chain(:assignees, :map).and_return ['funny','names']
164
+ trello_connection.sample_reviewer(card)
165
+ end
166
+ end
167
+
168
+ describe '#reviewer_exception_handler' do
169
+ let ( :trello_connection ) { subject.new }
170
+
171
+ before do
172
+ allow_any_instance_of(subject).to receive(:setup_trello).and_return true
173
+ end
174
+ it 'checks sum of for card assignees' do
175
+ card = double('card')
176
+ expect(card).to receive_message_chain(:assignees, :map).and_return [1,2,3]
177
+ trello_connection.reviewer_exception_handler(card)
178
+ end
179
+ end
180
+
181
+ describe '#determine_reviewer' do
182
+ let ( :trello_connection ) { subject.new }
183
+
184
+ before do
185
+ allow_any_instance_of(subject).to receive(:setup_trello).and_return true
186
+ end
187
+
188
+ it 'fails to holds an array of the available reveiewers' do
189
+ card = double('card')
190
+ expect(trello_connection).to receive(:reviewer_exception_handler).with(card).and_return true
191
+ expect{trello_connection.determine_reviewer(card)}.to raise_error(Exception, 'Everyone on the team is assigned to the Card.')
192
+ end
193
+
194
+ it 'holds an array of the available reveiewers' do
195
+ card = double('card')
196
+ expect(trello_connection).to receive(:reviewer_exception_handler).with(card).and_return false
197
+ expect(trello_connection).to receive(:sample_reviewer).and_return true
198
+ expect(trello_connection).to receive(:find_member_by_username).and_return 'name'
199
+ expect(trello_connection.determine_reviewer(card)).to eq 'name'
200
+ end
201
+ end
202
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe Reviewlette::Vacations do
4
+
5
+
6
+ describe '.find_vacation' do
7
+
8
+ it 'parses the vacations dates out of tel' do
9
+ expect(Reviewlette::Vacations.find_vacations('jschmid')).to be_a_kind_of Array
10
+ end
11
+ end
12
+ end
data/task ADDED
@@ -0,0 +1 @@
1
+ rspec
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: reviewlette
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.6
5
+ platform: ruby
6
+ authors:
7
+ - jschmid1
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-10-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ruby-trello
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 1.1.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.1.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: octokit
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 3.1.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 3.1.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: sequel
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 4.13.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 4.13.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: sqlite3
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.3.9
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 1.3.9
69
+ description: Easy, fair and trackable labor division in your team.
70
+ email:
71
+ - jschmid@suse.de
72
+ executables:
73
+ - reviewlette
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - .gitignore
78
+ - .rspec
79
+ - .travis.yml
80
+ - Gemfile
81
+ - Gemfile.lock
82
+ - Guardfile
83
+ - LICENSE
84
+ - README.md
85
+ - Rakefile
86
+ - bin/reviewlette
87
+ - config/.github.yml
88
+ - config/.members.yml
89
+ - config/.trello.yml
90
+ - lib/matching.rb
91
+ - lib/reviewlette.rb
92
+ - lib/reviewlette/database.rb
93
+ - lib/reviewlette/exceptions.rb
94
+ - lib/reviewlette/github_connection.rb
95
+ - lib/reviewlette/graph.html
96
+ - lib/reviewlette/graph_gen.rb
97
+ - lib/reviewlette/mail.rb
98
+ - lib/reviewlette/reviewlette.db
99
+ - lib/reviewlette/trello_connection.rb
100
+ - lib/reviewlette/vacations.rb
101
+ - lib/reviewlette/version.rb
102
+ - prophet.rb
103
+ - reviewlette.db
104
+ - reviewlette.gemspec
105
+ - spec/database_spec.rb
106
+ - spec/github_connection_spec.rb
107
+ - spec/reviewlette_spec.rb
108
+ - spec/spec_helper.rb
109
+ - spec/support/request_stubbing.rb
110
+ - spec/trello_connection_spec.rb
111
+ - spec/vacation_spec.rb
112
+ - task
113
+ homepage: http://rubygems.org/gems/reviewlette
114
+ licenses:
115
+ - MIT
116
+ metadata: {}
117
+ post_install_message:
118
+ rdoc_options: []
119
+ require_paths:
120
+ - lib
121
+ required_ruby_version: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ required_rubygems_version: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - '>='
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ requirements: []
132
+ rubyforge_project:
133
+ rubygems_version: 2.0.3
134
+ signing_key:
135
+ specification_version: 4
136
+ summary: Randomly assignes a reviewer to your Pullrequest and corresponding Trello
137
+ Card.
138
+ test_files:
139
+ - spec/database_spec.rb
140
+ - spec/github_connection_spec.rb
141
+ - spec/reviewlette_spec.rb
142
+ - spec/spec_helper.rb
143
+ - spec/support/request_stubbing.rb
144
+ - spec/trello_connection_spec.rb
145
+ - spec/vacation_spec.rb