Files

46 lines
1.4 KiB
Ruby
Raw Permalink Normal View History

2019-05-13 10:16:50 +08:00
# frozen_string_literal: true
require "rails_helper"
2019-04-18 17:52:59 -04:00
describe AdPlugin::HouseAdSettingsController do
let(:admin) { Fabricate(:admin) }
before { AdPlugin::HouseAd.create(name: "Banner", html: "<p>Banner</p>") }
2019-04-18 17:52:59 -04:00
describe "update" do
let(:valid_params) { { value: "Banner" } }
2019-04-18 17:52:59 -04:00
it "error if not logged in" do
put "/admin/plugins/pluginad/house_settings/topic_list_top.json", params: valid_params
2019-04-18 17:52:59 -04:00
expect(response.status).to eq(404)
end
it "error if not staff" do
sign_in(Fabricate(:user))
put "/admin/plugins/pluginad/house_settings/topic_list_top.json", params: valid_params
2019-04-18 17:52:59 -04:00
expect(response.status).to eq(404)
end
2022-10-03 20:36:57 +01:00
context "when logged in as admin" do
before { sign_in(admin) }
2019-04-18 17:52:59 -04:00
it "changes the setting" do
put "/admin/plugins/pluginad/house_settings/topic_list_top.json", params: valid_params
2019-04-18 17:52:59 -04:00
expect(response.status).to eq(200)
expect(AdPlugin::HouseAdSetting.all[:topic_list_top]).to eq(valid_params[:value])
end
it "errors on invalid setting name" do
put "/admin/plugins/pluginad/house_settings/nope-nope.json", params: valid_params
2019-04-18 17:52:59 -04:00
expect(response.status).to eq(404)
end
it "errors on invalid setting value" do
put "/admin/plugins/pluginad/house_settings/topic_list_top.json",
params: valid_params.merge(value: "Banner|<script>")
2019-04-18 17:52:59 -04:00
expect(response.status).to eq(400)
end
end
end
end