nginx_test_helper 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/nginx_test_helper/rspec_utils.rb +31 -10
- data/lib/nginx_test_helper/version.rb +1 -1
- data/lib/nginx_test_helper.rb +6 -2
- data/nginx_test_helper.gemspec +1 -1
- data/spec/nginx_test_helper/command_line_tool_spec.rb +14 -14
- data/spec/nginx_test_helper/config_spec.rb +26 -26
- data/spec/nginx_test_helper/env_methods_spec.rb +19 -19
- data/spec/nginx_test_helper/rspec_utils_spec.rb +21 -21
- data/spec/nginx_test_helper_spec.rb +88 -85
- data/spec/spec_helper.rb +1 -1
- metadata +17 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78a4974a32a0e57c0f6dcdf50600c34045085665
|
4
|
+
data.tar.gz: 012ca812a9689d695f1e39761aee4bd595f74eb3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 08f2d07609dea934f5013edfc80bf259402fda0e67170913b4b4a73a7ec7cecaf17b8fc333f2083b43562f15156b86e7ed96af7f52e2316122f2d2956780db10
|
7
|
+
data.tar.gz: 5d61fcb9ce455966da624bcb0833a4bd99c5febffe54b25d5a66a08e634528eecf1b6f3865f8d60ec5db08d28e367cbd6273d79aedba62b08f874e9350096966
|
@@ -10,6 +10,7 @@ if defined?(RSpec)
|
|
10
10
|
end
|
11
11
|
|
12
12
|
config.around(:each) do |ex|
|
13
|
+
Thread.current[:current_example] = ex
|
13
14
|
logs = Dir[File.join(NginxTestHelper.nginx_tests_tmp_dir, "logs", "**")]
|
14
15
|
error_log_pre = logs.map{|log| File.readlines(log)}.flatten
|
15
16
|
|
@@ -29,12 +30,22 @@ if defined?(RSpec)
|
|
29
30
|
(actual >= min) && (actual <= max)
|
30
31
|
end
|
31
32
|
|
32
|
-
|
33
|
-
|
34
|
-
|
33
|
+
if RSpec::Core::Version::STRING < "3.0.0"
|
34
|
+
failure_message_for_should do |actual|
|
35
|
+
"expected that #{actual} would be in the interval from #{min} to #{max}"
|
36
|
+
end
|
37
|
+
|
38
|
+
failure_message_for_should_not do |actual|
|
39
|
+
"expected that #{actual} would not be in the interval from #{min} to #{max}"
|
40
|
+
end
|
41
|
+
else
|
42
|
+
failure_message do |actual|
|
43
|
+
"expected that #{actual} would be in the interval from #{min} to #{max}"
|
44
|
+
end
|
35
45
|
|
36
|
-
|
37
|
-
|
46
|
+
failure_message_when_negated do |actual|
|
47
|
+
"expected that #{actual} would not be in the interval from #{min} to #{max}"
|
48
|
+
end
|
38
49
|
end
|
39
50
|
|
40
51
|
description do
|
@@ -47,12 +58,22 @@ if defined?(RSpec)
|
|
47
58
|
actual.match(pattern)
|
48
59
|
end
|
49
60
|
|
50
|
-
|
51
|
-
|
52
|
-
|
61
|
+
if RSpec::Core::Version::STRING < "3.0.0"
|
62
|
+
failure_message_for_should do |actual|
|
63
|
+
"expected that '#{actual}' would match the pattern '#{pattern.inspect}'"
|
64
|
+
end
|
65
|
+
|
66
|
+
failure_message_for_should_not do |actual|
|
67
|
+
"expected that '#{actual}' would not match the pattern '#{pattern.inspect}'"
|
68
|
+
end
|
69
|
+
else
|
70
|
+
failure_message do |actual|
|
71
|
+
"expected that '#{actual}' would match the pattern '#{pattern.inspect}'"
|
72
|
+
end
|
53
73
|
|
54
|
-
|
55
|
-
|
74
|
+
failure_message_when_negated do |actual|
|
75
|
+
"expected that '#{actual}' would not match the pattern '#{pattern.inspect}'"
|
76
|
+
end
|
56
77
|
end
|
57
78
|
|
58
79
|
description do
|
data/lib/nginx_test_helper.rb
CHANGED
@@ -106,7 +106,9 @@ module NginxTestHelper
|
|
106
106
|
|
107
107
|
private
|
108
108
|
def config_id
|
109
|
-
if
|
109
|
+
if !Thread.current[:current_example].nil? && Thread.current[:current_example].respond_to?(:location)
|
110
|
+
(Thread.current[:current_example].location.split('/') - [".", "spec"]).join('_').gsub(/[\.\:]/, '_')
|
111
|
+
elsif self.respond_to?(:example) && !self.example.nil? &&
|
110
112
|
self.example.respond_to?(:metadata) && !self.example.metadata.nil? &&
|
111
113
|
!self.example.metadata[:location].nil?
|
112
114
|
(self.example.metadata[:location].split('/') - [".", "spec"]).join('_').gsub(/[\.\:]/, '_')
|
@@ -118,7 +120,9 @@ private
|
|
118
120
|
end
|
119
121
|
|
120
122
|
def has_passed?
|
121
|
-
if
|
123
|
+
if !Thread.current[:current_example].nil? && Thread.current[:current_example].respond_to?(:exception)
|
124
|
+
Thread.current[:current_example].exception.nil?
|
125
|
+
elsif self.respond_to?(:example) && !self.example.nil? && self.example.respond_to?(:exception)
|
122
126
|
self.example.exception.nil?
|
123
127
|
elsif !@test_passed.nil?
|
124
128
|
@test_passed
|
data/nginx_test_helper.gemspec
CHANGED
@@ -18,6 +18,6 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.add_dependency "popen4"
|
19
19
|
|
20
20
|
gem.add_development_dependency(%q<rspec>, [">= 2.10.0"])
|
21
|
-
gem.add_development_dependency(%q<
|
21
|
+
gem.add_development_dependency(%q<byebug>, [">= 3.5.1"])
|
22
22
|
gem.add_development_dependency(%q<simplecov>, [">= 0.0.1"]) if RUBY_VERSION > "1.9.0"
|
23
23
|
end
|
@@ -3,8 +3,8 @@ require 'nginx_test_helper/command_line_tool'
|
|
3
3
|
|
4
4
|
describe NginxTestHelper::CommandLineTool do
|
5
5
|
before do
|
6
|
-
$stdout.
|
7
|
-
Dir.
|
6
|
+
allow($stdout).to receive(:puts)
|
7
|
+
allow(Dir).to receive(:pwd).and_return('tmp')
|
8
8
|
FileUtils.mkdir_p('tmp/spec')
|
9
9
|
end
|
10
10
|
|
@@ -13,36 +13,36 @@ describe NginxTestHelper::CommandLineTool do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should list available options" do
|
16
|
-
$stdout.
|
17
|
-
$stdout.
|
16
|
+
expect($stdout).to receive(:puts).with(/init/)
|
17
|
+
expect($stdout).to receive(:puts).with(/license/)
|
18
18
|
NginxTestHelper::CommandLineTool.new.process []
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should list the gem license" do
|
22
|
-
$stdout.
|
22
|
+
expect($stdout).to receive(:puts).with(/MIT License/)
|
23
23
|
NginxTestHelper::CommandLineTool.new.process ["license"]
|
24
24
|
end
|
25
25
|
|
26
26
|
it "should create example files showing how to use the gem" do
|
27
27
|
NginxTestHelper::CommandLineTool.new.process ["init"]
|
28
|
-
File.exists?('tmp/spec/nginx_configuration.rb').
|
29
|
-
File.exists?('tmp/spec/example_spec.rb').
|
30
|
-
File.exists?('tmp/spec/spec_helper.rb').
|
28
|
+
expect(File.exists?('tmp/spec/nginx_configuration.rb')).to be true
|
29
|
+
expect(File.exists?('tmp/spec/example_spec.rb')).to be true
|
30
|
+
expect(File.exists?('tmp/spec/spec_helper.rb')).to be true
|
31
31
|
|
32
|
-
File.read('tmp/spec/nginx_configuration.rb').
|
33
|
-
File.read('tmp/spec/example_spec.rb').
|
34
|
-
File.read('tmp/spec/spec_helper.rb').
|
32
|
+
expect(File.read('tmp/spec/nginx_configuration.rb')).to eql(File.read('templates/spec/nginx_configuration.rb'))
|
33
|
+
expect(File.read('tmp/spec/example_spec.rb')).to eql(File.read('templates/spec/example_spec.rb'))
|
34
|
+
expect(File.read('tmp/spec/spec_helper.rb')).to include('nginx_configuration')
|
35
35
|
end
|
36
36
|
|
37
37
|
it "should include require call on spec_helper if NgincConfiguration is not defined" do
|
38
|
-
Object.
|
38
|
+
allow(Object).to receive(:const_defined?).with('NginxConfiguration').and_return(false)
|
39
39
|
File.open('tmp/spec/spec_helper.rb', 'w') { |f| f.write("#spec_helper content") }
|
40
40
|
NginxTestHelper::CommandLineTool.new.process ["init"]
|
41
|
-
File.read('tmp/spec/spec_helper.rb').
|
41
|
+
expect(File.read('tmp/spec/spec_helper.rb')).to eql("#spec_helper content\nrequire File.expand_path('nginx_configuration', File.dirname(__FILE__))")
|
42
42
|
end
|
43
43
|
|
44
44
|
it "should print INSTALL file content" do
|
45
|
-
$stdout.
|
45
|
+
expect($stdout).to receive(:puts).with(/Nginx Test Helper has been installed with example specs./)
|
46
46
|
NginxTestHelper::CommandLineTool.new.process ["init"]
|
47
47
|
end
|
48
48
|
end
|
@@ -6,58 +6,58 @@ describe NginxTestHelper::Config do
|
|
6
6
|
let(:subject) { NginxTestHelper::Config.new("config_id", configuration) }
|
7
7
|
|
8
8
|
it "should include NginxTestHelper module" do
|
9
|
-
subject.class.included_modules.
|
9
|
+
expect(subject.class.included_modules).to include(NginxTestHelper::EnvMethods)
|
10
10
|
end
|
11
11
|
|
12
12
|
it "should define some keys with configuration filename, logs and temp dirs configurations" do
|
13
13
|
default_configuration = NginxTestHelper::Config.new("config_id", {}).configuration
|
14
|
-
default_configuration[:configuration_filename].
|
15
|
-
default_configuration[:pid_file].
|
16
|
-
default_configuration[:access_log].
|
17
|
-
default_configuration[:error_log].
|
18
|
-
default_configuration[:client_body_temp].
|
14
|
+
expect(default_configuration[:configuration_filename]).to eql("/tmp/nginx_tests/config_id.conf")
|
15
|
+
expect(default_configuration[:pid_file]).to eql("/tmp/nginx_tests/nginx.pid")
|
16
|
+
expect(default_configuration[:access_log]).to eql("/tmp/nginx_tests/logs/access-config_id.log")
|
17
|
+
expect(default_configuration[:error_log]).to eql("/tmp/nginx_tests/logs/error-config_id.log")
|
18
|
+
expect(default_configuration[:client_body_temp]).to eql("/tmp/nginx_tests/client_body_temp")
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should merge 'default configuration' with configuration filename, logs and temp dirs configurations" do
|
22
22
|
default_configuration = NginxTestHelper::Config.new("config_id", {}).configuration
|
23
|
-
default_configuration.keys.
|
23
|
+
expect(default_configuration.keys).to eql([:conf_item, :configuration_filename, :pid_file, :access_log, :error_log, :client_body_temp])
|
24
24
|
end
|
25
25
|
|
26
26
|
it "should merge given configuration with 'default configuration', configuration filename, logs and temp dirs configurations" do
|
27
27
|
default_configuration = NginxTestHelper::Config.new("config_id", {:custom_key => "value"}).configuration
|
28
|
-
default_configuration.keys.
|
28
|
+
expect(default_configuration.keys).to eql([:conf_item, :custom_key, :configuration_filename, :pid_file, :access_log, :error_log, :client_body_temp])
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should create dirs where logs and client_body_temp will be stored" do
|
32
32
|
NginxTestHelper::Config.new("config_id", {})
|
33
|
-
File.exists?("/tmp/nginx_tests/logs").
|
34
|
-
File.exists?("/tmp/nginx_tests/client_body_temp").
|
33
|
+
expect(File.exists?("/tmp/nginx_tests/logs")).to be true
|
34
|
+
expect(File.exists?("/tmp/nginx_tests/client_body_temp")).to be true
|
35
35
|
end
|
36
36
|
|
37
37
|
it "should create the configuration file using the template configuration" do
|
38
|
-
File.read(subject.configuration[:configuration_filename]).
|
38
|
+
expect(File.read(subject.configuration[:configuration_filename])).to eql('"template configuration config_id"')
|
39
39
|
end
|
40
40
|
|
41
41
|
context "when using an alternative template" do
|
42
42
|
let(:configuration) { {:foo => "bar", :configuration_template => %("custom template writing <%=configuration[:foo]%>")} }
|
43
43
|
|
44
44
|
it "should create the configuration file using this template" do
|
45
|
-
File.read(subject.configuration[:configuration_filename]).
|
45
|
+
expect(File.read(subject.configuration[:configuration_filename])).to eql('"custom template writing bar"')
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
49
|
it "should has a method to delete config and log files" do
|
50
50
|
NginxTestHelper::Config.delete_config_and_log_files(subject.config_id)
|
51
|
-
File.exists?(subject.configuration[:configuration_filename]).
|
52
|
-
File.exists?(subject.configuration[:access_log]).
|
53
|
-
File.exists?(subject.configuration[:error_log]).
|
54
|
-
File.exists?(subject.configuration[:client_body_temp]).
|
51
|
+
expect(File.exists?(subject.configuration[:configuration_filename])).to be false
|
52
|
+
expect(File.exists?(subject.configuration[:access_log])).to be false
|
53
|
+
expect(File.exists?(subject.configuration[:error_log])).to be false
|
54
|
+
expect(File.exists?(subject.configuration[:client_body_temp])).to be false
|
55
55
|
end
|
56
56
|
|
57
57
|
it "should expose configurations keys as methods" do
|
58
58
|
config = NginxTestHelper::Config.new("config_id", { :foo => "bar", :xyz => 1})
|
59
|
-
config.foo.
|
60
|
-
config.xyz.
|
59
|
+
expect(config.foo).to eql("bar")
|
60
|
+
expect(config.xyz).to eql(1)
|
61
61
|
end
|
62
62
|
|
63
63
|
it "should raise exception if configuration key does not exists" do
|
@@ -67,8 +67,8 @@ describe NginxTestHelper::Config do
|
|
67
67
|
|
68
68
|
it "should return 'true' to respond_to method for a configuration key" do
|
69
69
|
config = NginxTestHelper::Config.new("config_id", { :foo => "bar"})
|
70
|
-
config.
|
71
|
-
config.
|
70
|
+
expect(config).to respond_to("config_id")
|
71
|
+
expect(config).to respond_to(:foo)
|
72
72
|
end
|
73
73
|
|
74
74
|
context "when using the write_directive helper method" do
|
@@ -76,14 +76,14 @@ describe NginxTestHelper::Config do
|
|
76
76
|
|
77
77
|
it "should comment the line when value is nil" do
|
78
78
|
conf = File.read(subject.configuration[:configuration_filename])
|
79
|
-
conf.
|
80
|
-
conf.
|
79
|
+
expect(conf).to include(%(\n#comment xyz\n#xyz "";))
|
80
|
+
expect(conf).to include(%(\n#xyz_without_comment "";))
|
81
81
|
end
|
82
82
|
|
83
83
|
it "should write the line when value is not nil" do
|
84
84
|
conf = File.read(subject.configuration[:configuration_filename])
|
85
|
-
conf.
|
86
|
-
conf.
|
85
|
+
expect(conf).to include(%(\n#comment foo\nname "bar";))
|
86
|
+
expect(conf).to include(%(\nwithout_comment "bar";))
|
87
87
|
end
|
88
88
|
|
89
89
|
context "when value is an Array" do
|
@@ -91,8 +91,8 @@ describe NginxTestHelper::Config do
|
|
91
91
|
|
92
92
|
it "should write multiple itens without quotes" do
|
93
93
|
conf = File.read(subject.configuration[:configuration_filename])
|
94
|
-
conf.
|
95
|
-
conf.
|
94
|
+
expect(conf).to include(%(\n#comment foo\nname bar zzz;))
|
95
|
+
expect(conf).to include(%(\nwithout_comment bar zzz;))
|
96
96
|
end
|
97
97
|
end
|
98
98
|
end
|
@@ -8,82 +8,82 @@ describe NginxTestHelper::EnvMethods do
|
|
8
8
|
shared_examples_for "has nginx configuration methods" do
|
9
9
|
context "with default values" do
|
10
10
|
it "should return nginx executable" do
|
11
|
-
subject.nginx_executable.
|
11
|
+
expect(subject.nginx_executable).to eql("/usr/local/nginx/sbin/nginx")
|
12
12
|
end
|
13
13
|
|
14
14
|
it "should return nginx host" do
|
15
|
-
subject.nginx_host.
|
15
|
+
expect(subject.nginx_host).to eql("127.0.0.1")
|
16
16
|
end
|
17
17
|
|
18
18
|
it "should return nginx port" do
|
19
|
-
subject.nginx_port.
|
19
|
+
expect(subject.nginx_port).to eql("9990")
|
20
20
|
end
|
21
21
|
|
22
22
|
it "should return nginx workers" do
|
23
|
-
subject.nginx_workers.
|
23
|
+
expect(subject.nginx_workers).to eql("1")
|
24
24
|
end
|
25
25
|
|
26
26
|
it "should return nginx tests tmp dir" do
|
27
|
-
subject.nginx_tests_tmp_dir.
|
27
|
+
expect(subject.nginx_tests_tmp_dir).to eql("/tmp/nginx_tests")
|
28
28
|
end
|
29
29
|
|
30
30
|
it "should return nginx tests cores dir based on tmp dir" do
|
31
|
-
subject.nginx_tests_cores_dir.
|
31
|
+
expect(subject.nginx_tests_cores_dir).to eql("/tmp/nginx_tests/cores")
|
32
32
|
end
|
33
33
|
|
34
34
|
it "should return nginx tests core dir based on tmp dir" do
|
35
|
-
subject.nginx_tests_core_dir("test_id").
|
35
|
+
expect(subject.nginx_tests_core_dir("test_id")).to eql("/tmp/nginx_tests/cores/test_id")
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
39
|
context "with environment values" do
|
40
40
|
it "should return nginx executable" do
|
41
41
|
ENV['NGINX_EXEC'] = "/path/to/nginx/executable"
|
42
|
-
subject.nginx_executable.
|
42
|
+
expect(subject.nginx_executable).to eql("/path/to/nginx/executable")
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should return nginx host" do
|
46
46
|
ENV['NGINX_HOST'] = "some_host"
|
47
|
-
subject.nginx_host.
|
47
|
+
expect(subject.nginx_host).to eql("some_host")
|
48
48
|
end
|
49
49
|
|
50
50
|
it "should return nginx port" do
|
51
51
|
ENV['NGINX_PORT'] = "some_port"
|
52
|
-
subject.nginx_port.
|
52
|
+
expect(subject.nginx_port).to eql("some_port")
|
53
53
|
end
|
54
54
|
|
55
55
|
it "should return nginx workers" do
|
56
56
|
ENV['NGINX_WORKERS'] = "25"
|
57
|
-
subject.nginx_workers.
|
57
|
+
expect(subject.nginx_workers).to eql("25")
|
58
58
|
end
|
59
59
|
|
60
60
|
it "should return nginx tests tmp dir" do
|
61
61
|
ENV['NGINX_TESTS_TMP_DIR'] = "/path/to/tests/tmp/dir"
|
62
|
-
subject.nginx_tests_tmp_dir.
|
62
|
+
expect(subject.nginx_tests_tmp_dir).to eql("/path/to/tests/tmp/dir")
|
63
63
|
end
|
64
64
|
|
65
65
|
it "should return nginx tests cores dir based on tmp dir" do
|
66
66
|
ENV['NGINX_TESTS_TMP_DIR'] = "/path/to/tests/tmp/dir"
|
67
|
-
subject.nginx_tests_cores_dir.
|
67
|
+
expect(subject.nginx_tests_cores_dir).to eql("/path/to/tests/tmp/dir/cores")
|
68
68
|
end
|
69
69
|
|
70
70
|
it "should return nginx tests core dir based on tmp dir" do
|
71
71
|
ENV['NGINX_TESTS_TMP_DIR'] = "/path/to/tests/tmp/dir"
|
72
|
-
subject.nginx_tests_core_dir("test_id").
|
72
|
+
expect(subject.nginx_tests_core_dir("test_id")).to eql("/path/to/tests/tmp/dir/cores/test_id")
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
76
|
it "should use nginx host and port to compose nginx address" do
|
77
|
-
subject.
|
78
|
-
subject.
|
77
|
+
allow(subject).to receive(:nginx_host).and_return("some_host")
|
78
|
+
allow(subject).to receive(:nginx_port).and_return("some_port")
|
79
79
|
|
80
|
-
subject.nginx_address.
|
80
|
+
expect(subject.nginx_address).to eql("http://some_host:some_port")
|
81
81
|
end
|
82
82
|
|
83
83
|
context "when on a Darwin ruby platform" do
|
84
84
|
it "should return kqueue as event type" do
|
85
85
|
with_constants({"RUBY_PLATFORM" => "x86_64-darwin13.0"}) do
|
86
|
-
subject.nginx_event_type.
|
86
|
+
expect(subject.nginx_event_type).to eql("kqueue")
|
87
87
|
end
|
88
88
|
end
|
89
89
|
end
|
@@ -91,7 +91,7 @@ describe NginxTestHelper::EnvMethods do
|
|
91
91
|
context "when not on a Darwin ruby platform" do
|
92
92
|
it "should return epoll as event type" do
|
93
93
|
with_constants({"RUBY_PLATFORM" => "Any other platform"}) do
|
94
|
-
subject.nginx_event_type.
|
94
|
+
expect(subject.nginx_event_type).to eql("epoll")
|
95
95
|
end
|
96
96
|
end
|
97
97
|
end
|
@@ -4,92 +4,92 @@ require 'nginx_test_helper/rspec_utils'
|
|
4
4
|
describe "rspec_utils" do
|
5
5
|
|
6
6
|
it "should include NginxTestHelper module on RSpec tests" do
|
7
|
-
self.class.included_modules.
|
7
|
+
expect(self.class.included_modules).to include(NginxTestHelper)
|
8
8
|
end
|
9
9
|
|
10
10
|
context "when defining the 'be_in_the_interval' matcher" do
|
11
11
|
context "and checking if the number is in the interval" do
|
12
12
|
it "should be true when the actual value is equal to lower bound" do
|
13
|
-
expect { 10.
|
13
|
+
expect { expect(10).to be_in_the_interval(10,12) }.to_not raise_error
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should be true when the actual value is equal to upper bound" do
|
17
|
-
expect { 12.
|
17
|
+
expect { expect(12).to be_in_the_interval(10,12) }.to_not raise_error
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should be true when the actual value is between lower and upper bounds" do
|
21
|
-
expect { 11.
|
21
|
+
expect { expect(11).to be_in_the_interval(10,12) }.to_not raise_error
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should be false when the actual value is smaller than lower bound" do
|
25
|
-
expect { 9.
|
25
|
+
expect { expect(9).to be_in_the_interval(10,12) }.to raise_error(RSpec::Expectations::ExpectationNotMetError, "expected that 9 would be in the interval from 10 to 12")
|
26
26
|
end
|
27
27
|
|
28
28
|
it "should be false when the actual value is greater than upper bound" do
|
29
|
-
expect { 13.
|
29
|
+
expect { expect(13).to be_in_the_interval(10,12) }.to raise_error(RSpec::Expectations::ExpectationNotMetError, "expected that 13 would be in the interval from 10 to 12")
|
30
30
|
end
|
31
31
|
|
32
32
|
it "should accept float numbers" do
|
33
|
-
expect { 10.4.
|
34
|
-
expect { 12.4.
|
33
|
+
expect { expect(10.4).to be_in_the_interval(10.3,12.5) }.to_not raise_error
|
34
|
+
expect { expect(12.4).to be_in_the_interval(10.3,12.5) }.to_not raise_error
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
38
|
context "and checking if the number is out the interval" do
|
39
39
|
it "should be false when the actual value is equal to lower bound" do
|
40
|
-
expect { 10.
|
40
|
+
expect { expect(10).not_to be_in_the_interval(10,12) }.to raise_error(RSpec::Expectations::ExpectationNotMetError, "expected that 10 would not be in the interval from 10 to 12")
|
41
41
|
end
|
42
42
|
|
43
43
|
it "should be false when the actual value is equal to upper bound" do
|
44
|
-
expect { 12.
|
44
|
+
expect { expect(12).not_to be_in_the_interval(10,12) }.to raise_error(RSpec::Expectations::ExpectationNotMetError, "expected that 12 would not be in the interval from 10 to 12")
|
45
45
|
end
|
46
46
|
|
47
47
|
it "should be false when the actual value is between lower and upper bounds" do
|
48
|
-
expect { 11.
|
48
|
+
expect { expect(11).not_to be_in_the_interval(10,12) }.to raise_error(RSpec::Expectations::ExpectationNotMetError, "expected that 11 would not be in the interval from 10 to 12")
|
49
49
|
end
|
50
50
|
|
51
51
|
it "should be true when the actual value is smaller than lower bound" do
|
52
|
-
expect { 9.
|
52
|
+
expect { expect(9).not_to be_in_the_interval(10,12) }.to_not raise_error
|
53
53
|
end
|
54
54
|
|
55
55
|
it "should be true when the actual value is greater than upper bound" do
|
56
|
-
expect { 13.
|
56
|
+
expect { expect(13).not_to be_in_the_interval(10,12) }.to_not raise_error
|
57
57
|
end
|
58
58
|
|
59
59
|
it "should accept float numbers" do
|
60
|
-
expect { 10.2.
|
61
|
-
expect { 12.6.
|
60
|
+
expect { expect(10.2).not_to be_in_the_interval(10.3,12.5) }.to_not raise_error
|
61
|
+
expect { expect(12.6).not_to be_in_the_interval(10.3,12.5) }.to_not raise_error
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
65
|
it "should has a friendly description" do
|
66
|
-
be_in_the_interval(10.3,12.5).description.
|
66
|
+
expect(be_in_the_interval(10.3,12.5).description).to eql("be in the interval from 10.3 to 12.5")
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
70
|
context "when defining the 'match_the_pattern' matcher" do
|
71
71
|
context "and checking if the text match the pattern" do
|
72
72
|
it "should be true when the actual value match the expression" do
|
73
|
-
expect { "some text".
|
73
|
+
expect { expect("some text").to match_the_pattern(/EX/i) }.to_not raise_error
|
74
74
|
end
|
75
75
|
|
76
76
|
it "should be false when the actual value does not match the expression" do
|
77
|
-
expect { "some text".
|
77
|
+
expect { expect("some text").to match_the_pattern(/EX/) }.to raise_error(RSpec::Expectations::ExpectationNotMetError, "expected that 'some text' would match the pattern '/EX/'")
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
81
|
context "and checking if the text not match the pattern" do
|
82
82
|
it "should be true when the actual value match the expression" do
|
83
|
-
expect { "some text".
|
83
|
+
expect { expect("some text").not_to match_the_pattern(/EX/i) }.to raise_error(RSpec::Expectations::ExpectationNotMetError, "expected that 'some text' would not match the pattern '/EX/i'")
|
84
84
|
end
|
85
85
|
|
86
86
|
it "should be false when the actual value does not match the expression" do
|
87
|
-
expect { "some text".
|
87
|
+
expect { expect("some text").not_to match_the_pattern(/EX/) }.to_not raise_error
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
91
|
it "should has a friendly description" do
|
92
|
-
match_the_pattern(/EX/i).description.
|
92
|
+
expect(match_the_pattern(/EX/i).description).to eql("match the pattern '/EX/i'")
|
93
93
|
end
|
94
94
|
end
|
95
95
|
end
|
@@ -6,92 +6,92 @@ describe NginxTestHelper do
|
|
6
6
|
subject { Object.new.extend(NginxTestHelper) }
|
7
7
|
|
8
8
|
it "should define a method with basic headers" do
|
9
|
-
subject.headers.
|
9
|
+
expect(subject.headers).to eql({'accept' => 'text/html'})
|
10
10
|
end
|
11
11
|
|
12
12
|
it "should define a method to calculate the difference in seconds of two dates" do
|
13
|
-
subject.time_diff_sec(Time.now, Time.now + 10).
|
13
|
+
expect(subject.time_diff_sec(Time.now, Time.now + 10)).to eql(10)
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should define a method to calculate the difference in milliseconds of two dates" do
|
17
|
-
subject.time_diff_milli(Time.now, Time.now + 10).
|
17
|
+
expect(subject.time_diff_milli(Time.now, Time.now + 10)).to eql(10000)
|
18
18
|
end
|
19
19
|
|
20
20
|
context "when working with sockets" do
|
21
21
|
let(:socket) { SocketMock.new }
|
22
22
|
|
23
23
|
it "should be possible to open a socket to a host and port" do
|
24
|
-
TCPSocket.
|
24
|
+
expect(TCPSocket).to receive(:open).with("xpto.com", 100).and_return(socket)
|
25
25
|
|
26
|
-
subject.open_socket("xpto.com", 100).
|
26
|
+
expect(subject.open_socket("xpto.com", 100)).to eql(socket)
|
27
27
|
end
|
28
28
|
|
29
29
|
it "should be possible to do a GET in an url using the opened socket, and receive header and body response" do
|
30
|
-
socket.
|
30
|
+
expect(socket).to receive(:print).with("GET /index.html HTTP/1.1\r\nHost: localhost\r\n\r\n")
|
31
31
|
|
32
32
|
headers, body = subject.get_in_socket("/index.html", socket)
|
33
|
-
headers.
|
34
|
-
body.
|
33
|
+
expect(headers).to eql("HTTP 200 OK")
|
34
|
+
expect(body).to eql("BODY")
|
35
35
|
end
|
36
36
|
|
37
37
|
it "should be possible specify the host header value to do a GET" do
|
38
|
-
socket.
|
38
|
+
expect(socket).to receive(:print).with("GET /index.html HTTP/1.1\r\nHost: some_host_value\r\n\r\n")
|
39
39
|
|
40
40
|
headers, body = subject.get_in_socket("/index.html", socket, {:host_header => "some_host_value"})
|
41
|
-
headers.
|
42
|
-
body.
|
41
|
+
expect(headers).to eql("HTTP 200 OK")
|
42
|
+
expect(body).to eql("BODY")
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should be possible use http 1.0 to do a GET" do
|
46
|
-
socket.
|
46
|
+
expect(socket).to receive(:print).with("GET /index.html HTTP/1.0\r\n\r\n")
|
47
47
|
|
48
48
|
headers, body = subject.get_in_socket("/index.html", socket, {:use_http_1_0 => true})
|
49
|
-
headers.
|
50
|
-
body.
|
49
|
+
expect(headers).to eql("HTTP 200 OK")
|
50
|
+
expect(body).to eql("BODY")
|
51
51
|
end
|
52
52
|
|
53
53
|
it "should pass 'wait_for' attribute to 'read_response_on_socket' method when doing a GET in a url" do
|
54
|
-
socket.
|
55
|
-
subject.
|
54
|
+
expect(socket).to receive(:print).with("GET /index.html HTTP/1.1\r\nHost: localhost\r\n\r\n")
|
55
|
+
expect(subject).to receive(:read_response_on_socket).with(socket, "wait for")
|
56
56
|
|
57
57
|
subject.get_in_socket("/index.html", socket, {:wait_for => "wait for"})
|
58
58
|
end
|
59
59
|
|
60
60
|
it "should be possible to do a POST in an url using the opened socket, and receive header and body response" do
|
61
|
-
socket.
|
61
|
+
expect(socket).to receive(:print).with("POST /service HTTP/1.1\r\nHost: localhost\r\nContent-Length: 4\r\n\r\nBODY")
|
62
62
|
|
63
63
|
headers, body = subject.post_in_socket("/service", "BODY", socket)
|
64
|
-
headers.
|
65
|
-
body.
|
64
|
+
expect(headers).to eql("HTTP 200 OK")
|
65
|
+
expect(body).to eql("BODY")
|
66
66
|
end
|
67
67
|
|
68
68
|
it "should be possible specify the host header value to do a POST" do
|
69
|
-
socket.
|
69
|
+
expect(socket).to receive(:print).with("POST /service HTTP/1.1\r\nHost: some_host_value\r\nContent-Length: 4\r\n\r\nBODY")
|
70
70
|
|
71
71
|
headers, body = subject.post_in_socket("/service", "BODY", socket, {:host_header => "some_host_value"})
|
72
|
-
headers.
|
73
|
-
body.
|
72
|
+
expect(headers).to eql("HTTP 200 OK")
|
73
|
+
expect(body).to eql("BODY")
|
74
74
|
end
|
75
75
|
|
76
76
|
it "should be possible use http 1.0 to do a POST" do
|
77
|
-
socket.
|
77
|
+
expect(socket).to receive(:print).with("POST /service HTTP/1.0\r\nContent-Length: 4\r\n\r\nBODY")
|
78
78
|
|
79
79
|
headers, body = subject.post_in_socket("/service", "BODY", socket, {:use_http_1_0 => true})
|
80
|
-
headers.
|
81
|
-
body.
|
80
|
+
expect(headers).to eql("HTTP 200 OK")
|
81
|
+
expect(body).to eql("BODY")
|
82
82
|
end
|
83
83
|
|
84
84
|
it "should pass 'wait_for' attribute to 'read_response_on_socket' method when doing a POST in a url" do
|
85
|
-
socket.
|
86
|
-
subject.
|
85
|
+
expect(socket).to receive(:print).with("POST /service HTTP/1.1\r\nHost: localhost\r\nContent-Length: 4\r\n\r\nBODY")
|
86
|
+
expect(subject).to receive(:read_response_on_socket).with(socket, "wait for")
|
87
87
|
|
88
88
|
headers, body = subject.post_in_socket("/service", "BODY", socket, {:wait_for => "wait for"})
|
89
89
|
end
|
90
90
|
|
91
91
|
it "should be possible read a response in a opened socket" do
|
92
92
|
headers, body = subject.read_response_on_socket(socket)
|
93
|
-
headers.
|
94
|
-
body.
|
93
|
+
expect(headers).to eql("HTTP 200 OK")
|
94
|
+
expect(body).to eql("BODY")
|
95
95
|
end
|
96
96
|
|
97
97
|
it "should concatenate response parts" do
|
@@ -99,12 +99,12 @@ describe NginxTestHelper do
|
|
99
99
|
socket.response2 = "Y"
|
100
100
|
|
101
101
|
headers, body = subject.read_response_on_socket(socket)
|
102
|
-
headers.
|
103
|
-
body.
|
102
|
+
expect(headers).to eql("HTTP 200 OK")
|
103
|
+
expect(body).to eql("BODYXY")
|
104
104
|
end
|
105
105
|
|
106
106
|
it "should raise error if not receive a response" do
|
107
|
-
socket.
|
107
|
+
allow(socket).to receive(:readpartial).and_raise(Exception)
|
108
108
|
|
109
109
|
expect { subject.read_response_on_socket(socket) }.to raise_error("Any response")
|
110
110
|
end
|
@@ -117,8 +117,8 @@ describe NginxTestHelper do
|
|
117
117
|
socket.exception = Errno::EAGAIN
|
118
118
|
|
119
119
|
headers, body = subject.read_response_on_socket(socket)
|
120
|
-
headers.
|
121
|
-
body.
|
120
|
+
expect(headers).to eql("HTTP 200 OK")
|
121
|
+
expect(body).to eql("BODYX")
|
122
122
|
end
|
123
123
|
end
|
124
124
|
|
@@ -127,19 +127,19 @@ describe NginxTestHelper do
|
|
127
127
|
socket.exception = Errno::EAGAIN
|
128
128
|
|
129
129
|
headers, body = subject.read_response_on_socket(socket, "OD")
|
130
|
-
headers.
|
131
|
-
body.
|
130
|
+
expect(headers).to eql("HTTP 200 OK")
|
131
|
+
expect(body).to eql("BODY")
|
132
132
|
end
|
133
133
|
|
134
134
|
it "should retry if the text is not present in the response" do
|
135
135
|
socket.exception = Errno::EAGAIN
|
136
136
|
socket.response3 = "Z"
|
137
137
|
|
138
|
-
IO.
|
138
|
+
expect(IO).to receive(:select).with([socket])
|
139
139
|
|
140
140
|
headers, body = subject.read_response_on_socket(socket, "Z")
|
141
|
-
headers.
|
142
|
-
body.
|
141
|
+
expect(headers).to eql("HTTP 200 OK")
|
142
|
+
expect(body).to include("BODY")
|
143
143
|
end
|
144
144
|
end
|
145
145
|
end
|
@@ -147,64 +147,64 @@ describe NginxTestHelper do
|
|
147
147
|
|
148
148
|
context "when testing configuration" do
|
149
149
|
before do
|
150
|
-
subject.
|
151
|
-
subject.
|
152
|
-
subject.
|
150
|
+
allow(subject).to receive(:config_id).and_return("config_id")
|
151
|
+
allow(subject).to receive(:start_server).and_return("Server started")
|
152
|
+
allow(subject).to receive(:stop_server).and_return("Server stoped")
|
153
153
|
end
|
154
154
|
|
155
155
|
it "should create an instance of NginxTestHelper::Config with the given configuation" do
|
156
156
|
config = NginxTestHelper::Config.new("config_id", {:foo => "bar"})
|
157
|
-
NginxTestHelper::Config.
|
157
|
+
expect(NginxTestHelper::Config).to receive(:new).with("config_id", {:foo => "bar"}).and_return(config)
|
158
158
|
subject.nginx_test_configuration({:foo => "bar"})
|
159
159
|
end
|
160
160
|
|
161
161
|
it "should accept test default configuration" do
|
162
162
|
config = NginxTestHelper::Config.new("config_id", {})
|
163
|
-
NginxTestHelper::Config.
|
163
|
+
expect(NginxTestHelper::Config).to receive(:new).with("config_id", {}).and_return(config)
|
164
164
|
subject.nginx_test_configuration
|
165
165
|
end
|
166
166
|
|
167
167
|
it "should call start_server and stop_server methods" do
|
168
|
-
subject.
|
169
|
-
subject.
|
168
|
+
expect(subject).to receive(:start_server).and_return("Server started")
|
169
|
+
expect(subject).to receive(:stop_server).and_return("Server stoped")
|
170
170
|
subject.nginx_test_configuration({:foo => "bar"})
|
171
171
|
end
|
172
172
|
|
173
173
|
it "should return start command result" do
|
174
|
-
subject.nginx_test_configuration({:foo => "bar"}).
|
174
|
+
expect(subject.nginx_test_configuration({:foo => "bar"})).to eql("Server started\n")
|
175
175
|
end
|
176
176
|
|
177
177
|
it "should return start command result concatenated with error log content if exists" do
|
178
178
|
FileUtils.mkdir_p("/tmp/nginx_tests/logs/")
|
179
179
|
File.open("/tmp/nginx_tests/logs/error-config_id.log", "w") { |f| f.write("Error log content") }
|
180
|
-
subject.nginx_test_configuration({:foo => "bar"}).
|
180
|
+
expect(subject.nginx_test_configuration({:foo => "bar"})).to eql("Server started\nError log content")
|
181
181
|
end
|
182
182
|
end
|
183
183
|
|
184
184
|
context "when starting server to make tests" do
|
185
185
|
before do
|
186
|
-
subject.
|
187
|
-
subject.
|
188
|
-
subject.
|
186
|
+
allow(subject).to receive(:config_id).and_return("config_id")
|
187
|
+
allow(subject).to receive(:start_server).and_return("Server started")
|
188
|
+
allow(subject).to receive(:stop_server).and_return("Server stoped")
|
189
189
|
end
|
190
190
|
|
191
191
|
it "should create an instance of NginxTestHelper::Config with the given configuation" do
|
192
192
|
config = NginxTestHelper::Config.new("config_id", {:foo => "bar"})
|
193
|
-
NginxTestHelper::Config.
|
193
|
+
expect(NginxTestHelper::Config).to receive(:new).with("config_id", {:foo => "bar"}).and_return(config)
|
194
194
|
subject.nginx_run_server({:foo => "bar"}) {}
|
195
195
|
end
|
196
196
|
|
197
197
|
it "should accept test default configuration" do
|
198
198
|
config = NginxTestHelper::Config.new("config_id", {})
|
199
|
-
NginxTestHelper::Config.
|
199
|
+
expect(NginxTestHelper::Config).to receive(:new).with("config_id", {}).and_return(config)
|
200
200
|
subject.nginx_run_server {}
|
201
201
|
end
|
202
202
|
|
203
203
|
it "should execute the block after start_server and before stop_server methods" do
|
204
204
|
obj = {:xyz => 1}
|
205
|
-
subject.
|
206
|
-
obj.
|
207
|
-
subject.
|
205
|
+
expect(subject).to receive(:start_server).ordered
|
206
|
+
expect(obj).to receive(:delete).with(:xyz).ordered
|
207
|
+
expect(subject).to receive(:stop_server).ordered
|
208
208
|
|
209
209
|
subject.nginx_run_server({:foo => "bar"}) { obj.delete(:xyz) }
|
210
210
|
end
|
@@ -219,78 +219,81 @@ describe NginxTestHelper do
|
|
219
219
|
end
|
220
220
|
|
221
221
|
it "should execute stop_server method if an exception was raised" do
|
222
|
-
subject.
|
222
|
+
expect(subject).to receive(:stop_server)
|
223
223
|
expect { subject.nginx_run_server({:foo => "bar"}) { raise "some error" } }.to raise_error("some error")
|
224
224
|
end
|
225
225
|
end
|
226
226
|
|
227
227
|
context "when checking internal behavior" do
|
228
228
|
before do
|
229
|
-
subject.
|
230
|
-
subject.
|
231
|
-
subject.
|
229
|
+
allow(subject).to receive(:start_server).and_return("Server started")
|
230
|
+
allow(subject).to receive(:stop_server).and_return("Server stoped")
|
231
|
+
allow(subject).to receive(:example).and_return(double)
|
232
232
|
end
|
233
233
|
|
234
234
|
context "and check config_id value" do
|
235
|
+
before { Thread.current[:current_example] = nil }
|
236
|
+
after { |ex| Thread.current[:current_example] = ex }
|
237
|
+
|
235
238
|
it "should use example metadata if available" do
|
236
|
-
subject.example.
|
237
|
-
subject.send(:config_id).
|
239
|
+
allow(subject.example).to receive(:metadata).and_return(:location => "./spec/test_config_id_spec.rb:100")
|
240
|
+
expect(subject.send(:config_id)).to eql("test_config_id_spec_rb_100")
|
238
241
|
end
|
239
242
|
|
240
243
|
it "should use method_name if example metadata is not available" do
|
241
|
-
subject.example.
|
242
|
-
subject.
|
244
|
+
allow(subject.example).to receive(:metadata).and_return(nil)
|
245
|
+
allow(subject).to receive(:method_name).and_return("test_config_id_by_method_name")
|
243
246
|
|
244
|
-
subject.send(:config_id).
|
247
|
+
expect(subject.send(:config_id)).to eql("test_config_id_by_method_name")
|
245
248
|
end
|
246
249
|
|
247
250
|
it "should use __name__ if example metadata and method_name are not available" do
|
248
|
-
subject.example.
|
249
|
-
subject.
|
251
|
+
allow(subject.example).to receive(:metadata).and_return(nil)
|
252
|
+
allow(subject).to receive(:__name__).and_return("test_config_id_by___name__")
|
250
253
|
|
251
|
-
subject.send(:config_id).
|
254
|
+
expect(subject.send(:config_id)).to eql("test_config_id_by___name__")
|
252
255
|
end
|
253
256
|
end
|
254
257
|
|
255
258
|
context "and check if the test has passed" do
|
256
259
|
context "using example exception if available" do
|
257
260
|
it "should be 'true' if exception is 'nil'" do
|
258
|
-
subject.example.
|
259
|
-
subject.send(:has_passed?).
|
261
|
+
allow(subject.example).to receive(:exception).and_return(nil)
|
262
|
+
expect(subject.send(:has_passed?)).to be true
|
260
263
|
end
|
261
264
|
|
262
265
|
it "should be 'false' if exception is not 'nil'" do
|
263
|
-
subject.example.
|
264
|
-
subject.send(:has_passed?).
|
266
|
+
allow(subject.example).to receive(:exception).and_return("")
|
267
|
+
expect(subject.send(:has_passed?)).to be false
|
265
268
|
end
|
266
269
|
end
|
267
270
|
|
268
271
|
context "using 'test_passed' attribute if example exception is not available" do
|
269
272
|
it "should be 'true' if 'test_passed' is 'true'" do
|
270
273
|
subject.instance_variable_set(:@test_passed, true)
|
271
|
-
subject.send(:has_passed?).
|
274
|
+
expect(subject.send(:has_passed?)).to be true
|
272
275
|
end
|
273
276
|
|
274
277
|
it "should be 'false' if 'test_passed' is 'false'" do
|
275
278
|
subject.instance_variable_set(:@test_passed, false)
|
276
|
-
subject.send(:has_passed?).
|
279
|
+
expect(subject.send(:has_passed?)).to be false
|
277
280
|
end
|
278
281
|
end
|
279
282
|
|
280
283
|
context "using 'passed' attribute if example exception and 'test_passed' are not available" do
|
281
284
|
before do
|
282
|
-
subject.example.
|
285
|
+
allow(subject.example).to receive(:instance_variable_defined?).with(:@exception).and_return(false)
|
283
286
|
subject.instance_variable_set(:@test_passed, nil)
|
284
287
|
end
|
285
288
|
|
286
289
|
it "should be 'true' if 'passed' is 'true'" do
|
287
290
|
subject.instance_variable_set(:@passed, true)
|
288
|
-
subject.send(:has_passed?).
|
291
|
+
expect(subject.send(:has_passed?)).to be true
|
289
292
|
end
|
290
293
|
|
291
294
|
it "should be 'false' if 'passed' is 'false'" do
|
292
295
|
subject.instance_variable_set(:@passed, false)
|
293
|
-
subject.send(:has_passed?).
|
296
|
+
expect(subject.send(:has_passed?)).to be false
|
294
297
|
end
|
295
298
|
end
|
296
299
|
end
|
@@ -301,24 +304,24 @@ describe NginxTestHelper do
|
|
301
304
|
let(:status) { Status.new }
|
302
305
|
|
303
306
|
it "should use POpen4 to execute the command" do
|
304
|
-
POpen4.
|
307
|
+
expect(POpen4).to receive(:popen4).with("/usr/local/nginx/sbin/nginx -c /tmp/nginx_tests/config_id.conf").and_return(status)
|
305
308
|
subject.start_server(config)
|
306
309
|
end
|
307
310
|
|
308
311
|
it "should not start the server if configuration has a key 'disable_start_stop_server' with 'true'" do
|
309
312
|
config.configuration[:disable_start_stop_server] = true
|
310
|
-
POpen4.
|
313
|
+
expect(POpen4).not_to receive(:popen4)
|
311
314
|
subject.start_server(config)
|
312
315
|
end
|
313
316
|
|
314
317
|
it "should raise error if 'exitstatus' is not '0'" do
|
315
318
|
status.exitstatus = 1
|
316
|
-
POpen4.
|
319
|
+
expect(POpen4).to receive(:popen4).with("/usr/local/nginx/sbin/nginx -c /tmp/nginx_tests/config_id.conf").and_return(status)
|
317
320
|
expect { subject.start_server(config) }.to raise_error("Server doesn't started - ")
|
318
321
|
end
|
319
322
|
|
320
323
|
it "should return error message when the command fail" do
|
321
|
-
subject.start_server(config).
|
324
|
+
expect(subject.start_server(config)).to eql("nginx: [emerg] unexpected end of file, expecting \";\" or \"}\" in /tmp/nginx_tests/config_id.conf:1")
|
322
325
|
end
|
323
326
|
end
|
324
327
|
|
@@ -327,24 +330,24 @@ describe NginxTestHelper do
|
|
327
330
|
let(:status) { Status.new }
|
328
331
|
|
329
332
|
it "should use POpen4 to execute the command" do
|
330
|
-
POpen4.
|
333
|
+
expect(POpen4).to receive(:popen4).with("/usr/local/nginx/sbin/nginx -c /tmp/nginx_tests/config_id.conf -s stop").and_return(status)
|
331
334
|
subject.stop_server(config)
|
332
335
|
end
|
333
336
|
|
334
337
|
it "should not start the server if configuration has a key 'disable_start_stop_server' with 'true'" do
|
335
338
|
config.configuration[:disable_start_stop_server] = true
|
336
|
-
POpen4.
|
339
|
+
expect(POpen4).not_to receive(:popen4)
|
337
340
|
subject.stop_server(config)
|
338
341
|
end
|
339
342
|
|
340
343
|
it "should raise error if 'exitstatus' is not '0'" do
|
341
344
|
status.exitstatus = 1
|
342
|
-
POpen4.
|
345
|
+
expect(POpen4).to receive(:popen4).with("/usr/local/nginx/sbin/nginx -c /tmp/nginx_tests/config_id.conf -s stop").and_return(status)
|
343
346
|
expect { subject.stop_server(config) }.to raise_error("Server doesn't stoped - ")
|
344
347
|
end
|
345
348
|
|
346
349
|
it "should return error message when the command fail" do
|
347
|
-
subject.stop_server(config).
|
350
|
+
expect(subject.stop_server(config)).to eql("nginx: [emerg] unexpected end of file, expecting \";\" or \"}\" in /tmp/nginx_tests/config_id.conf:1")
|
348
351
|
end
|
349
352
|
end
|
350
353
|
|
data/spec/spec_helper.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
#
|
6
6
|
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
7
7
|
RSpec.configure do |config|
|
8
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
8
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true if RSpec::Core::Version::STRING < "3.0.0"
|
9
9
|
config.run_all_when_everything_filtered = true
|
10
10
|
config.filter_run :focus
|
11
11
|
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nginx_test_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wandenberg Peixoto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: popen4
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 2.10.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 2.10.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: byebug
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 3.5.1
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 3.5.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: simplecov
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 0.0.1
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.0.1
|
69
69
|
description: A collection of helper methods to test your nginx module.
|
@@ -74,8 +74,8 @@ executables:
|
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
|
-
- .gitignore
|
78
|
-
- .rspec
|
77
|
+
- ".gitignore"
|
78
|
+
- ".rspec"
|
79
79
|
- Gemfile
|
80
80
|
- LICENSE
|
81
81
|
- README.md
|
@@ -108,12 +108,12 @@ require_paths:
|
|
108
108
|
- lib
|
109
109
|
required_ruby_version: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
|
-
- -
|
111
|
+
- - ">="
|
112
112
|
- !ruby/object:Gem::Version
|
113
113
|
version: '0'
|
114
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
|
-
- -
|
116
|
+
- - ">="
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: '0'
|
119
119
|
requirements: []
|