require "spec_helper" RSpec.describe AuthenticatedController, type: :controller do before do Mime::Type.register "application/vnd.api+json", :api_json end describe "GET index" do context "when engine is embedded" do before { BookingSync::Engine.embedded! } it "renders autosubmitted form" do get :index expect(response.status).to eq(200) expect(response.body).to include("action='/auth/bookingsync' method='post'") expect(response.body).to include("") expect(response.header["Content-Type"]).to include("text/html") end end context "when engine is standalone" do before { BookingSync::Engine.standalone! } it "renders autosubmitted form" do get :index expect(response.status).to eq(200) expect(response.body).to include("action='/auth/bookingsync' method='post'") expect(response.body).to include("") end end end describe "XHR index" do context "when engine is embedded" do before { BookingSync::Engine.embedded! } it "renders autosubmitted form" do get :index, xhr: true expect(response.status).to eq(401) expect(response.body).to include("action='/auth/bookingsync' method='post'") expect(response.body).to include("") end end context "when engine is standalone" do before { BookingSync::Engine.standalone! } it "renders autosubmitted form" do get :index, xhr: true expect(response.status).to eq(401) expect(response.body).to include("action='/auth/bookingsync' method='post'") expect(response.body).to include("") end end end describe "API request" do it "returns 401 without response body" do get :index, format: :json expect(response.status).to eq(401) expect(response.body).to eq("") end context "with vnd.api+json content type" do it "returns 401 without response body" do request.headers["CONTENT_TYPE"] = "application/vnd.api+json" request.headers["ACCEPT"] = "application/vnd.api+json" get :index expect(response.status).to eq(401) expect(response.body).to eq("") end end end end