0
0
Fork 0

Replace logo, fix #57 - delete/unreblog/unfavourite API, fix #45 - app

registration API
This commit is contained in:
Eugen Rochko 2016-09-26 23:55:21 +02:00
parent 210362e665
commit 7e14eefc81
27 changed files with 216 additions and 136 deletions

View file

@ -0,0 +1,26 @@
require 'rails_helper'
RSpec.describe Api::AppsController, type: :controller do
render_views
describe 'POST #create' do
before do
post :create, params: { name: 'Test app', redirect_uri: 'urn:ietf:wg:oauth:2.0:oob' }
end
it 'returns http success' do
expect(response).to have_http_status(:success)
end
it 'creates an OAuth app' do
expect(Doorkeeper::Application.find_by(name: 'Test app')).to_not be nil
end
it 'returns client ID and client secret' do
json = body_as_json
expect(json[:client_id]).to_not be_blank
expect(json[:client_secret]).to_not be_blank
end
end
end

View file

@ -57,6 +57,22 @@ RSpec.describe Api::StatusesController, type: :controller do
end
end
describe 'DELETE #destroy' do
let(:status) { Fabricate(:status, account: user.account) }
before do
post :destroy, params: { id: status.id }
end
it 'returns http success' do
expect(response).to have_http_status(:success)
end
it 'removes the status' do
expect(Status.find_by(id: status.id)).to be nil
end
end
describe 'POST #reblog' do
let(:status) { Fabricate(:status, account: user.account) }
@ -85,6 +101,27 @@ RSpec.describe Api::StatusesController, type: :controller do
end
end
describe 'POST #unreblog' do
let(:status) { Fabricate(:status, account: user.account) }
before do
post :reblog, params: { id: status.id }
post :unreblog, params: { id: status.id }
end
it 'returns http success' do
expect(response).to have_http_status(:success)
end
it 'updates the reblogs count' do
expect(status.reblogs_count).to eq 0
end
it 'updates the reblogged attribute' do
expect(user.account.reblogged?(status)).to be false
end
end
describe 'POST #favourite' do
let(:status) { Fabricate(:status, account: user.account) }
@ -112,4 +149,25 @@ RSpec.describe Api::StatusesController, type: :controller do
expect(hash_body[:favourited]).to be true
end
end
describe 'POST #unfavourite' do
let(:status) { Fabricate(:status, account: user.account) }
before do
post :favourite, params: { id: status.id }
post :unfavourite, params: { id: status.id }
end
it 'returns http success' do
expect(response).to have_http_status(:success)
end
it 'updates the favourites count' do
expect(status.favourites_count).to eq 0
end
it 'updates the favourited attribute' do
expect(user.account.favourited?(status)).to be false
end
end
end