mirror of
https://github.com/discourse/discourse.git
synced 2025-03-05 21:57:25 +08:00
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
|