yafs 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d06981b82e35798f328314dad61f9ff6d83d055c
4
- data.tar.gz: b9de49f8c8ec49de0fc5688e299095c9e770b91a
3
+ metadata.gz: a4b12f8d927b65c8d4ebaaca97000c2634981ebd
4
+ data.tar.gz: 0d3b33afc2c86a9836f6c2a7fed056cf6b177627
5
5
  SHA512:
6
- metadata.gz: 28d61ef207beec9f1beceddea67e37a2245084de4f1b2d2ae0876648ba9a26f0e5a7316e12cc1d38ff21b11793d742fd10e82873b87aa33131bad7613e52a277
7
- data.tar.gz: 0cc17559b3c5711b2383313d2f2113b813d556aa9879212ef07caf55097e7ba4e33ffdda2c2d020f9cd4f536f021d41c90837b368a91cda5245612f375eff2a8
6
+ metadata.gz: 5a1e3d09db2a1505d0644f3879aa2dbe06a5f47afe56b971ac139d1a3ca78d705f360e80d213ce22c50607c748e3f3d4803058702ae5b3c9e39348189369563c
7
+ data.tar.gz: b14f0b4923ebf217ee75cb8e46f1017b155df21a0dc7159110dd5cb49858d4ef99d80a867c339a25796139531a9acf2880aa2c4049e6789b99a1ac3b9cbd779d
@@ -0,0 +1,14 @@
1
+ module Fake
2
+ class Request < Rack::Request
3
+
4
+ def POST
5
+ params = super
6
+ if content_type && content_type.downcase == 'application/json'
7
+ hash = JSON.parse(body.gets)
8
+ params.merge!(hash)
9
+ end
10
+ params
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,27 @@
1
+ module Fake
2
+ class Requests
3
+ attr_accessor :requests
4
+ include Singleton
5
+ class << self
6
+ def request(method, path)
7
+ matching_request = nil
8
+ instance.requests.each do |request|
9
+ if request.request_method == method.to_s.upcase &&
10
+ request.path == path
11
+ matching_request = request
12
+ end
13
+ end
14
+ matching_request
15
+ end
16
+
17
+ def add_request(request)
18
+ instance.requests << request
19
+ end
20
+ end
21
+ private
22
+ def initialize
23
+ @requests = []
24
+ end
25
+ end
26
+
27
+ end
@@ -3,6 +3,8 @@ require 'singleton'
3
3
  require 'WEBrick'
4
4
  require_relative './fake/service.rb'
5
5
  require_relative './fake/request_handler.rb'
6
+ require_relative './fake/requests.rb'
7
+ require_relative './fake/request.rb'
6
8
  require_relative './fake/fake.rb'
7
9
 
8
10
  Thread.abort_on_exception = true
@@ -62,7 +64,8 @@ module Fake
62
64
  end
63
65
 
64
66
  def call(env)
65
- request = Rack::Request.new(env)
67
+ request = Fake::Request.new(env)
68
+
66
69
  # TODO: Make this part of rack stack
67
70
  Requests.add_request(request)
68
71
 
@@ -99,32 +102,5 @@ module Fake
99
102
  end
100
103
  end
101
104
  end
102
- class Requests
103
-
104
- attr_accessor :requests
105
- include Singleton
106
- class << self
107
- def request(method, path)
108
- matching_request = nil
109
- instance.requests.each do |request|
110
- if request.request_method == method.to_s.upcase &&
111
- request.path == path
112
- matching_request = request
113
- end
114
- end
115
- matching_request
116
- end
117
-
118
- def add_request(request)
119
- instance.requests << request
120
- end
121
- end
122
- private
123
- def initialize
124
- @requests = []
125
- end
126
-
127
-
128
- end
129
105
  end
130
106
 
@@ -91,6 +91,43 @@ describe 'Fake Service' do
91
91
  HTTParty.get('http://localhost:4567/cart?id=5&status=pending')
92
92
  expect(Fake::Requests.request(:my_cart_request)).not_to be nil
93
93
  end
94
+
95
+ context "from post request" do
96
+ before do
97
+ Fake.start(port:4567)
98
+ Fake.post('/').respond(status:400)
99
+ end
100
+ after do
101
+ Fake.stop
102
+ end
103
+ context "when content-type is 'application/json'" do
104
+ before do
105
+ HTTParty.post('http://localhost:4567/', body:{"data" => {"some"=>"1", "thing"=>"0"}}.to_json,
106
+ headers: {"Content-Type"=>"application/json"})
107
+ end
108
+ it "sets the parsed json to params" do
109
+ request = Fake::Requests.request(:post, '/')
110
+ expect(request.params['data']['some']).to eq '1'
111
+ expect(request.params['data']['thing']).to eq '0'
112
+ end
113
+
114
+ it "the json is available for subsequent requests" do
115
+ request = Fake::Requests.request(:post, '/')
116
+ expect(request.params['data']['some']).to eq '1'
117
+ expect(request.params['data']['thing']).to eq '0'
118
+ request = Fake::Requests.request(:post, '/')
119
+ expect(request.params['data']['some']).to eq '1'
120
+ expect(request.params['data']['thing']).to eq '0'
121
+ end
122
+
123
+ context "when post body not received" do
124
+ xit "raises error or what?" do
125
+ end
126
+ end
127
+ end
128
+
129
+ end
130
+
94
131
  end
95
132
 
96
133
  describe "ordering" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yafs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mika Lackman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-16 00:00:00.000000000 Z
11
+ date: 2015-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -32,7 +32,9 @@ extra_rdoc_files: []
32
32
  files:
33
33
  - README.md
34
34
  - lib/fake/fake.rb
35
+ - lib/fake/request.rb
35
36
  - lib/fake/request_handler.rb
37
+ - lib/fake/requests.rb
36
38
  - lib/fake/service.rb
37
39
  - lib/fake_service.rb
38
40
  - spec/fake/request_handler_spec.rb
@@ -68,3 +70,4 @@ test_files:
68
70
  - spec/features/fake_service_spec.rb
69
71
  - spec/helpers.rb
70
72
  - spec/spec_helper.rb
73
+ has_rdoc: