http_stub 0.15.0 → 0.15.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 77eb1d522a9c4187caae1203528f66741295bffe
4
- data.tar.gz: f089d9c6e085126c6be87386a77cc1295b142e9c
3
+ metadata.gz: 438c42456ebda9bd71a4c56735be06a71c62ef68
4
+ data.tar.gz: d9c2910a45e9c6ec166e58d7d02dd1f8a2d31357
5
5
  SHA512:
6
- metadata.gz: 5c367ce983d21581034478d9accfcffc23d1d150fe49053fd72992fd2a7e8106eae1cb3a7d710111bf9ffad5ec073623785102efca130b0a4b64251e9d5f93f4
7
- data.tar.gz: d3f5a65a799a7afebc73feb58f155196fce11acacb827d3706243b836abb5261f75cf04f9cb6156a6deb2462e4d23db80efd90759e638af8f673edab278c6ba2
6
+ metadata.gz: 79748781d578ca9908fb56d818605e2ad1670958d69c9f47a5b1d692227d156f34fa4ed1f22caf26f0ef07a5838bbe98ba9190d3bae21ba79d4b779101562107
7
+ data.tar.gz: 719ec839fe7f02751cf4ea178e33daac0a9502c43ec3bac543c5f7f319e756decb8e0ab05b08fb2cc79a4bed2bb1d3938ac15476eecd3b1414114a96ecb1f811
data/lib/http_stub.rb CHANGED
@@ -12,12 +12,6 @@ require 'active_support/core_ext/module/delegation'
12
12
  require 'active_support/core_ext/hash/slice'
13
13
  require 'active_support/core_ext/hash/deep_merge'
14
14
 
15
- module HttpStub
16
-
17
- BASE_DIR = ::File.expand_path("../..", __FILE__)
18
-
19
- end
20
-
21
15
  require_relative 'http_stub/extensions/core/hash'
22
16
  require_relative 'http_stub/extensions/rack/handler'
23
17
  require_relative 'http_stub/server/headers'
@@ -28,13 +28,11 @@ module HttpStub
28
28
 
29
29
  def rollback_to(model)
30
30
  starting_index = @models.index(model)
31
- @models[0..starting_index].each(&:clear)
32
- @models = @models.slice(starting_index..-1)
31
+ @models = @models.slice(starting_index..-1) if starting_index
33
32
  end
34
33
 
35
34
  def clear(request)
36
35
  request.logger.info "Clearing #{@model_name} registry"
37
- @models.each(&:clear)
38
36
  @models.clear
39
37
  end
40
38
 
@@ -22,11 +22,6 @@ module HttpStub
22
22
  @parameters.match?(request)
23
23
  end
24
24
 
25
- def clear
26
- @response.clear
27
- @triggers.clear
28
- end
29
-
30
25
  def to_s
31
26
  @description
32
27
  end
@@ -24,10 +24,6 @@ module HttpStub
24
24
  @args["activation_uri"]
25
25
  end
26
26
 
27
- def clear
28
- @stub.clear
29
- end
30
-
31
27
  def to_s
32
28
  @args.to_s
33
29
  end
@@ -47,10 +47,6 @@ module HttpStub
47
47
  @original_args.empty?
48
48
  end
49
49
 
50
- def clear
51
- # Intentionally blank
52
- end
53
-
54
50
  def to_s
55
51
  @original_args.to_s
56
52
  end
@@ -4,16 +4,10 @@ module HttpStub
4
4
 
5
5
  class File < HttpStub::Server::StubResponse::Base
6
6
 
7
- private
8
-
9
- STORAGE_DIR = "#{HttpStub::BASE_DIR}/tmp/response_files".freeze
10
-
11
- public
12
-
13
7
  add_default_headers "content-type" => "application/octet-stream"
14
8
 
15
9
  def initialize(args)
16
- @file_path = store_file(args["body"])
10
+ @file_path = args["body"][:tempfile].path
17
11
  super(args.merge("body" => @file_path))
18
12
  end
19
13
 
@@ -21,19 +15,8 @@ module HttpStub
21
15
  server.send_file(@file_path, send_options)
22
16
  end
23
17
 
24
- def clear
25
- FileUtils.rm_f(@file_path)
26
- end
27
-
28
18
  private
29
19
 
