dribbble 1.0.1 → 2.0.0
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.
- checksums.yaml +5 -5
- data/.rubocop.yml +33 -0
- data/.travis.yml +3 -6
- data/CHANGELOG.md +58 -0
- data/Gemfile +10 -0
- data/Guardfile +4 -2
- data/README.md +44 -285
- data/Rakefile +2 -0
- data/dribbble.gemspec +10 -8
- data/lib/dribbble.rb +3 -1
- data/lib/dribbble/attachment.rb +9 -1
- data/lib/dribbble/base.rb +3 -1
- data/lib/dribbble/client.rb +5 -30
- data/lib/dribbble/errors.rb +3 -3
- data/lib/dribbble/project.rb +10 -2
- data/lib/dribbble/shot.rb +3 -33
- data/lib/dribbble/user.rb +1 -51
- data/lib/dribbble/utils.rb +5 -3
- data/lib/dribbble/utils/creatable.rb +3 -1
- data/lib/dribbble/utils/deletable.rb +3 -1
- data/lib/dribbble/utils/findable.rb +2 -0
- data/lib/dribbble/utils/has_children.rb +16 -12
- data/lib/dribbble/utils/updatable.rb +2 -0
- data/lib/dribbble/version.rb +3 -1
- data/spec/lib/dribbble/base_spec.rb +10 -8
- data/spec/lib/dribbble/client_spec.rb +16 -69
- data/spec/lib/dribbble/project_spec.rb +52 -16
- data/spec/lib/dribbble/shot_spec.rb +14 -197
- data/spec/lib/dribbble/user_spec.rb +5 -175
- data/spec/spec_helper.rb +5 -3
- data/spec/support/dribbble_api.rb +17 -88
- data/spec/support/fixtures/current_user_success.json +35 -24
- data/spec/support/fixtures/project_success.json +1 -1
- data/spec/support/fixtures/projects_accepted.json +8 -0
- data/spec/support/fixtures/projects_deleted.json +8 -0
- data/spec/support/fixtures/projects_success.json +1 -1
- data/spec/support/fixtures/projects_updated.json +8 -0
- data/spec/support/fixtures/shot_success.json +16 -16
- data/spec/support/fixtures/shot_updated.json +78 -78
- data/spec/support/fixtures/shots_success.json +81 -103
- data/spec/support/fixtures/user_success.json +35 -24
- metadata +33 -67
- data/lib/dribbble/bucket.rb +0 -33
- data/lib/dribbble/comment.rb +0 -29
- data/lib/dribbble/like.rb +0 -7
- data/lib/dribbble/team.rb +0 -6
- data/spec/lib/dribbble/bucket_spec.rb +0 -136
- data/spec/lib/dribbble/comment_spec.rb +0 -77
- data/spec/lib/dribbble/team_spec.rb +0 -43
- data/spec/support/fixtures/attachments_success.json +0 -11
- data/spec/support/fixtures/bucket_created.json +0 -8
- data/spec/support/fixtures/bucket_success.json +0 -8
- data/spec/support/fixtures/bucket_updated.json +0 -8
- data/spec/support/fixtures/buckets_success.json +0 -10
- data/spec/support/fixtures/comment_created.json +0 -38
- data/spec/support/fixtures/comment_likes_success.json +0 -40
- data/spec/support/fixtures/comment_success.json +0 -38
- data/spec/support/fixtures/comment_updated.json +0 -38
- data/spec/support/fixtures/comments_success.json +0 -37
- data/spec/support/fixtures/followers_success.json +0 -33
- data/spec/support/fixtures/following_success.json +0 -33
- data/spec/support/fixtures/shot_likes_success.json +0 -33
- data/spec/support/fixtures/team_success.json +0 -26
- data/spec/support/fixtures/teams_success.json +0 -28
- data/spec/support/fixtures/user_likes_success.json +0 -91
- data/spec/support/fixtures/users_success.json +0 -27
@@ -1,14 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
describe Dribbble::Client do
|
4
|
-
before
|
5
|
-
@client =
|
6
|
+
before do
|
7
|
+
@client = described_class.new 'valid_token'
|
6
8
|
end
|
7
9
|
|
8
10
|
describe 'without token' do
|
9
11
|
it 'raises Dribbble::Error::MissingToken' do
|
10
12
|
expect do
|
11
|
-
|
13
|
+
described_class.new
|
12
14
|
end.to raise_error(Dribbble::Error::MissingToken)
|
13
15
|
end
|
14
16
|
end
|
@@ -17,7 +19,7 @@ describe Dribbble::Client do
|
|
17
19
|
describe 'with an invalid token' do
|
18
20
|
subject do
|
19
21
|
stub_dribbble :get, '/user', DribbbleAPI::Unauthorized
|
20
|
-
|
22
|
+
described_class.new(token: 'fake_invalid_token')
|
21
23
|
end
|
22
24
|
|
23
25
|
it 'raise Dribbble::Error::Unauthorized' do
|
@@ -30,7 +32,7 @@ describe Dribbble::Client do
|
|
30
32
|
describe 'with a valid token' do
|
31
33
|
subject do
|
32
34
|
stub_dribbble :get, '/user', DribbbleAPI::UserSuccess
|
33
|
-
|
35
|
+
described_class.new(token: 'valid_token')
|
34
36
|
end
|
35
37
|
|
36
38
|
it 'return a Dribbble::User' do
|
@@ -38,38 +40,17 @@ describe Dribbble::Client do
|
|
38
40
|
expect(subject.user.name).to be_a String
|
39
41
|
end
|
40
42
|
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe 'on #buckets' do
|
44
|
-
subject do
|
45
|
-
stub_dribbble :get, '/user/buckets', DribbbleAPI::BucketsSuccess
|
46
|
-
@client.buckets
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'return buckets' do
|
50
|
-
expect(subject.first).to be_a Dribbble::Bucket
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
describe 'on #followers' do
|
55
|
-
subject do
|
56
|
-
stub_dribbble :get, '/user/followers', DribbbleAPI::FollowersSuccess
|
57
|
-
@client.followers
|
58
|
-
end
|
59
43
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
describe 'on #likes' do
|
66
|
-
subject do
|
67
|
-
stub_dribbble :get, '/user/likes', DribbbleAPI::UserLikesSuccess
|
68
|
-
@client.likes
|
69
|
-
end
|
44
|
+
describe 'with current user' do
|
45
|
+
subject do
|
46
|
+
stub_dribbble :get, '/user', DribbbleAPI::CurrentUserSuccess
|
47
|
+
@client.user
|
48
|
+
end
|
70
49
|
|
71
|
-
|
72
|
-
|
50
|
+
it 'return current user' do
|
51
|
+
expect(subject).to be_a Dribbble::User
|
52
|
+
expect(subject.id).to eq(1)
|
53
|
+
end
|
73
54
|
end
|
74
55
|
end
|
75
56
|
|
@@ -94,38 +75,4 @@ describe Dribbble::Client do
|
|
94
75
|
expect(subject.first).to be_a Dribbble::Shot
|
95
76
|
end
|
96
77
|
end
|
97
|
-
|
98
|
-
describe 'on #following_shots' do
|
99
|
-
subject do
|
100
|
-
stub_dribbble :get, '/user/following/shots', DribbbleAPI::ShotsSuccess
|
101
|
-
@client.following_shots
|
102
|
-
end
|
103
|
-
|
104
|
-
it 'return shots' do
|
105
|
-
expect(subject.first).to be_a Dribbble::Shot
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
describe 'on #teams' do
|
110
|
-
subject do
|
111
|
-
stub_dribbble :get, '/user/teams', DribbbleAPI::TeamsSuccess
|
112
|
-
@client.teams
|
113
|
-
end
|
114
|
-
|
115
|
-
it 'return teams' do
|
116
|
-
expect(subject.first).to be_a Dribbble::Team
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
describe 'on #user' do
|
121
|
-
subject do
|
122
|
-
stub_dribbble :get, '/user', DribbbleAPI::CurrentUserSuccess
|
123
|
-
@client.user
|
124
|
-
end
|
125
|
-
|
126
|
-
it 'return current user' do
|
127
|
-
expect(subject).to be_a Dribbble::User
|
128
|
-
expect(subject.id).to eq(8_008_135)
|
129
|
-
end
|
130
|
-
end
|
131
78
|
end
|
@@ -1,44 +1,80 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
RAW_PROJECT = data_from_json 'project_success.json'
|
4
6
|
|
5
7
|
describe Dribbble::Project do
|
6
8
|
describe 'on instance' do
|
7
|
-
before
|
8
|
-
@project =
|
9
|
+
before do
|
10
|
+
@project = described_class.new 'valid_token', RAW_PROJECT
|
9
11
|
end
|
10
12
|
|
11
13
|
describe 'after initialization' do
|
12
14
|
RAW_PROJECT.each do |field, value|
|
13
15
|
it "respond to #{field}" do
|
14
|
-
expect(@project.send
|
16
|
+
expect(@project.send(field)).to eq(value)
|
15
17
|
end
|
16
18
|
end
|
17
19
|
end
|
20
|
+
end
|
18
21
|
|
19
|
-
|
22
|
+
describe 'on class' do
|
23
|
+
describe 'on #find' do
|
20
24
|
subject do
|
21
|
-
stub_dribbble :get, '/projects/3
|
22
|
-
|
25
|
+
stub_dribbble :get, '/projects/3', DribbbleAPI::ProjectSuccess
|
26
|
+
described_class.find 'valid_token', 3
|
23
27
|
end
|
24
28
|
|
25
|
-
it '
|
26
|
-
expect(subject
|
27
|
-
expect(subject.
|
29
|
+
it 'return a shot' do
|
30
|
+
expect(subject).to be_a described_class
|
31
|
+
expect(subject.id).to eq(3)
|
28
32
|
end
|
29
33
|
end
|
30
|
-
end
|
31
34
|
|
32
|
-
|
33
|
-
describe 'on #find' do
|
35
|
+
describe 'on #create' do
|
34
36
|
subject do
|
35
|
-
stub_dribbble :
|
36
|
-
|
37
|
+
stub_dribbble :post, '/projects', DribbbleAPI::ProjectsAccepted
|
38
|
+
data = {
|
39
|
+
name: 'Project title',
|
40
|
+
desciption: 'Project description'
|
41
|
+
}
|
42
|
+
described_class.create 'valid_token', data
|
37
43
|
end
|
38
44
|
|
39
|
-
it '
|
40
|
-
expect(subject).to
|
45
|
+
it 'create the project' do
|
46
|
+
expect(subject).to be_truthy
|
41
47
|
expect(subject.id).to eq(3)
|
48
|
+
expect(subject.name).to eq('Project title')
|
49
|
+
expect(subject.description).to eq('Project description')
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe 'on #delete' do
|
54
|
+
subject do
|
55
|
+
stub_dribbble :get, '/projects/3', DribbbleAPI::ProjectSuccess
|
56
|
+
stub_dribbble :delete, '/projects/3', DribbbleAPI::ProjectsDeleted
|
57
|
+
described_class.delete 'valid_token', 3
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'return true' do
|
61
|
+
expect(subject).to eq(true)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe 'on #update' do
|
66
|
+
subject do
|
67
|
+
stub_dribbble :get, '/projects/3', DribbbleAPI::ProjectSuccess
|
68
|
+
stub_dribbble :put, '/projects/3', DribbbleAPI::ProjectsUpdated
|
69
|
+
data = {
|
70
|
+
name: 'Project title',
|
71
|
+
description: 'Project description'
|
72
|
+
}
|
73
|
+
described_class.update 'valid_token', 3, data
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'update data' do
|
77
|
+
expect(subject.name).to eq('Project title')
|
42
78
|
end
|
43
79
|
end
|
44
80
|
end
|
@@ -1,17 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
RAW_SHOT = data_from_json 'shot_success.json'
|
4
6
|
|
5
7
|
describe Dribbble::Shot do
|
6
8
|
describe 'on instance' do
|
7
|
-
before
|
8
|
-
@shot =
|
9
|
+
before do
|
10
|
+
@shot = described_class.new 'valid_token', RAW_SHOT
|
9
11
|
end
|
10
12
|
|
11
13
|
describe 'after initialization' do
|
12
14
|
RAW_SHOT.each do |field, value|
|
13
15
|
it "respond to #{field}" do
|
14
|
-
expect(@shot.send
|
16
|
+
expect(@shot.send(field)).to eq(value)
|
15
17
|
end
|
16
18
|
end
|
17
19
|
end
|
@@ -42,18 +44,7 @@ describe Dribbble::Shot do
|
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
45
|
-
|
46
|
-
describe 'all' do
|
47
|
-
subject do
|
48
|
-
stub_dribbble :get, '/shots/471756/attachments', DribbbleAPI::AttachmentsSuccess
|
49
|
-
@shot.attachments
|
50
|
-
end
|
51
|
-
|
52
|
-
it 'return a shot' do
|
53
|
-
expect(subject.first).to be_a Dribbble::Attachment
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
47
|
+
skip 'on #attachments' do
|
57
48
|
describe 'create' do
|
58
49
|
describe 'when shot is accepted' do
|
59
50
|
subject do
|
@@ -78,18 +69,6 @@ describe Dribbble::Shot do
|
|
78
69
|
end
|
79
70
|
end
|
80
71
|
|
81
|
-
describe 'find' do
|
82
|
-
subject do
|
83
|
-
stub_dribbble :get, '/shots/471756/attachments/206165', DribbbleAPI::AttachmentSuccess
|
84
|
-
@shot.find_attachment 206_165
|
85
|
-
end
|
86
|
-
|
87
|
-
it 'return an attachment' do
|
88
|
-
expect(subject).to be_a Dribbble::Attachment
|
89
|
-
expect(subject.id).to eq(206_165)
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
72
|
describe 'delete' do
|
94
73
|
subject do
|
95
74
|
stub_dribbble :delete, '/shots/471756/attachments/206165', DribbbleAPI::AttachmentDeleted
|
@@ -101,157 +80,6 @@ describe Dribbble::Shot do
|
|
101
80
|
end
|
102
81
|
end
|
103
82
|
end
|
104
|
-
|
105
|
-
describe 'on #buckets' do
|
106
|
-
subject do
|
107
|
-
stub_dribbble :get, '/shots/471756/buckets', DribbbleAPI::BucketsSuccess
|
108
|
-
@shot.buckets
|
109
|
-
end
|
110
|
-
|
111
|
-
it 'return a shot' do
|
112
|
-
expect(subject.first).to be_a Dribbble::Bucket
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
describe 'on #comments' do
|
117
|
-
describe 'all' do
|
118
|
-
subject do
|
119
|
-
stub_dribbble :get, '/shots/471756/comments', DribbbleAPI::CommentsSuccess
|
120
|
-
@shot.comments
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'return comments' do
|
124
|
-
expect(subject.first).to be_a Dribbble::Comment
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
describe 'create' do
|
129
|
-
subject do
|
130
|
-
stub_dribbble :post, '/shots/471756/comments', DribbbleAPI::CommentCreated
|
131
|
-
@shot.create_comment body: "<p>Could he somehow make the shape of an \"S\" with his arms? I feel like i see potential for some hidden shapes in here...</p>\n\n<p>Looks fun!\n</p>"
|
132
|
-
end
|
133
|
-
|
134
|
-
it 'return a comment' do
|
135
|
-
expect(subject).to be_a Dribbble::Comment
|
136
|
-
expect(subject.body).to eq("<p>Could he somehow make the shape of an \"S\" with his arms? I feel like i see potential for some hidden shapes in here...</p>\n\n<p>Looks fun!\n</p>")
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
describe 'find' do
|
141
|
-
subject do
|
142
|
-
stub_dribbble :get, '/shots/471756/comments/1145736', DribbbleAPI::CommentSuccess
|
143
|
-
@shot.find_comment 1_145_736
|
144
|
-
end
|
145
|
-
|
146
|
-
it 'return a comment' do
|
147
|
-
expect(subject).to be_a Dribbble::Comment
|
148
|
-
expect(subject.id).to eq(1_145_736)
|
149
|
-
end
|
150
|
-
end
|
151
|
-
|
152
|
-
describe 'update' do
|
153
|
-
subject do
|
154
|
-
stub_dribbble :put, '/shots/471756/comments/1145736', DribbbleAPI::CommentUpdated
|
155
|
-
@shot.update_comment 1_145_736, body: "New body"
|
156
|
-
end
|
157
|
-
|
158
|
-
it 'return a comment' do
|
159
|
-
expect(subject).to be_a Dribbble::Comment
|
160
|
-
expect(subject.body).to eq("New body")
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
describe 'delete' do
|
165
|
-
subject do
|
166
|
-
stub_dribbble :delete, '/shots/471756/comments/1145736', DribbbleAPI::CommentDeleted
|
167
|
-
@shot.delete_comment 1_145_736
|
168
|
-
end
|
169
|
-
|
170
|
-
it 'return true' do
|
171
|
-
expect(subject).to eq(true)
|
172
|
-
end
|
173
|
-
end
|
174
|
-
end
|
175
|
-
|
176
|
-
describe 'on #likes' do
|
177
|
-
subject do
|
178
|
-
stub_dribbble :get, '/shots/471756/likes', DribbbleAPI::ShotLikesSuccess
|
179
|
-
@shot.likes
|
180
|
-
end
|
181
|
-
|
182
|
-
it 'return a user' do
|
183
|
-
expect(subject.first).to be_a Dribbble::Like
|
184
|
-
expect(subject.first.user).to be_a Dribbble::User
|
185
|
-
end
|
186
|
-
end
|
187
|
-
|
188
|
-
describe 'on #like?' do
|
189
|
-
describe 'on a not liked shot' do
|
190
|
-
subject do
|
191
|
-
stub_dribbble :get, '/shots/471756/like', DribbbleAPI::ShotLikeNotFound
|
192
|
-
@shot.like?
|
193
|
-
end
|
194
|
-
|
195
|
-
it 'return a user' do
|
196
|
-
expect(subject).to be_falsy
|
197
|
-
end
|
198
|
-
end
|
199
|
-
|
200
|
-
describe 'on a liked shot' do
|
201
|
-
subject do
|
202
|
-
stub_dribbble :get, '/shots/471756/like', DribbbleAPI::ShotLikeSuccess
|
203
|
-
@shot.like?
|
204
|
-
end
|
205
|
-
|
206
|
-
it 'return a user' do
|
207
|
-
expect(subject).to be_truthy
|
208
|
-
end
|
209
|
-
end
|
210
|
-
end
|
211
|
-
|
212
|
-
describe 'on #like!' do
|
213
|
-
subject do
|
214
|
-
stub_dribbble :post, '/shots/471756/like', DribbbleAPI::ShotLikeCreated
|
215
|
-
@shot.like!
|
216
|
-
end
|
217
|
-
|
218
|
-
it 'return true' do
|
219
|
-
expect(subject).to be_truthy
|
220
|
-
end
|
221
|
-
end
|
222
|
-
|
223
|
-
describe 'on #unlike!' do
|
224
|
-
subject do
|
225
|
-
stub_dribbble :delete, '/shots/471756/like', DribbbleAPI::ShotLikeDeleted
|
226
|
-
@shot.unlike!
|
227
|
-
end
|
228
|
-
|
229
|
-
it 'return true' do
|
230
|
-
expect(subject).to be_truthy
|
231
|
-
end
|
232
|
-
end
|
233
|
-
|
234
|
-
describe 'on #projects' do
|
235
|
-
subject do
|
236
|
-
stub_dribbble :get, '/shots/471756/projects', DribbbleAPI::ProjectsSuccess
|
237
|
-
@shot.projects
|
238
|
-
end
|
239
|
-
|
240
|
-
it 'return a list of project' do
|
241
|
-
expect(subject.first).to be_a Dribbble::Project
|
242
|
-
end
|
243
|
-
end
|
244
|
-
|
245
|
-
describe 'on #rebounds' do
|
246
|
-
subject do
|
247
|
-
stub_dribbble :get, '/shots/471756/rebounds', DribbbleAPI::ShotsSuccess
|
248
|
-
@shot.rebounds
|
249
|
-
end
|
250
|
-
|
251
|
-
it 'return a list of shots' do
|
252
|
-
expect(subject.first).to be_a Dribbble::Shot
|
253
|
-
end
|
254
|
-
end
|
255
83
|
end
|
256
84
|
|
257
85
|
describe 'on class' do
|
@@ -262,9 +90,9 @@ describe Dribbble::Shot do
|
|
262
90
|
title: 'Shot title',
|
263
91
|
desciption: 'Shot description',
|
264
92
|
image: File.new("#{Dir.pwd}/spec/support/fixtures/image.jpg", 'rb'),
|
265
|
-
tags: %w
|
93
|
+
tags: %w[tag1 tag2]
|
266
94
|
}
|
267
|
-
|
95
|
+
described_class.create 'valid_token', shot
|
268
96
|
end
|
269
97
|
|
270
98
|
it 'create the shot' do
|
@@ -277,14 +105,14 @@ describe Dribbble::Shot do
|
|
277
105
|
subject do
|
278
106
|
stub_dribbble :get, '/shots/471756', DribbbleAPI::ShotSuccess
|
279
107
|
stub_dribbble :put, '/shots/471756', DribbbleAPI::ShotUpdated
|
280
|
-
|
108
|
+
data = {
|
281
109
|
name: 'Shot title',
|
282
110
|
description: 'Shot description'
|
283
111
|
}
|
284
|
-
|
112
|
+
described_class.update 'valid_token', 471_756, data
|
285
113
|
end
|
286
114
|
|
287
|
-
it 'update
|
115
|
+
it 'update data' do
|
288
116
|
expect(subject.title).to eq('Shot title')
|
289
117
|
end
|
290
118
|
end
|
@@ -293,7 +121,7 @@ describe Dribbble::Shot do
|
|
293
121
|
subject do
|
294
122
|
stub_dribbble :get, '/shots/471756', DribbbleAPI::ShotSuccess
|
295
123
|
stub_dribbble :delete, '/shots/471756', DribbbleAPI::ShotDeleted
|
296
|
-
|
124
|
+
described_class.delete 'valid_token', 471_756
|
297
125
|
end
|
298
126
|
|
299
127
|
it 'return true' do
|
@@ -304,24 +132,13 @@ describe Dribbble::Shot do
|
|
304
132
|
describe 'on #find' do
|
305
133
|
subject do
|
306
134
|
stub_dribbble :get, '/shots/471756', DribbbleAPI::ShotSuccess
|
307
|
-
|
135
|
+
described_class.find 'valid_token', 471_756
|
308
136
|
end
|
309
137
|
|
310
138
|
it 'return a shot' do
|
311
|
-
expect(subject).to be_a
|
139
|
+
expect(subject).to be_a described_class
|
312
140
|
expect(subject.id).to eq(471_756)
|
313
141
|
end
|
314
142
|
end
|
315
|
-
|
316
|
-
describe 'on #all' do
|
317
|
-
subject do
|
318
|
-
stub_dribbble :get, '/shots', DribbbleAPI::ShotsSuccess
|
319
|
-
Dribbble::Shot.all 'valid_token'
|
320
|
-
end
|
321
|
-
|
322
|
-
it 'return a shot' do
|
323
|
-
expect(subject.first).to be_a Dribbble::Shot
|
324
|
-
end
|
325
|
-
end
|
326
143
|
end
|
327
144
|
end
|