ruby-trello 1.2.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/spec/array_spec.rb CHANGED
@@ -5,6 +5,6 @@ describe Array, '#jsoned_into' do
5
5
  include Helpers
6
6
 
7
7
  it "should convert an array of parsed json into cards" do
8
- cards_details.jsoned_into(Trello::Card).should eq([cards_details.first.jsoned_into(Trello::Card)])
8
+ expect(cards_details.jsoned_into(Trello::Card)).to eq([cards_details.first.jsoned_into(Trello::Card)])
9
9
  end
10
10
  end
@@ -7,16 +7,20 @@ module Trello
7
7
  let(:organization) { client.find(:organization, '4ee7e59ae582acdec8000291') }
8
8
  let(:client) { Client.new(consumer_key: 'xxx') }
9
9
 
10
- before(:each) do
11
- client.stub(:get).with('/organizations/4ee7e59ae582acdec8000291', {}).
12
- and_return organization_payload
13
- client.stub(:get).with('/organizations/4ee7e59ae582acdec8000291/boards/all').
14
- and_return boards_payload
10
+ before do
11
+ allow(client)
12
+ .to receive(:get)
13
+ .with('/organizations/4ee7e59ae582acdec8000291', {})
14
+ .and_return organization_payload
15
+
16
+ allow(client)
17
+ .to receive(:get)
18
+ .with('/organizations/4ee7e59ae582acdec8000291/boards/all')
19
+ .and_return boards_payload
15
20
  end
16
21
 
17
22
  it 'should set the proper client for all associated boards of the organization' do
18
- organization.boards.first.client.consumer_key.should == 'xxx'
23
+ expect(organization.boards.first.client.consumer_key).to eq 'xxx'
19
24
  end
20
-
21
25
  end
22
26
  end
@@ -21,8 +21,8 @@ describe BasicAuthPolicy do
21
21
 
22
22
  the_query_parameters = Addressable::URI.parse(authorized_request.uri).query_values
23
23
 
24
- the_query_parameters['key'].should === 'xxx_developer_public_key_xxx'
25
- the_query_parameters['token'].should === 'xxx_member_token_xxx'
24
+ expect(the_query_parameters['key']).to eq 'xxx_developer_public_key_xxx'
25
+ expect(the_query_parameters['token']).to eq 'xxx_member_token_xxx'
26
26
  end
27
27
 
28
28
  it 'preserves other query parameters' do
@@ -34,7 +34,7 @@ describe BasicAuthPolicy do
34
34
 
35
35
  the_query_parameters = Addressable::URI.parse(authorized_request.uri).query_values
36
36
 
37
- the_query_parameters['name'].should == 'Phil'
37
+ expect(the_query_parameters['name']).to eq 'Phil'
38
38
  end
39
39
 
40
40
  it 'preserves headers' do
@@ -44,7 +44,7 @@ describe BasicAuthPolicy do
44
44
 
45
45
  authorized_request = BasicAuthPolicy.authorize request
46
46
 
47
- authorized_request.headers.should === request.headers
47
+ expect(authorized_request.headers).to eq request.headers
48
48
  end
49
49
 
50
50
  it 'does what when a query parameter already exists called key or token?'
data/spec/board_spec.rb CHANGED
@@ -8,169 +8,228 @@ module Trello
8
8
  let(:client) { Client.new }
9
9
  let(:member) { Member.new(user_payload) }
10
10
 
11
- before(:each) do
12
- client.stub(:get).with("/boards/abcdef123456789123456789", {}).
13
- and_return JSON.generate(boards_details.first)
11
+ before do
12
+ allow(client)
13
+ .to receive(:get)
14
+ .with("/boards/abcdef123456789123456789", {})
15
+ .and_return JSON.generate(boards_details.first)
14
16
  end
15
17
 
16
18
  context "finding" do
17
19
  let(:client) { Trello.client }
18
20
 
19
21
  it "delegates to client#find" do
20
- client.should_receive(:find).with(:board, 'abcdef123456789123456789', {})
22
+ expect(client)
23
+ .to receive(:find)
24
+ .with(:board, 'abcdef123456789123456789', {})
25
+
21
26
  Board.find('abcdef123456789123456789')
22
27
  end
23
28
 
24
29
  it "is equivalent to client#find" do
25
- Board.find('abcdef123456789123456789').should eq(board)
30
+ expect(Board.find('abcdef123456789123456789')).to eq(board)
26
31
  end
27
32
  end
28
33
 
29
34
  context "self.all" do
30
35
  let(:client) { Trello.client }
31
36
 
