mock_server 0.1.0 → 0.1.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.
- data/README.md +15 -10
- data/lib/mock_server/spec/helpers.rb +8 -0
- data/lib/mock_server/utils.rb +2 -2
- metadata +25 -3
data/README.md
CHANGED
@@ -1,27 +1,34 @@
|
|
1
1
|
# MockServer
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
You're building a neat javascript application that consume JSON...
|
4
|
+
|
5
|
+
So you have spec for your models and controller for your API, you do?
|
6
|
+
|
5
7
|
And you're going to test it with something like capybara?
|
6
|
-
|
8
|
+
|
9
|
+
... The thing is that its going to be slow, and you're testing testing all you're application logic again!
|
7
10
|
|
8
11
|
MockServer allow you to record your interaction with the server and give you a way to match
|
9
|
-
the record request with the real request.
|
12
|
+
the record request with the real request.
|
13
|
+
|
14
|
+
Its like a rack [VCR](https://github.com/myronmarston/vcr) for your own API!
|
10
15
|
|
11
16
|
# Recording mode
|
12
17
|
|
13
18
|
Create mount the rack application, in rails
|
14
19
|
|
15
20
|
require 'mock_server/record'
|
16
|
-
config.middleware.use MockServer::Record,
|
17
|
-
|
21
|
+
config.middleware.use MockServer::Record,
|
22
|
+
{ :path => 'fixtures/records', :filename => 'uploads'
|
23
|
+
:routes => [ '/api/*/**', '/api/*/**' ] }
|
18
24
|
|
19
25
|
And you're ready to record. Run the test, build so seed by clicking around. whatever.
|
20
26
|
|
21
27
|
# Playback mode
|
22
28
|
|
23
29
|
require 'mock_server/playback'
|
24
|
-
config.middleware.use MockServer::Playback,
|
30
|
+
config.middleware.use MockServer::Playback,
|
31
|
+
{ :path => 'fixtures/records' }
|
25
32
|
|
26
33
|
Recording your own playback? Noes, don't use the two Rack middleware at the same time.
|
27
34
|
|
@@ -47,9 +54,7 @@ In your spec
|
|
47
54
|
end
|
48
55
|
|
49
56
|
after :each do
|
50
|
-
|
51
|
-
mock_server_clear_matchers!
|
52
|
-
mock_server_response_stack_clear!
|
57
|
+
mock_server_reset!
|
53
58
|
end
|
54
59
|
|
55
60
|
scenario "Some json api fun" do
|
@@ -135,6 +135,14 @@ module MockServer
|
|
135
135
|
mock_server_errors_stack_clear!
|
136
136
|
end
|
137
137
|
|
138
|
+
# Clear all the settings
|
139
|
+
|
140
|
+
def mock_server_reset!
|
141
|
+
mock_server_response_stack_clear!
|
142
|
+
mock_server_clear_matchers!
|
143
|
+
mock_server_disable_all_routes!
|
144
|
+
end
|
145
|
+
|
138
146
|
protected
|
139
147
|
# Configuration
|
140
148
|
def mock_server_config_set(key, value)
|
data/lib/mock_server/utils.rb
CHANGED
@@ -6,8 +6,8 @@ module MockServer
|
|
6
6
|
def lazy_match(strings, path)
|
7
7
|
regexps = strings.map { |str|
|
8
8
|
escaped = Regexp.escape(str)
|
9
|
-
escaped.gsub!('\\*\\*', '[\w
|
10
|
-
escaped.gsub!('\\*', '[\w]+')
|
9
|
+
escaped.gsub!('\\*\\*', '[\w|.|\-|\/]+')
|
10
|
+
escaped.gsub!('\\*', '[\w|.|\-]+')
|
11
11
|
Regexp.new("^#{escaped}$")
|
12
12
|
}
|
13
13
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mock_server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,30 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-11-
|
13
|
-
dependencies:
|
12
|
+
date: 2011-11-04 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rack
|
16
|
+
requirement: &70228222928080 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70228222928080
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: hashie
|
27
|
+
requirement: &70228222921080 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.2'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70228222921080
|
14
36
|
description:
|
15
37
|
email: unixcharles@gmail.com
|
16
38
|
executables: []
|