http-mock-server 0.2.0 → 0.2.1

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: d6dd3fe9be69948b4bbcae31fbb102c131112d3c
4
- data.tar.gz: 392938c67f005c827cb384106e5a3ed0ae96ed8d
3
+ metadata.gz: fd35b26b58347d86f5e9d6be1cf594cebe2489a5
4
+ data.tar.gz: 687b95c61d7b92fae47a22f4ef9aa209a1429349
5
5
  SHA512:
6
- metadata.gz: e3b721d0ae8936878bd5730a9890bdc0c3296bcaa616a20781238c32eac94e2227766d11a2ac4b647c11dc9d92eddf24d704ab3ad124c3e4f821356dabe6e95a
7
- data.tar.gz: bc73399efb8e6ffb136c1d7f84b6384823dd66558dce8f493cf4cf26c960e09e2bb1b10be597c1e9c3456e10f56221569eaba27c28c9a9810115e2404dce9e1f
6
+ metadata.gz: 32e912c46637ff1a43daf02fe38fed05e56729818e7764bb0e8c20ecd2ff264605a5b5745b8eb95c4345c76e92ddcc80af4595f042770d8a17cf272c7b3f2158
7
+ data.tar.gz: c4dbac2988dc42875246a1e144f822a55d37418c505b2b1d1afdf2f5543ea2d80d2adbb38b702e59a3a4bfab8aa510dc85e45b664c4304357f7f258f4c5b7b30
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- http-mock-server (0.2.0)
4
+ http-mock-server (0.2.1)
5
5
  pry (~> 0.11)
6
6
  sinatra (~> 2.0)
7
7
 
@@ -122,13 +122,23 @@ class HttpMockServer < Sinatra::Base
122
122
  config['routes'][route_id]
123
123
  end
124
124
 
125
- def traverse!(hash)
126
- hash.each do |k, v|
127
- if v.is_a?(Hash) || v.is_a?(Array)
128
- traverse! v
129
- elsif v
130
- hash[k] = interpolate v
125
+ def traverse!(node)
126
+ if node.is_a?(Hash)
127
+ node.each do |k, v|
128
+ traverse_node(node, k, v)
131
129
  end
130
+ elsif node.is_a?(Array)
131
+ node.each_with_index do |v, i|
132
+ traverse_node(node, i, v)
133
+ end
134
+ end
135
+ end
136
+
137
+ def traverse_node(node, k, v)
138
+ if v.is_a?(Hash) || v.is_a?(Array)
139
+ traverse! v
140
+ elsif v
141
+ node[k] = interpolate v
132
142
  end
133
143
  end
134
144
 
@@ -1 +1 @@
1
- MOCK_SERVER_VERSION = '0.2.0'.freeze
1
+ MOCK_SERVER_VERSION = '0.2.1'.freeze
@@ -0,0 +1,19 @@
1
+ require File.expand_path '../spec_helper.rb', __FILE__
2
+
3
+ RSpec.describe HttpMockServer do
4
+ it 'returns the authors' do
5
+ get '/api/v1/authors'
6
+ expect(last_response.status).to eq 200
7
+ expect(last_response.body).to eq({ path: '/api/v1/authors' }.to_json)
8
+ end
9
+
10
+ it 'returns an author' do
11
+ id = rand 100
12
+ get "/api/v1/authors/#{id}"
13
+ expect(last_response.status).to eq 200
14
+ json = JSON.parse last_response.body
15
+ expect(json['var']).to eq(id.to_s)
16
+ expect(json['hash']).to eq('key1' => 'Just a key 4')
17
+ expect(json['array']).to eq([{ 'name' => 'Item 2' }, { 'name' => 'Item 4' }, { 'name' => 'Item 6' }])
18
+ end
19
+ end
@@ -5,14 +5,39 @@ RSpec.describe HttpMockServer do
5
5
  get '/'
6
6
  conf = $config['not_found']
7
7
  expect(last_response.body).to eq conf['body'].to_json