32
- it "gets all boards" do
33
- Member.stub_chain(:find, :username).and_return "testuser"
34
- client.stub(:get).with("/members/testuser/boards").and_return boards_payload
37
+ before do
38
+ allow(Member)
39
+ .to receive_message_chain(:find, :username)
40
+ .and_return "testuser"
41
+
42
+ allow(client)
43
+ .to receive(:get)
44
+ .with("/members/testuser/boards")
45
+ .and_return boards_payload
46
+ end
35
47
 
36
- expected = Board.new(boards_details.first)
37
- Board.all.first.should eq(expected)
48
+ it "gets all boards" do
49
+ expect(Board.all.first).to eq Board.new(boards_details.first)
38
50
  end
39
51
  end
40
52
 
41
53
  context "fields" do
42
54
  it "gets an id" do
43
- board.id.should_not be_nil
55
+ expect(board.id).to_not be_nil
44
56
  end
45
57
 
46
58
  it "gets a name" do
47
- board.name.should_not be_nil
59
+ expect(board.name).to_not be_nil
48
60
  end
49
61
 
50
62
  it "gets the description" do
51
- board.description.should_not be_nil
63
+ expect(board.description).to_not be_nil
52
64
  end
53
65
 
54
66
  it "knows if it is closed or open" do
55
- board.closed?.should_not be_nil
67
+ expect(board).to_not be_closed
56
68
  end
57
-
69
+
58
70
  it "knows if it is starred or not" do
59
- board.starred?.should_not be_nil
71
+ expect(board).to_not be_starred
60
72
  end
61
73
 
62
74
  it "gets its url" do
63
- board.url.should_not be_nil
75
+ expect(board.url).to_not be_nil
64
76
  end
65
77
  end
66
78
 
67
79
  context "actions" do
68
- it "has a list of actions" do
69
- client.stub(:get).with("/boards/abcdef123456789123456789/actions", {filter: :all}).
70
- and_return actions_payload
80
+ before do
81
+ allow(client)
82
+ .to receive(:get)
83
+ .with("/boards/abcdef123456789123456789/actions", {filter: :all})
84
+ .and_return actions_payload
85
+ end
71
86
 
72
- board.actions.count.should be > 0
87
+ it "has a list of actions" do
88
+ expect(board.actions.count).to be > 0
73
89
  end
74
90
  end
75
91
 
76
92
  context "cards" do
77
- it "gets its list of cards" do
78
- client.stub(:get).with("/boards/abcdef123456789123456789/cards", { filter: :open }).
79
- and_return cards_payload
93
+ before do
94
+ allow(client)
95
+ .to receive(:get)
96
+ .with("/boards/abcdef123456789123456789/cards", {filter: :open})
97
+ .and_return cards_payload
98
+ end
80
99
 
81
- board.cards.count.should be > 0
100
+ it "gets its list of cards" do
101
+ expect(board.cards.count).to be > 0
82
102
  end
83
103
  end
84
104
 
85
105
  context "labels" do
106
+ before do
107
+ allow(client)
108
+ .to receive(:get)
109
+ .with("/boards/abcdef123456789123456789/labels")
110
+ .and_return label_payload
111
+
112
+ allow(client)
113
+ .to receive(:get)
114
+ .with("/boards/abcdef123456789123456789/labelnames")
115
+ .and_return label_name_payload
116
+ end
117
+
86
118
  it "gets the specific labels for the board" do
87
- client.stub(:get).with("/boards/abcdef123456789123456789/labels").
119
+ client.stub(:get).with("/boards/abcdef123456789123456789/labels", {}).
88
120
  and_return label_payload
89
- labels = board.labels false
121
+ labels = board.labels
90
122
  labels.count.should eq(4)
91
123
 
92
-
93
124
  expect(labels[2].color).to eq('red')
94
125
  expect(labels[2].id).to eq('abcdef123456789123456789')
95
126
  expect(labels[2].board_id).to eq('abcdef123456789123456789')
96
127
  expect(labels[2].name).to eq('deploy')
97
128
  expect(labels[2].uses).to eq(2)
98
-
99
129
  expect(labels[3].color).to eq('blue')
100
130
  expect(labels[3].id).to eq('abcdef123456789123456789')
101
131
  expect(labels[3].board_id).to eq('abcdef123456789123456789')
102
132
  expect(labels[3].name).to eq('on hold')
103
133
  expect(labels[3].uses).to eq(6)
104
134
  end
105
-
106
- it "gets the specific labels for the board" do
107
- client.stub(:get).with("/boards/abcdef123456789123456789/labelnames").
108
- and_return label_name_payload
109
-
110
- board.labels.count.should eq(10)
111
- end
112
135
  end
113
136
 
114
137
  context "find_card" do
138
+ before do
139
+ allow(client)
140
+ .to receive(:get)
141
+ .with("/boards/abcdef123456789123456789/cards/1")
142
+ .and_return card_payload
143
+ end
144
+
115
145
  it "gets a card" do
