spec/server/commands/base_spec.rb in yard-0.9.16 vs spec/server/commands/base_spec.rb in yard-0.9.17
- old
+ new
@@ -1,91 +1,91 @@
-# frozen_string_literal: true
-
-class MyProcCommand < Base
- def initialize(&block)
- self.class.send(:undef_method, :run)
- self.class.send(:define_method, :run, &block)
- end
-end
-
-class MyCacheCommand < Base
- def run; cache 'foo' end
-end
-
-RSpec.describe YARD::Server::Commands::Base do
- describe "#cache" do
- before do
- @command = MyCacheCommand.new(:adapter => mock_adapter, :caching => true)
- @command.request = mock_request(nil)
- end
-
- it "does not cache if caching == false" do
- expect(File).not_to receive(:open)
- @command.caching = false
- @command.run
- end
-
- it "requires document root to cache" do
- expect(File).not_to receive(:open)
- @command.adapter.document_root = nil
- @command.run
- end
-
- it "caches to path/to/file.html and create directories" do
- expect(FileUtils).to receive(:mkdir_p).with('/public/path/to')
- expect(File).to receive(:open).with('/public/path/to/file.html', anything)
- @command.request.path_info = '/path/to/file.html'
- @command.run
- end
- end
-
- describe "#redirect" do
- it "returns a valid redirection" do
- cmd = MyProcCommand.new { redirect '/foo' }
- expect(cmd.call(mock_request('/foo'))).to eq(
- [302, {"Content-Type" => "text/html", "Location" => "/foo"}, [""]]
- )
- end
- end
-
- describe "#call" do
- it "handles a NotFoundError and use message as body" do
- cmd = MyProcCommand.new { raise NotFoundError, "hello world" }
- s, _, b = *cmd.call(mock_request('/foo'))
- expect(s).to eq 404
- expect(b).to eq ["hello world"]
- end
-
- it "does not use message as body if not provided in NotFoundError" do
- cmd = MyProcCommand.new { raise NotFoundError }
- s, _, b = *cmd.call(mock_request('/foo'))
- expect(s).to eq 404
- expect(b).to eq ["Not found: /foo"]
- end
-
- it "handles 404 status code from #run" do
- cmd = MyProcCommand.new { self.status = 404 }
- s, _, b = *cmd.call(mock_request('/foo'))
- expect(s).to eq 404
- expect(b).to eq ["Not found: /foo"]
- end
-
- it "does not override body if status is 404 and body is defined" do
- cmd = MyProcCommand.new { self.body = "foo"; self.status = 404 }
- s, _, b = *cmd.call(mock_request('/bar'))
- expect(s).to eq 404
- expect(b).to eq ['foo']
- end
-
- it "handles body as Array" do
- cmd = MyProcCommand.new { self.body = ['a', 'b', 'c'] }
- _, _, b = *cmd.call(mock_request('/foo'))
- expect(b).to eq %w(a b c)
- end
-
- it "allows headers to be defined" do
- cmd = MyProcCommand.new { headers['Foo'] = 'BAR' }
- _, h, = *cmd.call(mock_request('/foo'))
- expect(h['Foo']).to eq 'BAR'
- end
- end
-end
+# frozen_string_literal: true
+
+class MyProcCommand < Base
+ def initialize(&block)
+ self.class.send(:undef_method, :run)
+ self.class.send(:define_method, :run, &block)
+ end
+end
+
+class MyCacheCommand < Base
+ def run; cache 'foo' end
+end
+
+RSpec.describe YARD::Server::Commands::Base do
+ describe "#cache" do
+ before do
+ @command = MyCacheCommand.new(:adapter => mock_adapter, :caching => true)
+ @command.request = mock_request(nil)
+ end
+
+ it "does not cache if caching == false" do
+ expect(File).not_to receive(:open)
+ @command.caching = false
+ @command.run
+ end
+
+ it "requires document root to cache" do
+ expect(File).not_to receive(:open)
+ @command.adapter.document_root = nil
+ @command.run
+ end
+
+ it "caches to path/to/file.html and create directories" do
+ expect(FileUtils).to receive(:mkdir_p).with('/public/path/to')
+ expect(File).to receive(:open).with('/public/path/to/file.html', anything)
+ @command.request.path_info = '/path/to/file.html'
+ @command.run
+ end
+ end
+
+ describe "#redirect" do
+ it "returns a valid redirection" do
+ cmd = MyProcCommand.new { redirect '/foo' }
+ expect(cmd.call(mock_request('/foo'))).to eq(
+ [302, {"Content-Type" => "text/html", "Location" => "/foo"}, [""]]
+ )
+ end
+ end
+
+ describe "#call" do
+ it "handles a NotFoundError and use message as body" do
+ cmd = MyProcCommand.new { raise NotFoundError, "hello world" }
+ s, _, b = *cmd.call(mock_request('/foo'))
+ expect(s).to eq 404
+ expect(b).to eq ["hello world"]
+ end
+
+ it "does not use message as body if not provided in NotFoundError" do
+ cmd = MyProcCommand.new { raise NotFoundError }
+ s, _, b = *cmd.call(mock_request('/foo'))
+ expect(s).to eq 404
+ expect(b).to eq ["Not found: /foo"]
+ end
+
+ it "handles 404 status code from #run" do
+ cmd = MyProcCommand.new { self.status = 404 }
+ s, _, b = *cmd.call(mock_request('/foo'))
+ expect(s).to eq 404
+ expect(b).to eq ["Not found: /foo"]
+ end
+
+ it "does not override body if status is 404 and body is defined" do
+ cmd = MyProcCommand.new { self.body = "foo"; self.status = 404 }
+ s, _, b = *cmd.call(mock_request('/bar'))
+ expect(s).to eq 404
+ expect(b).to eq ['foo']
+ end
+
+ it "handles body as Array" do
+ cmd = MyProcCommand.new { self.body = ['a', 'b', 'c'] }
+ _, _, b = *cmd.call(mock_request('/foo'))
+ expect(b).to eq %w(a b c)
+ end
+
+ it "allows headers to be defined" do
+ cmd = MyProcCommand.new { headers['Foo'] = 'BAR' }
+ _, h, = *cmd.call(mock_request('/foo'))
+ expect(h['Foo']).to eq 'BAR'
+ end
+ end
+end