discourse-rewind/spec/requests/rewinds_controller_spec.rb

48 lines
1.2 KiB
Ruby
Raw Normal View History

2025-01-13 17:00:32 +01:00
# frozen_string_literal: true
RSpec.describe DiscourseRewind::RewindsController do
before { SiteSetting.discourse_rewind_enabled = true }
describe "#show" do
2025-10-09 14:53:37 +02:00
fab!(:current_user, :user)
2025-01-13 17:00:32 +01:00
before { sign_in(current_user) }
context "when out of valid month" do
before { freeze_time DateTime.parse("2022-11-24") }
it "returns 404" do
get "/rewinds.json"
expect(response.status).to eq(404)
expect(response.parsed_body["errors"].first).to eq(I18n.t("discourse_rewind.invalid_year"))
2025-01-13 17:00:32 +01:00
end
end
context "when in valid month" do
before { freeze_time DateTime.parse("2022-12-24") }
it "returns 200" do
get "/rewinds.json"
expect(response.status).to eq(200)
end
context "when reports are not found or error" do
before do
DiscourseRewind::Action::TopWords.stubs(:call).raises(StandardError.new("Some error"))
end
it "returns 404 with message" do
get "/rewinds.json"
expect(response.status).to eq(404)
expect(response.parsed_body["errors"].first).to eq(
I18n.t("discourse_rewind.report_failed"),
)
end
end
2025-01-13 17:00:32 +01:00
end
end
end