Sha256: b1e5eda99ade07199fb0df1d99bf47033b8d9bb1d7f192cabea5919cb596badb

Contents?: true

Size: 1.7 KB

Versions: 6

Compression:

Stored size: 1.7 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, provider: :bookingsync
    end

    it "runs the account_authorized callback" do
      expect(controller).to receive(:account_authorized)
      get :create, 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, 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

6 entries across 6 versions & 1 rubygems

Version Path
bookingsync-engine-2.0.2 spec/controllers/sessions_controller_spec.rb
bookingsync-engine-2.0.1 spec/controllers/sessions_controller_spec.rb
bookingsync-engine-2.0.0 spec/controllers/sessions_controller_spec.rb
bookingsync-engine-1.1.0 spec/controllers/sessions_controller_spec.rb
bookingsync-engine-1.0.2 spec/controllers/sessions_controller_spec.rb
bookingsync-engine-1.0.1 spec/controllers/sessions_controller_spec.rb