discourse/plugins/chat/spec/requests/admin/export_controller_spec.rb

41 lines
1.1 KiB
Ruby

# frozen_string_literal: true
require "rails_helper"
RSpec.describe Chat::ChatController do
describe "#export_messages" do
fab!(:user) { Fabricate(:user) }
fab!(:moderator) { Fabricate(:moderator) }
fab!(:admin) { Fabricate(:admin) }
it "enqueues the export job and logs into staff actions" do
sign_in(admin)
post "/chat/admin/export/messages"
expect(response.status).to eq(204)
expect(Jobs::ExportCsvFile.jobs.size).to eq(1)
job_data = Jobs::ExportCsvFile.jobs.first["args"].first
expect(job_data["entity"]).to eq("chat_message")
expect(job_data["user_id"]).to eq(admin.id)
staff_log_entry = UserHistory.last
expect(staff_log_entry.acting_user_id).to eq(admin.id)
expect(staff_log_entry.subject).to eq("chat_message")
end
it "regular users don't have access" do
sign_in(user)
post "/chat/admin/export/messages"
expect(response.status).to eq(403)
end
it "moderators don't have access" do
sign_in(moderator)
post "/chat/admin/export/messages"
expect(response.status).to eq(403)
end
end
end