require 'rails_helper' RSpec.describe Services::RsAuthsController, type: :controller do let(:user) { create :user } before do allow_any_instance_of(AppCatalog::WebApp).to receive(:update_metadata).and_return(true) allow_any_instance_of(RemoteStorageAuthorization).to receive(:remove_token_expiry_job).and_return(nil) allow_any_instance_of(Flipper).to receive(:enabled?).and_return(true) end describe "GET /services/storage/rs_auths/:id/launch_app" do context "when user is signed in" do before do sign_in user end context "token exists" do before do @auth = user.remote_storage_authorizations.create!( permissions: %w(documents), client_id: "app.example.com", redirect_uri: "https://app.example.com", expire_at: 2.days.from_now ) get :launch_app, params: { id: @auth.id } end after do @auth.destroy end it "redirects to the given URL with the correct RS URL fragment params" do launch_url = "https://app.example.com#remotestorage=#{user.address}" expect(response).to redirect_to(launch_url) end end end end end