81 lines
2.2 KiB
Ruby
81 lines
2.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "rails_helper"
|
|
|
|
describe StaticController, type: :controller do
|
|
describe "#about" do
|
|
subject { get :about }
|
|
|
|
before(:each) {
|
|
FactoryBot.create(:user, { confirmed_at: Time.current, answered_count: 1 })
|
|
FactoryBot.create(:user, { confirmed_at: Time.current, answered_count: 1 }).ban
|
|
FactoryBot.create(:user, { confirmed_at: Time.current })
|
|
FactoryBot.create(:user, { confirmed_at: Time.current }).ban
|
|
}
|
|
|
|
it "shows the correct user count" do
|
|
subject
|
|
expect(assigns(:users)).to eq(1)
|
|
end
|
|
end
|
|
|
|
describe "#linkfilter" do
|
|
context "called without an url" do
|
|
subject { get :linkfilter }
|
|
|
|
it 'should redirect to the root page' do
|
|
subject
|
|
expect(response).to redirect_to(root_path)
|
|
end
|
|
end
|
|
|
|
context "called with an url" do
|
|
subject { get :linkfilter, params: { url: 'https://google.com' } }
|
|
|
|
it 'should show the passed url' do
|
|
subject
|
|
expect(assigns(:link)).to eq('https://google.com')
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#webapp_manifest" do
|
|
subject { get :webapp_manifest }
|
|
|
|
before do
|
|
stub_const("APP_CONFIG", {
|
|
"site_name" => "Specspring",
|
|
"hostname" => "test.host",
|
|
"https" => false,
|
|
"items_per_page" => 5
|
|
})
|
|
end
|
|
|
|
it "returns a web app manifest" do
|
|
subject
|
|
expect(response).to have_http_status(200)
|
|
body = JSON.parse(response.body)
|
|
|
|
expect(body["name"]).to eq("Specspring")
|
|
expect(body["start_url"]).to eq("http://test.host/?source=pwa")
|
|
expect(body["scope"]).to eq("http://test.host/")
|
|
expect(body["theme_color"]).to eq("#5e35b1")
|
|
end
|
|
|
|
context "user with a theme is logged in" do
|
|
let(:user) { FactoryBot.create(:user) }
|
|
let!(:theme) { FactoryBot.create(:theme, user: user) }
|
|
|
|
before do
|
|
sign_in(user)
|
|
end
|
|
|
|
it "uses the user's theme" do
|
|
subject
|
|
expect(response).to have_http_status(200)
|
|
body = JSON.parse(response.body)
|
|
expect(body["theme_color"]).to eq("#8e8cd8")
|
|
end
|
|
end
|
|
end
|
|
end |