116
- client.stub(:get).with("/boards/abcdef123456789123456789/cards/1").
117
- and_return card_payload
118
- board.find_card(1).should be_a(Card)
146
+ expect(board.find_card(1)).to be_a(Card)
119
147
  end
120
148
  end
121
149
 
122
150
  context "add_member" do
151
+ before do
152
+ allow(client)
153
+ .to receive(:put)
154
+ end
155
+
123
156
  it "adds a member to the board as a normal user (default)" do
124
- client.stub(:put).with("/boards/abcdef123456789123456789/members/id", type: :normal)
157
+ expect(client)
158
+ .to receive(:put)
159
+ .with("/boards/abcdef123456789123456789/members/id", type: :normal)
160
+
125
161
  board.add_member(member)
126
162
  end
127
163
 
128
164
  it "adds a member to the board as an admin" do
129
- client.stub(:put).with("/boards/abcdef123456789123456789/members/id", type: :admin)
165
+ expect(client)
166
+ .to receive(:put)
167
+ .with("/boards/abcdef123456789123456789/members/id", type: :admin)
168
+
130
169
  board.add_member(member, :admin)
131
170
  end
132
171
  end
133
172
 
134
173
  context "remove_member" do
174
+ before do
175
+ allow(client)
176
+ .to receive(:delete)
177
+ end
178
+
135
179
  it "removes a member from the board" do
136
- client.stub(:delete).with("/boards/abcdef123456789123456789/members/id")
180
+ expect(client)
181
+ .to receive(:delete)
182
+ .with("/boards/abcdef123456789123456789/members/id")
183
+
137
184
  board.remove_member(member)
138
185
  end
139
186
  end
140
187
 
141
188
  context "lists" do
142
- it "has a list of lists" do
143
- client.stub(:get).with("/boards/abcdef123456789123456789/lists", hash_including(filter: :open)).
144
- and_return lists_payload
189
+ before do
190
+ allow(client)
191
+ .to receive(:get)
192
+ .with("/boards/abcdef123456789123456789/lists", hash_including(filter: :open))
193
+ .and_return lists_payload
194
+ end
145
195
 
146
- board.has_lists?.should be true
196
+ it "has a list of lists" do
197
+ expect(board).to be_has_lists
147
198
  end
148
199
  end
149
200
 
150
201
  context "members" do
151
- it "has a list of members" do
152
- client.stub(:get).with("/boards/abcdef123456789123456789/members", hash_including(filter: :all)).
153
- and_return JSON.generate([user_details])
202
+ before do
203
+ allow(client)
204
+ .to receive(:get)
205
+ .with("/boards/abcdef123456789123456789/members", hash_including(filter: :all))
206
+ .and_return JSON.generate([user_details])
207
+ end
154
208
 
155
- board.members.count.should be > 0
209
+ it "has a list of members" do
210
+ expect(board.members.count).to be > 0
156
211
  end
157
212
  end
158
213
 
159
214
  context "organization" do
160
- it "belongs to an organization" do
161
- client.stub(:get).with("/organizations/abcdef123456789123456789", {}).
162
- and_return JSON.generate(orgs_details.first)
215
+ before do
216
+ allow(client)
217
+ .to receive(:get)
218
+ .with("/organizations/abcdef123456789123456789", {})
219
+ .and_return JSON.generate(orgs_details.first)
220
+ end
163
221
 
164
- board.organization.should_not be_nil
222
+ it "belongs to an organization" do
223
+ expect(board.organization).to_not be_nil
165
224
  end
166
225
  end
167
226
 
168
227
  it "is not closed" do
169
- expect(board.closed?).not_to be(true)
228
+ expect(board).not_to be_closed
170
229
  end
171
-
172
- it "is not starred" do
173
- expect(board.starred?).not_to be(true)
230
+
231
+ it "is not starred" do
232
+ expect(board).not_to be_starred
174
233
  end
175
234
 
176
235
  describe "#update_fields" do
@@ -192,12 +251,12 @@ module Trello
192
251
 
193
252
  expected.each_pair do |key, value|
194
253
  if board.respond_to?(key)
195
- board.send(key).should == value
254
+ expect(board.send(key)).to eq value
196
255
  end
197
256
  end
198
257
 
199
- board.description.should == expected['desc']
200
- board.organization_id.should == expected['idOrganization']
258
+ expect(board.description).to eq expected['desc']
259
+ expect(board.organization_id).to eq expected['idOrganization']
201
260
  end
202
261
 
203
262
  it "sets any attributes supplied in the fields argument"
@@ -210,45 +269,47 @@ module Trello
210
269
  JSON.generate(boards_details.first)
