mirror of
https://github.com/discourse/discourse.git
synced 2025-05-24 03:21:14 +08:00
Initial release of Discourse
This commit is contained in:
57
spec/controllers/admin/export_controller_spec.rb
Normal file
57
spec/controllers/admin/export_controller_spec.rb
Normal file
@ -0,0 +1,57 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe Admin::ExportController do
|
||||
it "is a subclass of AdminController" do
|
||||
(Admin::ExportController < Admin::AdminController).should be_true
|
||||
end
|
||||
|
||||
context 'while logged in as an admin' do
|
||||
before do
|
||||
@user = log_in(:admin)
|
||||
end
|
||||
|
||||
describe "create" do
|
||||
it "should start an export job" do
|
||||
Jobs::Exporter.any_instance.expects(:execute).returns(true)
|
||||
xhr :post, :create
|
||||
end
|
||||
|
||||
it "should return a job id" do
|
||||
job_id = 'abc123'
|
||||
Jobs.stubs(:enqueue).returns( job_id )
|
||||
xhr :post, :create
|
||||
json = JSON.parse(response.body)
|
||||
json.should have_key('job_id')
|
||||
json['job_id'].should == job_id
|
||||
end
|
||||
|
||||
shared_examples_for "when export should not be started" do
|
||||
it "should return an error" do
|
||||
xhr :post, :create
|
||||
json = JSON.parse(response.body)
|
||||
json['failed'].should_not be_nil
|
||||
json['message'].should_not be_nil
|
||||
end
|
||||
|
||||
it "should not start an export job" do
|
||||
Jobs::Exporter.any_instance.expects(:start_export).never
|
||||
xhr :post, :create
|
||||
end
|
||||
end
|
||||
|
||||
context "when an export is already running" do
|
||||
before do
|
||||
Export.stubs(:is_export_running?).returns( true )
|
||||
end
|
||||
it_should_behave_like "when export should not be started"
|
||||
end
|
||||
|
||||
context "when an import is currently running" do
|
||||
before do
|
||||
Import.stubs(:is_import_running?).returns( true )
|
||||
end
|
||||
it_should_behave_like "when export should not be started"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user