40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
require 'rails_helper'
 | 
						|
 | 
						|
describe RemoteInteractionController, type: :controller do
 | 
						|
  render_views
 | 
						|
 | 
						|
  let(:status) { Fabricate(:status) }
 | 
						|
 | 
						|
  describe 'GET #new' do
 | 
						|
    it 'returns 200' do
 | 
						|
      get :new, params: { id: status.id }
 | 
						|
      expect(response).to have_http_status(200)
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  describe 'POST #create' do
 | 
						|
    context '@remote_follow is valid' do
 | 
						|
      it 'returns 302' do
 | 
						|
        allow_any_instance_of(RemoteFollow).to receive(:valid?) { true }
 | 
						|
        allow_any_instance_of(RemoteFollow).to receive(:addressable_template) do
 | 
						|
          Addressable::Template.new('https://hoge.com')
 | 
						|
        end
 | 
						|
 | 
						|
        post :create, params: { id: status.id, remote_follow: { acct: '@hoge' } }
 | 
						|
        expect(response).to have_http_status(302)
 | 
						|
      end
 | 
						|
    end
 | 
						|
 | 
						|
    context '@remote_follow is invalid' do
 | 
						|
      it 'returns 200' do
 | 
						|
        allow_any_instance_of(RemoteFollow).to receive(:valid?) { false }
 | 
						|
        post :create, params: { id: status.id, remote_follow: { acct: '@hoge' } }
 | 
						|
 | 
						|
        expect(response).to have_http_status(200)
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |