78 lines
2.2 KiB
Ruby
78 lines
2.2 KiB
Ruby
# typed: false
|
|
require "rails_helper"
|
|
|
|
RSpec.describe LogEntriesController, type: :controller do
|
|
render_views
|
|
let(:user) { create(:user, :admin) }
|
|
|
|
context "when user is not signed in" do
|
|
describe "GET #index" do
|
|
it "redirects to sign in" do
|
|
get :index, params: { filter: "example.com/test" }
|
|
expect(response).to redirect_to(new_user_session_path)
|
|
end
|
|
end
|
|
|
|
describe "GET #stats" do
|
|
it "redirects to sign in" do
|
|
get :stats, params: { seconds: 3600 }
|
|
expect(response).to redirect_to(new_user_session_path)
|
|
end
|
|
end
|
|
|
|
describe "GET #show" do
|
|
it "redirects to sign in" do
|
|
get :show, params: { id: 1 }
|
|
expect(response).to redirect_to(new_user_session_path)
|
|
end
|
|
end
|
|
end
|
|
|
|
context "when user is signed in" do
|
|
before { sign_in user }
|
|
|
|
describe "GET #index" do
|
|
it "renders the index template with filtered log entries" do
|
|
get :index, params: { filter: "example.com/test" }
|
|
expect(response).to be_successful
|
|
expect(response).to render_template(:index)
|
|
end
|
|
|
|
it "shows existing log entries matching the filter" do
|
|
log_entry =
|
|
create(
|
|
:http_log_entry,
|
|
uri_host: "example.com",
|
|
uri_path: "/test",
|
|
uri_scheme: "https",
|
|
)
|
|
|
|
get :index, params: { filter: "example.com/test" }
|
|
|
|
expect(response).to be_successful
|
|
expect(assigns(:log_entries)).to include(log_entry)
|
|
end
|
|
end
|
|
|
|
describe "GET #stats" do
|
|
it "renders the stats template with time window data" do
|
|
get :stats, params: { seconds: 3600 }
|
|
expect(response).to be_successful
|
|
expect(response).to render_template(:stats)
|
|
expect(assigns(:time_window)).to eq 3600.seconds
|
|
end
|
|
end
|
|
|
|
describe "GET #show" do
|
|
let(:log_entry) { create(:http_log_entry) }
|
|
|
|
it "renders the show template with the requested log entry" do
|
|
get :show, params: { id: log_entry.id }
|
|
expect(response).to be_successful
|
|
expect(response).to render_template(:show)
|
|
expect(assigns(:log_entry)).to eq(log_entry)
|
|
end
|
|
end
|
|
end
|
|
end
|