30
- def store_file(upload)
31
- FileUtils.mkdir_p(STORAGE_DIR)
32
- "#{STORAGE_DIR}/#{upload[:filename]}".tap do |file_path|
33
- ::File.open(file_path, "w") { |file| file.write(upload[:tempfile].read) }
34
- end
35
- end
36
-
37
20
  def send_options
38
21
  { status: @status, type: @headers["content-type"] }.tap do |options|
39
22
  options[:last_modified] = @headers["last-modified"] if @headers["last-modified"]
@@ -13,10 +13,6 @@ module HttpStub
13
13
  @triggers.each { |trigger| registry.add(trigger, request) }
14
14
  end
15
15
 
16
- def clear
17
- @triggers.each(&:clear)
18
- end
19
-
20
16
  def to_s
21
17
  @triggers.reduce("") { |result, trigger| "#{result}\n#{trigger}" }
22
18
  end
@@ -1,3 +1,3 @@
1
1
  module HttpStub
2
- VERSION = "0.15.0".freeze
2
+ VERSION = "0.15.1".freeze
3
3
  end
@@ -7,7 +7,7 @@ describe HttpStub::Server::Registry do
7
7
 
8
8
  shared_context "register multiple models" do
9
9
 
10
- let(:models) { (1..3).map { |i| double("HttpStub::Server::Model#{i}", :satisfies? => false, :clear => nil) } }
10
+ let(:models) { (1..3).map { |i| double("HttpStub::Server::Model#{i}", :satisfies? => false) } }
11
11
 
12
12
  before(:example) { models.each { |model| registry.add(model, request) } }
13
13
 
@@ -136,6 +136,54 @@ describe HttpStub::Server::Registry do
136
136
 
137
137
  end
138
138
 
139
+ describe "#rollback_to" do
140
+
141
+ subject { registry.rollback_to(model) }
142
+
143
+ context "when models have been added" do
144
+
145
+ include_context "register multiple models"
146
+
147
+ context "and the rollback is to one of those models" do
148
+
149
+ let(:model) { models[1] }
150
+
151
+ it "the models remaining are those added up to and including the provided model" do
152
+ subject
153
+
154
+ expect(registry.all).to eql(models[0, 2].reverse)
155
+ end
156
+
157
+ end
158
+
159
+ context "and the rollback is to a model that has not been added" do
160
+
161
+ let(:model) { double("HttpStub::Server::Model") }
162
+
163
+ it "does not remove any models" do
164
+ subject
165
+
166
+ expect(registry.all).to eql(models.reverse)
167
+ end
168
+
169
+ end
170
+
171
+ end
172
+
173
+ context "when no models have been added" do
174
+
175
+ let(:model) { double("HttpStub::Server::Model") }
176
+
177
+ it "does not effect the known models" do
178
+ subject
179
+
180
+ expect(registry.all).to be_empty
181
+ end
182
+
183
+ end
184
+
185
+ end
186
+
139
187
  describe "#clear" do
140
188
 
141
189
  subject { registry.clear(request) }
@@ -150,12 +198,6 @@ describe HttpStub::Server::Registry do
150
198
 
151
199
  include_context "register multiple models"
152
200
 
153
- it "clears each model" do
154
- models.each { |model| expect(model).to receive(:clear) }
155
-
156
- subject
157
- end
158
-
159
201
  it "releases all knowledge of the models" do
160
202
  subject
161
203
 
@@ -101,16 +101,6 @@ describe HttpStub::Server::StubActivator do
101
101
 
102
102
  end
103
103
 
104
- describe "#clear" do
105
-
106
- it "delegates to a HttpStub::Server::Stub constructed from the activator's arguments" do
107
- expect(underlying_stub).to receive(:clear)
108
-
109
- expect(stub_activator.clear)
110
- end
111
-
112
- end
113
-
114
104
  describe "#to_s" do
115
105
 
116
106
  it "returns the string representation of the activation arguments" do
@@ -206,14 +206,6 @@ describe HttpStub::Server::StubResponse::Base do
206
206
 
207
207
  end
208
208
 
209
- describe "#clear" do
210
-
211
- it "executes without error" do
212
- expect { response.clear }.to_not raise_error
213
- end
214
-
215
- end
216
-
217
209
  describe "#to_s" do
218
210
 