8
- expect(last_response.status).to eq conf['status'] || 404
8
+ expect(last_response.status).to eq 404
9
9
  unless $config['config']['no_cors']
10
10
  expect(HttpMockServer::CORS_HEADERS.to_a - last_response.headers.to_a).to be_empty
11
11
  end
12
12
  end
13
13
 
14
- it 'returns a message' do
14
+ it 'returns the list of posts' do
15
15
  get '/api/v1/posts'
16
+ expect(last_response.status).to eq 200
16
17
  expect(last_response.body).to eq({ message: 'List of posts' }.to_json)
17
18
  end
19
+
20
+ it 'returns a post' do
21
+ get '/api/v1/posts/1'
22
+ expect(last_response.status).to eq 200
23
+ expect(last_response.body).to eq({ post: 'Post #1' }.to_json)
24
+ end
25
+
26
+ it 'returns another post' do
27
+ get '/api/v1/posts/123'
28
+ expect(last_response.status).to eq 200
29
+ expect(last_response.body).to eq({ post: 'Post #123' }.to_json)
30
+ end
31
+
32
+ it 'creates a post' do
33
+ post '/api/v1/posts'
34
+ expect(last_response.status).to eq 201
35
+ expect(last_response.body).to eq({ code: '201', result: 'Ok' }.to_json)
36
+ end
37
+
38
+ it 'deletes something' do
39
+ delete '/api/v1/something'
40
+ expect(last_response.status).to eq 405
41
+ expect(last_response.body).to eq({ message: 'Please don\'t do it' }.to_json)
42
+ end
18
43
  end
@@ -18,30 +18,7 @@ routes:
18
18
  -
19
19
  get: '/posts/:id'
20
20
  body:
21
- content: 'A random number #{rand} !'
22
- extra:
23
- today: 'Today is #{DateTime.now}'
24
- request: 'Post id #{params[:id]} - request path #{request.path}'
25
- more:
26
- is_first: "conditional check #{params[:id] == '1' ? 'first' : 'other'}"
27
- an_array:
28
- - me
29
- - myself
30
- - I
31
- an_array2:
32
- -
33
- name: me
34
- age: 20
35
- -
36
- name: myself
37
- age: 30
38
- -
39
- name: I
40
- age: 40
41
- -
42
- get: '/pry'
43
- body:
44
- message: '#{binding.pry}'
21
+ post: 'Post ##{params[:id]}'
45
22
  -
46
23
  post: '/posts'
47
24
  status: 201
@@ -61,3 +38,21 @@ routes:
61
38
  'Access-Control-Allow-Methods': 'HEAD,GET,PUT,DELETE,OPTIONS'
62
39
  'Access-Control-Allow-Headers': 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Cache-Control, Accept'
63
40
  'Access-Control-Expose-Headers': 'X-Total-Count'
41
+
42
+ -
43
+ get: '/authors'
44
+ body:
45
+ path: '#{request.path}'
46
+ -
47
+ get: '/authors/:id'
48
+ body:
49
+ var: '#{params[:id]}'
50
+ hash:
51
+ key1: 'Just a key #{2*2}'
52
+ array:
53
+ -
54
+ name: 'Item #{1+1}'
55
+ -
56
+ name: 'Item #{2+2}'
57
+ -
58
+ name: 'Item #{3+3}'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http-mock-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mattia Roccoberton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-07 00:00:00.000000000 Z
11
+ date: 2018-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -95,6 +95,7 @@ files:
95
95
  - bin/http-mock-server
96
96
  - lib/http-mock-server.rb
97
97
  - lib/version.rb
98
+ - spec/interpolations_spec.rb
98
99
  - spec/responses_spec.rb
99
100
  - spec/spec_helper.rb
100
101
  - spec/test.yml
@@ -123,6 +124,7 @@ signing_key:
123
124
  specification_version: 4
124
125
  summary: HTTP Mock Server
125
126
  test_files:
127
+ - spec/interpolations_spec.rb
126
128
  - spec/responses_spec.rb
127
129
  - spec/spec_helper.rb
128
130
  - spec/test.yml