# frozen_string_literal: true require 'rails_helper' RSpec.describe 'Intents' do let(:user) { Fabricate(:user) } before { sign_in user, scope: :user } describe 'GET /intent' do subject { response } before { get intent_path(uri: uri) } context 'when schema is web+mastodon' do context 'when host is follow' do let(:uri) { 'web+mastodon://follow?uri=test' } it { is_expected.to redirect_to authorize_interaction_path(uri: 'test') } end context 'when host is share' do let(:uri) { 'web+mastodon://share?text=test' } it { is_expected.to redirect_to share_path(text: 'test') } end context 'when host is none of the above' do let(:uri) { 'web+mastodon://test' } it { is_expected.to have_http_status 404 } end end context 'when schema is not web+mastodon' do let(:uri) { 'api+mastodon://test.com' } it { is_expected.to have_http_status 404 } end context 'when uri param is blank' do let(:uri) { '' } it { is_expected.to have_http_status 404 } end context 'when uri is invalid' do let(:uri) { 'invalid uri://test.com' } it { is_expected.to have_http_status 404 } end end end