219
211
  it "returns the string representation of the provided arguments" do
@@ -12,34 +12,20 @@ describe HttpStub::Server::StubResponse::File do
12
12
  }
13
13
  end
14
14
 
15
- let(:expected_file_path) { "#{HttpStub::BASE_DIR}/tmp/response_files/#{file_name}" }
16
-
17
15
  let(:response_file) { HttpStub::Server::StubResponse::File.new(args) }
18
16
 
19
- after(:example) { FileUtils.rm_rf(expected_file_path) }
20
-
21
17
  it "is a base response" do
22
18
  expect(response_file).to be_a(HttpStub::Server::StubResponse::Base)
23
19
  end
24
20
 
25
- describe "constructor" do
26
-
27
- it "stores the temporary file provided for subsequent use" do
28
- response_file
29
-
30
- expect(FileUtils.identical?(expected_file_path, temp_file_path)).to be(true)
31
- end
32
-
33
- end
34
-
35
21
  describe "#serve_on" do
36
22
 
37
23
  let(:server) { instance_double(Sinatra::Base) }
38
24
 
39
25
  subject { response_file.serve_on(server) }
40
26
 
41
- it "sends the file via the server" do
42
- expect(server).to receive(:send_file).with(expected_file_path, anything)
27
+ it "sends the temp file via the server" do
28
+ expect(server).to receive(:send_file).with(temp_file_path, anything)
43
29
 
44
30
  subject
45
31
  end
@@ -127,14 +113,4 @@ describe HttpStub::Server::StubResponse::File do
127
113
 
128
114
  end
129
115
 
130
- describe "#clear" do
131
-
132
- it "deletes the stored file" do
133
- response_file.clear
134
-
135
- expect(File.exist?(expected_file_path)).to be(false)
136
- end
137
-
138
- end
139
-
140
116
  end
@@ -43,8 +43,8 @@ describe HttpStub::Server::Stub do
43
43
  let(:stub_uri) { instance_double(HttpStub::Server::StubUri, match?: true) }
44
44
  let(:stub_headers) { instance_double(HttpStub::Server::StubHeaders, match?: true) }
45
45
  let(:stub_parameters) { instance_double(HttpStub::Server::StubParameters, match?: true) }
46
- let(:stub_response) { instance_double(HttpStub::Server::StubResponse::Base, clear: nil) }
47
- let(:stub_triggers) { instance_double(HttpStub::Server::StubTriggers, clear: nil) }
46
+ let(:stub_response) { instance_double(HttpStub::Server::StubResponse::Base) }
47
+ let(:stub_triggers) { instance_double(HttpStub::Server::StubTriggers) }
48
48
 
49
49
  let(:the_stub) { HttpStub::Server::Stub.new(stub_args) }
50
50
 
@@ -186,24 +186,6 @@ describe HttpStub::Server::Stub do
186
186
 
187
187
  end
188
188
 
189
- describe "#clear" do
190
-
191
- subject { the_stub.clear }
192
-
193
- it "clears the stub response" do
194
- expect(stub_response).to receive(:clear)
195
-
196
- subject
197
- end
198
-
199
- it "clears the stub triggers" do
200
- expect(stub_triggers).to receive(:clear)
201
-
202
- subject
203
- end
204
-
205
- end
206
-
207
189
  describe "#to_s" do
208
190
 
209
191
  it "returns a string representation of the stub arguments" do
@@ -33,16 +33,6 @@ describe HttpStub::Server::StubTriggers do
33
33
 
34
34
  end
35
35
 
36
- describe "#clear" do
37
-
38
- it "clears each stub" do
39
- stubs_for_triggers.each { |stub| expect(stub).to receive(:clear) }
40
-
41
- stub_triggers.clear
42
- end
43
-
44
- end
45
-
46
36
  describe "#each" do
47
37
 
48
38
  it "yields to the stubs for each trigger" do
data/spec/spec_helper.rb CHANGED
@@ -7,7 +7,7 @@ SimpleCov.start do
7
7
  add_filter "/spec/"
8
8
  add_filter "/vendor/"
9
9
 
10
- minimum_coverage 99.55
10
+ minimum_coverage 99.54
11
11
  refuse_coverage_drop
12
12
  end if ENV["coverage"]
13
13
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http_stub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Ueckerman