211
270
  end
212
271
 
213
- it "cannot currently save a new instance" do
214
- client.should_not_receive :put
272
+ before do
273
+ allow(client)
274
+ .to receive(:put)
275
+ end
215
276
 
216
- the_new_board = Board.new
217
- -> { the_new_board.save }.should raise_error
277
+ it "cannot currently save a new instance" do
278
+ expect(client).to_not receive(:put)
279
+ expect {
280
+ Board.new.save
281
+ }.to raise_error
218
282
  end
219
283
 
220
284
  it "puts all fields except id" do
221
285
  expected_fields = %w{ name description closed starred idOrganization}.map { |s| s.to_sym }
222
286
 
223
- client.should_receive(:put) do |anything, body|
224
- body.keys.should =~ expected_fields
287
+ expect(client).to receive(:put) do |anything, body|
288
+ expect(body.keys).to match expected_fields
225
289
  any_board_json
226
290
  end
227
291
 
228
- the_new_board = Board.new 'id' => "xxx"
229
- the_new_board.save
292
+ Board.new('id' => "xxx").save
230
293
  end
231
294
 
232
295
  it "mutates the current instance" do
233
- client.stub(:put).and_return any_board_json
296
+ allow(client)
297
+ .to receive(:put)
298
+ .and_return any_board_json
234
299
 
235
300
  board = Board.new 'id' => "xxx"
236
-
237
- the_result_of_save = board.save
238
-
239
- the_result_of_save.should equal board
301
+ expect(board.save).to eq board
240
302
  end
241
303
 
242
304
  it "uses the correct resource" do
243
305
  expected_resource_id = "xxx_board_id_xxx"
244
306
 
245
- client.should_receive(:put) do |path, anything|
246
- path.should =~ /#{expected_resource_id}\/$/
307
+ expect(client).to receive(:put) do |path, anything|
308
+ expect(path).to match(/#{expected_resource_id}\/\z/)
247
309
  any_board_json
248
310
  end
249
311
 
250
- the_new_board = Board.new 'id' => expected_resource_id
251
- the_new_board.save
312
+ Board.new('id' => expected_resource_id).save
252
313
  end
253
314
 
254
315
  it "saves OR updates depending on whether or not it has an id set"
@@ -267,15 +328,18 @@ module Trello
267
328
  board.name = "new name"
268
329
  board.description = "new description"
269
330
  board.closed = true
270
- board.starred = true
271
-
272
- client.should_receive(:put).with("/boards/#{board.id}/", {
273
- name: "new name",
274
- description: "new description",
275
- closed: true,
276
- starred: true,
277
- idOrganization: nil
278
- }).and_return any_board_json
331
+ board.starred = true
332
+
333
+ expect(client)
334
+ .to receive(:put)
335
+ .with("/boards/#{board.id}/", {
336
+ name: "new name",
337
+ description: "new description",
338
+ closed: true,
339
+ starred: true,
340
+ idOrganization: nil })
341
+ .and_return any_board_json
342
+
279
343
  board.update!
280
344
  end
281
345
  end
@@ -289,26 +353,39 @@ module Trello
289
353
  JSON.generate(boards_details.first)
290
354
  end
291
355
 
356
+ before do
357
+ allow(client)
358
+ .to receive(:post)
359
+ end
360
+
292
361
  it "creates a new board with whatever attributes are supplied " do
293
362
  expected_attributes = { name: "Any new board name", description: "Any new board desription" }
294
363
  sent_attributes = { name: expected_attributes[:name], desc: expected_attributes[:description] }
295
364
 
296
- client.should_receive(:post).with("/boards", sent_attributes).and_return any_board_json
365
+ expect(client)
366
+ .to receive(:post)
367
+ .with("/boards", sent_attributes)
368
+ .and_return any_board_json
297
369
 
298
370
  Board.create expected_attributes
299
371
  end
300
372
 
301
373
  it "posts to the boards collection" do
302
- client.should_receive(:post).with("/boards", anything).and_return any_board_json
374
+ expect(client)
375
+ .to receive(:post)
376
+ .with("/boards", anything)
377
+ .and_return any_board_json
303
378
 
304
379
  Board.create xxx: ""
305
380
  end
306
381
 
307
382
  it "returns a board" do
308
- client.stub(:post).with("/boards", anything).and_return any_board_json
383
+ allow(client)
384
+ .to receive(:post)
385
+ .with("/boards", anything)
386
+ .and_return any_board_json
309
387
 
310
- the_new_board = Board.create xxx: ""
311
- the_new_board.should be_a Board
388
+ expect(Board.create(xxx: "")).to be_a Board
312
389
  end
313
390
 
314
391
  it "at least name is required"