You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
# frozen_string_literal: true |
|
|
|
require 'rails_helper' |
|
|
|
RSpec.describe 'API OEmbed' do |
|
describe 'GET /api/oembed' do |
|
before { host! Rails.configuration.x.local_domain } |
|
|
|
context 'when status is public' do |
|
let(:status) { Fabricate(:status, visibility: :public) } |
|
|
|
it 'returns success with private cache control headers' do |
|
get '/api/oembed', params: { url: short_account_status_url(status.account, status) } |
|
|
|
expect(response) |
|
.to have_http_status(200) |
|
expect(response.content_type) |
|
.to start_with('application/json') |
|
expect(response.headers['Cache-Control']) |
|
.to include('private, no-store') |
|
end |
|
end |
|
|
|
context 'when status is not public' do |
|
let(:status) { Fabricate(:status, visibility: :direct) } |
|
|
|
it 'returns not found' do |
|
get '/api/oembed', params: { url: short_account_status_url(status.account, status) } |
|
|
|
expect(response) |
|
.to have_http_status(404) |
|
expect(response.content_type) |
|
.to start_with('application/json') |
|
end |
|
end |
|
end |
|
end
|
|
|