mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: use hijack for processing bulk invites (#7679)
FIX: do not store bulk invite CSV file on server
This commit is contained in:
2
spec/fixtures/csv/bulk_invite.csv
vendored
2
spec/fixtures/csv/bulk_invite.csv
vendored
@@ -1,2 +0,0 @@
|
||||
test2@discourse.org
|
||||
test@discourse.org,GROUP1;group2,999
|
||||
|
@@ -10,30 +10,22 @@ describe Jobs::BulkInvite do
|
||||
fab!(:group2) { Fabricate(:group, name: 'group2') }
|
||||
fab!(:topic) { Fabricate(:topic, id: 999) }
|
||||
let(:email) { "test@discourse.org" }
|
||||
let(:basename) { "bulk_invite.csv" }
|
||||
let(:filename) { "#{Invite.base_directory}/#{basename}" }
|
||||
let(:invites) { [{ email: 'test2@discourse.org' }, { email: 'test@discourse.org', groups: 'GROUP1;group2', topic_id: 999 }] }
|
||||
|
||||
before do
|
||||
Invite.create_csv(
|
||||
fixture_file_upload("#{Rails.root}/spec/fixtures/csv/#{basename}"),
|
||||
"bulk_invite"
|
||||
)
|
||||
end
|
||||
|
||||
it 'raises an error when the filename is missing' do
|
||||
it 'raises an error when the invites array is missing' do
|
||||
expect { Jobs::BulkInvite.new.execute(current_user_id: user.id) }
|
||||
.to raise_error(Discourse::InvalidParameters, /filename/)
|
||||
.to raise_error(Discourse::InvalidParameters, /invites/)
|
||||
end
|
||||
|
||||
it 'raises an error when current_user_id is not valid' do
|
||||
expect { Jobs::BulkInvite.new.execute(filename: filename) }
|
||||
expect { Jobs::BulkInvite.new.execute(invites: invites) }
|
||||
.to raise_error(Discourse::InvalidParameters, /current_user_id/)
|
||||
end
|
||||
|
||||
it 'creates the right invites' do
|
||||
described_class.new.execute(
|
||||
current_user_id: admin.id,
|
||||
filename: basename,
|
||||
invites: invites
|
||||
)
|
||||
|
||||
invite = Invite.last
|
||||
@@ -53,7 +45,7 @@ describe Jobs::BulkInvite do
|
||||
|
||||
described_class.new.execute(
|
||||
current_user_id: admin.id,
|
||||
filename: basename,
|
||||
invites: invites
|
||||
)
|
||||
|
||||
invite = Invite.last
|
||||
@@ -70,7 +62,7 @@ describe Jobs::BulkInvite do
|
||||
|
||||
described_class.new.execute(
|
||||
current_user_id: user.id,
|
||||
filename: basename
|
||||
invites: invites
|
||||
)
|
||||
|
||||
invite = Invite.last
|
||||
@@ -90,7 +82,7 @@ describe Jobs::BulkInvite do
|
||||
expect do
|
||||
described_class.new.execute(
|
||||
current_user_id: admin.id,
|
||||
filename: basename
|
||||
invites: invites
|
||||
)
|
||||
end.to change { Invite.count }.by(1)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user