Sha256: 4bc84aa7cc5b1d98201e4f8d2238840a907290c88afc857586173d79d8a0bfe9

Contents?: true

Size: 1.73 KB

Versions: 3

Compression:

Stored size: 1.73 KB

Contents

require 'spec_helper'

RSpec.describe SessionsController, type: :controller do
  routes { BookingSync::Engine.routes }

  describe "GET create" do
    before do
      request.env["omniauth.auth"] = OmniAuth.config.mock_auth[:bookingsync]
    end

    it "loads or creates account from omniauth auth" do
      expect(Account).to receive(:from_omniauth).and_call_original
      get :create, params: { provider: :bookingsync }
    end

    it "runs the account_authorized callback" do
      expect(controller).to receive(:account_authorized)
      get :create, params: { provider: :bookingsync }
    end

    it "redirects to after_bookingsync_sign_in_path" do
      expect(controller).to receive(:after_bookingsync_sign_in_path).and_return("/admin")
      get :create, params: { provider: :bookingsync }
      expect(response).to redirect_to("/admin")
    end
  end

  describe "GET destroy" do
    it "clears authorization" do
      expect(controller).to receive(:clear_authorization!)
      get :destroy
    end

    it "redirects to after_bookingsync_sign_out_path" do
      expect(controller).to receive(:after_bookingsync_sign_out_path).and_return("/signed_out")
      get :destroy
      expect(response).to redirect_to("/signed_out")
    end
  end

  describe "GET failure" do
    context "when Engine is embedded" do
      before { BookingSync::Engine.embedded! }
      it "clears X-Frame-Options" do
        get :failure
        expect(response.headers["X-Frame-Options"]).to eql("")
      end
    end

    context "when Engine is standalone" do
      before { BookingSync::Engine.standalone! }

      it "leaves X-Frame-Options without change" do
        get :failure
        expect(response.headers["X-Frame-Options"]).to eql("SAMEORIGIN")
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bookingsync-engine-3.0.2 spec/controllers/sessions_controller_spec.rb
bookingsync-engine-3.0.1 spec/controllers/sessions_controller_spec.rb
bookingsync-engine-3.0.0 spec/controllers/sessions_controller_spec.rb