このコミットが含まれているのは:
@@ -80,6 +80,26 @@ RSpec.describe 'TheatreComments', type: :request do
|
||||
expect(response).to have_http_status(:ok)
|
||||
expect(response.parsed_body.map { |row| row['no'] }).to eq([3, 2, 1])
|
||||
end
|
||||
|
||||
it '削除済みコメントは deleted として返し、本文を隠す' do
|
||||
comment_2.discard!
|
||||
|
||||
get "/theatres/#{theatre.id}/comments", params: { no_gt: 1 }
|
||||
|
||||
expect(response).to have_http_status(:ok)
|
||||
|
||||
deleted_comment = response.parsed_body.find { _1['no'] == 2 }
|
||||
expect(deleted_comment).to include(
|
||||
'deleted' => true,
|
||||
'content' => nil
|
||||
)
|
||||
|
||||
visible_comment = response.parsed_body.find { _1['no'] == 3 }
|
||||
expect(visible_comment).to include(
|
||||
'deleted' => false,
|
||||
'content' => 'third comment'
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'POST /theatres/:theatre_id/comments' do
|
||||
|
||||
@@ -27,5 +27,12 @@ RSpec.describe 'TheatreProgrammes', type: :request do
|
||||
expect(json.map { _1.dig('post', 'title') }).to eq(['second', 'first'])
|
||||
expect(json.first['post']).to include('id' => post_2.id, 'url' => post_2.url)
|
||||
end
|
||||
|
||||
it 'filters programmes by position_gt' do
|
||||
get "/theatres/#{theatre.id}/programmes", params: { position_gt: 1 }
|
||||
|
||||
expect(response).to have_http_status(:ok)
|
||||
expect(json.map { _1['position'] }).to eq([2])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -361,6 +361,24 @@ RSpec.describe 'Theatres API', type: :request do
|
||||
end
|
||||
end
|
||||
|
||||
it 'returns 401 when not logged in' do
|
||||
sign_out
|
||||
|
||||
expect { do_request }.not_to change(TheatreSkipVote, :count)
|
||||
|
||||
expect(response).to have_http_status(:unauthorized)
|
||||
end
|
||||
|
||||
it 'returns 422 when post_id is invalid' do
|
||||
sign_in_as(member)
|
||||
|
||||
expect {
|
||||
put "/theatres/#{theatre.id}/skip_vote", params: { post_id: 'invalid' }
|
||||
}.not_to change(TheatreSkipVote, :count)
|
||||
|
||||
expect(response).to have_http_status(:unprocessable_entity)
|
||||
end
|
||||
|
||||
it 'records a vote and returns the current vote status before majority' do
|
||||
sign_in_as(member)
|
||||
|
||||
@@ -391,7 +409,7 @@ RSpec.describe 'Theatres API', type: :request do
|
||||
|
||||
expect(response).to have_http_status(:ok)
|
||||
expect(json['skipped']).to eq(true)
|
||||
expect(json['post_id']).to eq(second_niconico_post.id)
|
||||
expect([second_niconico_post.id, youtube_post.id]).to include(json['post_id'])
|
||||
|
||||
event = TheatreSkipEvent.last
|
||||
expect(event.post).to eq(niconico_post)
|
||||
|
||||
新しい課題から参照
ユーザをブロックする