]>
cat aescling's git repositories - mastodon.git/blob - spec/controllers/api/v1/statuses_controller_spec.rb
3 RSpec
.describe Api
::V1::StatusesController, type
: :controller do
6 let(:user) { Fabricate(:user, account
: Fabricate(:account, username
: 'alice')) }
7 let(:token) { double acceptable
?: true, resource_owner_id
: user
.id
}
10 stub_request(:post, "https://pubsubhubbub.superfeedr.com/").to_return(:status => 200, :body => "", :headers => {})
11 allow(controller
).to
receive(:doorkeeper_token) { token
}
14 describe
'GET #show' do
15 let(:status) { Fabricate(:status, account
: user
.account
) }
17 it
'returns http success' do
18 get
:show, params
: { id
: status
.id
}
19 expect(response
).to
have_http_status(:success)
23 describe
'GET #context' do
24 let(:status) { Fabricate(:status, account
: user
.account
) }
27 Fabricate(:status, account
: user
.account
, thread
: status
)
30 it
'returns http success' do
31 get
:context, params
: { id
: status
.id
}
32 expect(response
).to
have_http_status(:success)
36 describe
'GET #reblogged_by' do
37 let(:status) { Fabricate(:status, account
: user
.account
) }
40 post
:reblog, params
: { id
: status
.id
}
43 it
'returns http success' do
44 get
:reblogged_by, params
: { id
: status
.id
}
45 expect(response
).to
have_http_status(:success)
49 describe
'GET #favourited_by' do
50 let(:status) { Fabricate(:status, account
: user
.account
) }
53 post
:favourite, params
: { id
: status
.id
}
56 it
'returns http success' do
57 get
:favourited_by, params
: { id
: status
.id
}
58 expect(response
).to
have_http_status(:success)
62 describe
'POST #create' do
64 post
:create, params
: { status
: 'Hello world' }
67 it
'returns http success' do
68 expect(response
).to
have_http_status(:success)
72 describe
'DELETE #destroy' do
73 let(:status) { Fabricate(:status, account
: user
.account
) }
76 post
:destroy, params
: { id
: status
.id
}
79 it
'returns http success' do
80 expect(response
).to
have_http_status(:success)
83 it
'removes the status' do
84 expect(Status
.find_by(id
: status
.id
)).to be
nil
88 describe
'POST #reblog' do
89 let(:status) { Fabricate(:status, account
: user
.account
) }
92 post
:reblog, params
: { id
: status
.id
}
95 it
'returns http success' do
96 expect(response
).to
have_http_status(:success)
99 it
'updates the reblogs count' do
100 expect(status
.reblogs_count
).to eq
1
103 it
'updates the reblogged attribute' do
104 expect(user
.account
.reblogged
?(status
)).to be
true
107 it
'return json with updated attributes' do
108 hash_body
= body_as_json
110 expect(hash_body
[:reblog][:id]).to eq status
.id
111 expect(hash_body
[:reblog][:reblogs_count]).to eq
1
112 expect(hash_body
[:reblog][:reblogged]).to be
true
116 describe
'POST #unreblog' do
117 let(:status) { Fabricate(:status, account
: user
.account
) }
120 post
:reblog, params
: { id
: status
.id
}
121 post
:unreblog, params
: { id
: status
.id
}
124 it
'returns http success' do
125 expect(response
).to
have_http_status(:success)
128 it
'updates the reblogs count' do
129 expect(status
.reblogs_count
).to eq
0
132 it
'updates the reblogged attribute' do
133 expect(user
.account
.reblogged
?(status
)).to be
false
137 describe
'POST #favourite' do
138 let(:status) { Fabricate(:status, account
: user
.account
) }
141 post
:favourite, params
: { id
: status
.id
}
144 it
'returns http success' do
145 expect(response
).to
have_http_status(:success)
148 it
'updates the favourites count' do
149 expect(status
.favourites_count
).to eq
1
152 it
'updates the favourited attribute' do
153 expect(user
.account
.favourited
?(status
)).to be
true
156 it
'return json with updated attributes' do
157 hash_body
= body_as_json
159 expect(hash_body
[:id]).to eq status
.id
160 expect(hash_body
[:favourites_count]).to eq
1
161 expect(hash_body
[:favourited]).to be
true
165 describe
'POST #unfavourite' do
166 let(:status) { Fabricate(:status, account
: user
.account
) }
169 post
:favourite, params
: { id
: status
.id
}
170 post
:unfavourite, params
: { id
: status
.id
}
173 it
'returns http success' do
174 expect(response
).to
have_http_status(:success)
177 it
'updates the favourites count' do
178 expect(status
.favourites_count
).to eq
0
181 it
'updates the favourited attribute' do
182 expect(user
.account
.favourited
?(status
)).to be
false
This page took 0.149513 seconds and 4 git commands to generate.