Initial commit
This commit is contained in:
40
spec/controllers/reports_downloads_controller_spec.rb
Normal file
40
spec/controllers/reports_downloads_controller_spec.rb
Normal file
@@ -0,0 +1,40 @@
|
||||
require "rails_helper"
|
||||
|
||||
RSpec.describe ReportDownloadsController, type: :controller do
|
||||
render_views
|
||||
|
||||
let(:current_user) { create(:user) }
|
||||
let(:project) { create(:project, :discovery_client, account: current_user.primary_account) }
|
||||
|
||||
before do
|
||||
sign_in current_user
|
||||
end
|
||||
|
||||
describe "#create" do
|
||||
it "Enques zip file generation job" do
|
||||
create_list(:download, 4, project_id: project.id, name: "#{project.name.parameterize}_appearance-releases")
|
||||
|
||||
expect {
|
||||
post :create, params: { project_id: project.id }, format: :js
|
||||
}.to have_enqueued_job(GenerateReportsZipJob)
|
||||
end
|
||||
|
||||
it "creates a download record with 'not_started' status" do
|
||||
create_list(:download, 4, project_id: project.id, name: "#{project.name.parameterize}_appearance-releases")
|
||||
|
||||
expect {
|
||||
post :create, params: { project_id: project.id }, format: :js
|
||||
}.to change(Download, :count).by(1)
|
||||
|
||||
expect(Download.last.status).to eq('not_started')
|
||||
end
|
||||
|
||||
it "shows a notification to user" do
|
||||
allow(ProjectsChannel).to receive(:broadcast_download_generation_update).with(be_kind_of(Download), I18n.t("report_downloads.download.pending"))
|
||||
|
||||
post :create, params: { project_id: project.id }, format: :js
|
||||
|
||||
expect(ProjectsChannel).to have_received(:broadcast_download_generation_update).with(be_kind_of(Download), I18n.t("report_downloads.download.pending"))
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user