mirror of
https://github.com/discourse/discourse.git
synced 2024-12-16 07:56:13 +08:00
c6f5df4caa
* This exposes the token in the Sidekiq dashboard which can be viewed by an admin and defeats the purpose of using a token in the download backup email ink.
65 lines
1.5 KiB
Ruby
65 lines
1.5 KiB
Ruby
require 'rails_helper'
|
|
|
|
RSpec.describe Admin::BackupsController do
|
|
let(:admin) { Fabricate(:admin) }
|
|
|
|
before do
|
|
sign_in(admin)
|
|
end
|
|
|
|
describe '#rollback' do
|
|
it 'should rollback the restore' do
|
|
BackupRestore.expects(:rollback!)
|
|
|
|
post "/admin/backups/rollback.json"
|
|
|
|
expect(response).to be_success
|
|
end
|
|
|
|
it 'should not allow rollback via a GET request' do
|
|
expect { get "/admin/backups/rollback.json" }
|
|
.to raise_error(ActionController::RoutingError)
|
|
end
|
|
end
|
|
|
|
describe '#cancel' do
|
|
it "should cancel an backup" do
|
|
BackupRestore.expects(:cancel!)
|
|
|
|
delete "/admin/backups/cancel.json"
|
|
|
|
expect(response).to be_success
|
|
end
|
|
|
|
it 'should not allow cancel via a GET request' do
|
|
expect { get "/admin/backups/cancel.json" }
|
|
.to raise_error(ActionController::RoutingError)
|
|
end
|
|
end
|
|
|
|
describe "#email" do
|
|
let(:backup_filename) { "test.tar.gz" }
|
|
let(:backup) { Backup.new(backup_filename) }
|
|
|
|
it "enqueues email job" do
|
|
Backup.expects(:[]).with(backup_filename).returns(backup)
|
|
|
|
Jobs.expects(:enqueue).with(:download_backup_email,
|
|
user_id: admin.id,
|
|
backup_file_path: 'http://www.example.com/admin/backups/test.tar.gz'
|
|
)
|
|
|
|
put "/admin/backups/#{backup_filename}.json"
|
|
|
|
expect(response).to be_success
|
|
end
|
|
|
|
it "returns 404 when the backup does not exist" do
|
|
put "/admin/backups/#{backup_filename}.json"
|
|
|
|
expect(response).to be_not_found
|
|
end
|
|
|
|
end
|
|
end
|