require "rails_helper" RSpec.describe "Preview", type: :request do describe "GET /preview/title" do it "401 unless logged in" do sign_out get "/preview/title", params: { url: "example.com" } expect(response).to have_http_status(:unauthorized) end it "400 when url blank" do sign_in_as(create(:user)) get "/preview/title", params: { url: "" } expect(response).to have_http_status(:bad_request) end it "returns parsed title (stubbing URI.open)" do sign_in_as(create(:user)) fake_html = " Hello " allow(URI).to receive(:open).and_return(StringIO.new(fake_html)) get "/preview/title", params: { url: "example.com" } expect(response).to have_http_status(:ok) expect(json["title"]).to eq("Hello") end end end