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)
|
2025-11-19 09:36:08 +10:00
|
|
|
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
|
2025-11-19 09:36:08 +10:00
|
|
|
|
|
|
|
|
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
|