fakeit 0.6.1 → 0.8.0

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
  SHA256:
3
- metadata.gz: 59bece2543ccaf7906abc84fc93b4b00052f66a1eb4ba4b203b68316aa622c54
4
- data.tar.gz: 9707b83a083a2005bf79794bf92b88d377c768d859cd77c71fa4b987f88846b0
3
+ metadata.gz: 285f5035e5fbd29cc124715beb4a901f63641eace09deda6b42a520222bc706c
4
+ data.tar.gz: 4dcacbd9adbfabdb80e265e740829afc920e9653563c047206197f39716336e6
5
5
  SHA512:
6
- metadata.gz: 42e43ec523c1ca862793d771bcf0c7eefa2cbf82711d95fd731fff10c011a151d37e6f59ee4df030a27432a392b4d210f23143711bc1dca5af15a64989ee684b
7
- data.tar.gz: 32817be7cb3bc2eca9749a503a2ccbee8b955caafaf93fe0a338a91473320993935507efbafe02ea96e493f4a9af435f028711460c6dd96510078caaa040ad10
6
+ metadata.gz: 8b07445c0ddc4b8d21918b0ee6ede3108d1fcd01ff0babe8ae8aed1cc3686f4953d7ee0486247dd6f77195abafcd1a1584c44fe0a2e7030f24fba476883f256f
7
+ data.tar.gz: ecf3f4325a81c3ca550ff08f4738385ae9ae3d4de46bd32262dc58d303ac40f80ecd505ef29b411e59c25f360ca38c3f09c7839e75e538c33828d86b5872bef2
data/.circleci/config.yml CHANGED
@@ -12,7 +12,7 @@ jobs:
12
12
 
13
13
  docker:
14
14
  # specify the version you desire here
15
- - image: circleci/ruby:2.7.0
15
+ - image: circleci/ruby:3.0.0
16
16
 
17
17
  # Specify service dependencies here if necessary
18
18
  # CircleCI maintains a library of pre-built images
data/.rubocop.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.7
2
+ TargetRubyVersion: 3.0
3
+ NewCops: enable
3
4
 
4
5
  Style/Documentation:
5
6
  Enabled: false
@@ -18,17 +19,5 @@ Metrics/BlockLength:
18
19
  Security/Open:
19
20
  Enabled: false
20
21
 
21
- Style/HashEachMethods:
22
- Enabled: true
23
-
24
22
  Style/HashTransformKeys:
25
23
  Enabled: false
26
-
27
- Style/HashTransformValues:
28
- Enabled: true
29
-
30
- Lint/RaiseException:
31
- Enabled: true
32
-
33
- Lint/StructNewOverride:
34
- Enabled: true
data/CHANGELOG.md ADDED
@@ -0,0 +1,168 @@
1
+ # Changelog
2
+
3
+ ## [v0.7.1](https://github.com/JustinFeng/fakeit/tree/v0.7.1) (2021-02-07)
4
+
5
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.7.0...v0.7.1)
6
+
7
+ **Fixed bugs:**
8
+
9
+ - ERROR NoMethodError: undefined method `to\_example' for \# [\#20](https://github.com/JustinFeng/fakeit/issues/20)
10
+
11
+ ## [v0.7.0](https://github.com/JustinFeng/fakeit/tree/v0.7.0) (2020-10-22)
12
+
13
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.6.3...v0.7.0)
14
+
15
+ **Implemented enhancements:**
16
+
17
+ - Supported change mock server behaviour on the fly
18
+ - Allowed to redirect console log to a file
19
+
20
+ ## [v0.6.3](https://github.com/JustinFeng/fakeit/tree/v0.6.3) (2020-09-11)
21
+
22
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.6.2...v0.6.3)
23
+
24
+ **Implemented enhancements:**
25
+
26
+ - Enhanced regex example generation
27
+
28
+ ## [v0.6.2](https://github.com/JustinFeng/fakeit/tree/v0.6.2) (2020-07-12)
29
+
30
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.6.1...v0.6.2)
31
+
32
+ ## [v0.6.1](https://github.com/JustinFeng/fakeit/tree/v0.6.1) (2020-05-02)
33
+
34
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.6.0...v0.6.1)
35
+
36
+ ## [v0.6.0](https://github.com/JustinFeng/fakeit/tree/v0.6.0) (2020-05-02)
37
+
38
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.5.3...v0.6.0)
39
+
40
+ **Implemented enhancements:**
41
+
42
+ - Added support for multipart/form-data validation
43
+
44
+ **Fixed bugs:**
45
+
46
+ - Multipart request contain special character will respond 500 [\#16](https://github.com/JustinFeng/fakeit/issues/16)
47
+
48
+ ## [v0.5.3](https://github.com/JustinFeng/fakeit/tree/v0.5.3) (2020-04-05)
49
+
50
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.5.2...v0.5.3)
51
+
52
+ ## [v0.5.2](https://github.com/JustinFeng/fakeit/tree/v0.5.2) (2020-04-03)
53
+
54
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.5.1...v0.5.2)
55
+
56
+ ## [v0.5.1](https://github.com/JustinFeng/fakeit/tree/v0.5.1) (2020-04-03)
57
+
58
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.5.0...v0.5.1)
59
+
60
+ ## [v0.5.0](https://github.com/JustinFeng/fakeit/tree/v0.5.0) (2020-04-03)
61
+
62
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.4.2...v0.5.0)
63
+
64
+ **Merged pull requests:**
65
+
66
+ - Bump rack from 2.0.7 to 2.0.8 [\#18](https://github.com/JustinFeng/fakeit/pull/18) ([dependabot[bot]](https://github.com/apps/dependabot))
67
+
68
+ ## [v0.4.2](https://github.com/JustinFeng/fakeit/tree/v0.4.2) (2019-11-22)
69
+
70
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.4.1...v0.4.2)
71
+
72
+ ## [v0.4.1](https://github.com/JustinFeng/fakeit/tree/v0.4.1) (2019-11-21)
73
+
74
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.4.0...v0.4.1)
75
+
76
+ **Merged pull requests:**
77
+
78
+ - Bump rack-cors from 1.0.3 to 1.0.6 [\#17](https://github.com/JustinFeng/fakeit/pull/17) ([dependabot[bot]](https://github.com/apps/dependabot))
79
+
80
+ ## [v0.4.0](https://github.com/JustinFeng/fakeit/tree/v0.4.0) (2019-10-09)
81
+
82
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.3.1...v0.4.0)
83
+
84
+ **Implemented enhancements:**
85
+
86
+ - Implement support for watching for changes in spec/yaml file. [\#15](https://github.com/JustinFeng/fakeit/issues/15)
87
+
88
+ ## [v0.3.1](https://github.com/JustinFeng/fakeit/tree/v0.3.1) (2019-09-01)
89
+
90
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.3.0...v0.3.1)
91
+
92
+ ## [v0.3.0](https://github.com/JustinFeng/fakeit/tree/v0.3.0) (2019-08-27)
93
+
94
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.2.1...v0.3.0)
95
+
96
+ **Closed issues:**
97
+
98
+ - Missing "motivation" section in readme [\#14](https://github.com/JustinFeng/fakeit/issues/14)
99
+
100
+ ## [v0.2.1](https://github.com/JustinFeng/fakeit/tree/v0.2.1) (2019-08-04)
101
+
102
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.2.0...v0.2.1)
103
+
104
+ **Implemented enhancements:**
105
+
106
+ - Support .yaml files [\#9](https://github.com/JustinFeng/fakeit/issues/9)
107
+
108
+ **Fixed bugs:**
109
+
110
+ - Adjust integer generation bounds [\#12](https://github.com/JustinFeng/fakeit/issues/12)
111
+
112
+ **Closed issues:**
113
+
114
+ - End to End Tests [\#8](https://github.com/JustinFeng/fakeit/issues/8)
115
+
116
+ **Merged pull requests:**
117
+
118
+ - support .yaml files [\#10](https://github.com/JustinFeng/fakeit/pull/10) ([monsterkrampe](https://github.com/monsterkrampe))
119
+
120
+ ## [v0.2.0](https://github.com/JustinFeng/fakeit/tree/v0.2.0) (2019-07-17)
121
+
122
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.1.5...v0.2.0)
123
+
124
+ **Implemented enhancements:**
125
+
126
+ - Generate more array elements with performance considered [\#7](https://github.com/JustinFeng/fakeit/issues/7)
127
+ - Non random response [\#5](https://github.com/JustinFeng/fakeit/issues/5)
128
+
129
+ **Fixed bugs:**
130
+
131
+ - Invalid example for number type with more than 2 decimal places 'multipleOf' [\#6](https://github.com/JustinFeng/fakeit/issues/6)
132
+
133
+ ## [v0.1.5](https://github.com/JustinFeng/fakeit/tree/v0.1.5) (2019-06-28)
134
+
135
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.1.4...v0.1.5)
136
+
137
+ **Implemented enhancements:**
138
+
139
+ - Allow CORS [\#4](https://github.com/JustinFeng/fakeit/pull/4) ([monsterkrampe](https://github.com/monsterkrampe))
140
+
141
+ ## [v0.1.4](https://github.com/JustinFeng/fakeit/tree/v0.1.4) (2019-06-25)
142
+
143
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.1.3...v0.1.4)
144
+
145
+ **Implemented enhancements:**
146
+
147
+ - W, \[2019-06-25T03:00:29.635993 \#1\] WARN -- : Unknown string format: guid [\#2](https://github.com/JustinFeng/fakeit/issues/2)
148
+
149
+ **Fixed bugs:**
150
+
151
+ - Request not completing [\#3](https://github.com/JustinFeng/fakeit/issues/3)
152
+ - Stack level too deep in docker container [\#1](https://github.com/JustinFeng/fakeit/issues/1)
153
+
154
+ ## [v0.1.3](https://github.com/JustinFeng/fakeit/tree/v0.1.3) (2019-06-16)
155
+
156
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.1.2...v0.1.3)
157
+
158
+ ## [v0.1.2](https://github.com/JustinFeng/fakeit/tree/v0.1.2) (2019-06-05)
159
+
160
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/v0.1.1...v0.1.2)
161
+
162
+ ## [v0.1.1](https://github.com/JustinFeng/fakeit/tree/v0.1.1) (2019-05-26)
163
+
164
+ [Full Changelog](https://github.com/JustinFeng/fakeit/compare/4f94874eaf87300496e9de632cd659a031cb3ce2...v0.1.1)
165
+
166
+
167
+
168
+ \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
data/Gemfile.lock CHANGED
@@ -1,67 +1,78 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fakeit (0.6.1)
5
- faker (= 2.11.0)
6
- openapi_parser (= 0.8.0)
4
+ fakeit (0.8.0)
5
+ faker (= 2.13.0)
6
+ openapi_parser (= 0.12.1)
7
7
  rack (~> 2.0)
8
8
  rack-cors (~> 1.0)
9
9
  rainbow (~> 3.0)
10
+ regexp-examples (= 1.5.1)
10
11
  slop (~> 4.8)
12
+ webrick (~> 1.7)
11
13
 
12
14
  GEM
13
15
  remote: https://rubygems.org/
14
16
  specs:
15
- ast (2.4.0)
16
- byebug (11.1.1)
17
- concurrent-ruby (1.1.6)
18
- diff-lcs (1.3)
19
- docile (1.3.2)
20
- faker (2.11.0)
17
+ ast (2.4.2)
18
+ byebug (11.1.3)
19
+ concurrent-ruby (1.1.8)
20
+ diff-lcs (1.4.4)
21
+ docile (1.3.5)
22
+ faker (2.13.0)
21
23
  i18n (>= 1.6, < 2)
22
- i18n (1.8.2)
24
+ i18n (1.8.9)
23
25
  concurrent-ruby (~> 1.0)
24
- jaro_winkler (1.5.4)
25
- openapi_parser (0.8.0)
26
- parallel (1.19.1)
27
- parser (2.7.0.5)
28
- ast (~> 2.4.0)
29
- rack (2.2.2)
26
+ openapi_parser (0.12.1)
27
+ parallel (1.20.1)
28
+ parser (3.0.0.0)
29
+ ast (~> 2.4.1)
30
+ rack (2.2.3)
30
31
  rack-cors (1.1.1)
31
32
  rack (>= 2.0.0)
32
33
  rack-test (1.1.0)
33
34
  rack (>= 1.0, < 3)
34
35
  rainbow (3.0.0)
35
- rake (12.3.3)
36
+ rake (13.0.3)
37
+ regexp-examples (1.5.1)
38
+ regexp_parser (2.1.1)
36
39
  rexml (3.2.4)
37
- rspec (3.9.0)
38
- rspec-core (~> 3.9.0)
39
- rspec-expectations (~> 3.9.0)
40
- rspec-mocks (~> 3.9.0)
41
- rspec-core (3.9.1)
42
- rspec-support (~> 3.9.1)
43
- rspec-expectations (3.9.1)
40
+ rspec (3.10.0)
41
+ rspec-core (~> 3.10.0)
42
+ rspec-expectations (~> 3.10.0)
43
+ rspec-mocks (~> 3.10.0)
44
+ rspec-core (3.10.1)
45
+ rspec-support (~> 3.10.0)
46
+ rspec-expectations (3.10.1)
44
47
  diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.9.0)
46
- rspec-mocks (3.9.1)
48
+ rspec-support (~> 3.10.0)
49
+ rspec-mocks (3.10.2)
47
50
  diff-lcs (>= 1.2.0, < 2.0)
48
- rspec-support (~> 3.9.0)
49
- rspec-support (3.9.2)
50
- rubocop (0.81.0)
51
- jaro_winkler (~> 1.5.1)
51
+ rspec-support (~> 3.10.0)
52
+ rspec-support (3.10.2)
53
+ rubocop (1.10.0)
52
54
  parallel (~> 1.10)
53
- parser (>= 2.7.0.1)
55
+ parser (>= 3.0.0.0)
54
56
  rainbow (>= 2.2.2, < 4.0)
57
+ regexp_parser (>= 1.8, < 3.0)
55
58
  rexml
59
+ rubocop-ast (>= 1.2.0, < 2.0)
56
60
  ruby-progressbar (~> 1.7)
57
- unicode-display_width (>= 1.4.0, < 2.0)
58
- ruby-progressbar (1.10.1)
59
- simplecov (0.18.5)
61
+ unicode-display_width (>= 1.4.0, < 3.0)
62
+ rubocop-ast (1.4.1)
63
+ parser (>= 2.7.1.5)
64
+ rubocop-rake (0.5.1)
65
+ rubocop
66
+ ruby-progressbar (1.11.0)
67
+ simplecov (0.21.2)
60
68
  docile (~> 1.1)
61
69
  simplecov-html (~> 0.11)
62
- simplecov-html (0.12.2)
63
- slop (4.8.1)
64
- unicode-display_width (1.7.0)
70
+ simplecov_json_formatter (~> 0.1)
71
+ simplecov-html (0.12.3)
72
+ simplecov_json_formatter (0.1.2)
73
+ slop (4.8.2)
74
+ unicode-display_width (2.0.0)
75
+ webrick (1.7.0)
65
76
 
66
77
  PLATFORMS
67
78
  ruby
@@ -71,10 +82,11 @@ DEPENDENCIES
71
82
  byebug (~> 11.0)
72
83
  fakeit!
73
84
  rack-test (~> 1.1)
74
- rake (~> 12.0)
85
+ rake (~> 13.0)
75
86
  rspec (~> 3.0)
76
- rubocop (~> 0.80)
87
+ rubocop (~> 1.10)
88
+ rubocop-rake (~> 0.5)
77
89
  simplecov (~> 0.18)
78
90
 
79
91
  BUNDLED WITH
80
- 2.1.2
92
+ 2.2.11
data/README.md CHANGED
@@ -30,14 +30,12 @@ After tried several existing options, we cannot find a best solution to meet all
30
30
 
31
31
  ## Features
32
32
 
33
- * Randomly or statically generated response
34
- * Request validation
33
+ * Randomly or statically generated response (`application/.*json`)
34
+ * Request validation (`application/.*json`, `multipart/form-data`)
35
35
  * Load specification from local or remote
36
36
  * Support hot reload local specification
37
37
  * Support specification in yaml or json format
38
38
 
39
- **Note:** Only support json content type as of now
40
-
41
39
  ## Installation
42
40
 
43
41
  Install it with:
@@ -50,13 +48,14 @@ Or use the [docker image](https://hub.docker.com/r/realfengjia/fakeit)
50
48
 
51
49
  $ fakeit --spec <Local file or remote url>
52
50
 
53
- Command line options:
51
+ ### Command line options
54
52
 
55
53
  $ fakeit --help
56
54
  usage:
57
55
  --spec spec file uri (required)
58
56
  -p, --port custom port
59
57
  -q, --quiet mute request and response log
58
+ -l, --log-file redirect log to a file
60
59
  --permissive log validation error as warning instead of denying request
61
60
  --use-example use example provided in spec if exists
62
61
  --static generate static response
@@ -67,6 +66,33 @@ Command line options:
67
66
  -v, --version
68
67
  -h, --help
69
68
 
69
+ ### Configuration endpoint
70
+
71
+ Mock server behaviour can be changed on the fly
72
+
73
+ Retrieve current config:
74
+
75
+ GET /__fakeit_config__
76
+
77
+ Update config:
78
+
79
+ PUT /__fakeit_config__
80
+
81
+ Request and response:
82
+ ```json
83
+ {
84
+ "permissive": false,
85
+ "use_example": true,
86
+ "static": false,
87
+ "static_types": [
88
+ "integer"
89
+ ],
90
+ "static_properties": [
91
+ "id"
92
+ ]
93
+ }
94
+ ```
95
+
70
96
  **Notes:**
71
97
  * See [here](docs/random.md) for Openapi properties supported in random response generation
72
98
  * See [here](docs/static.md) for default value in static response generation
data/bin/fakeit CHANGED
@@ -10,6 +10,7 @@ begin
10
10
  o.string '--spec', 'spec file uri (required)', required: true
11
11
  o.integer '-p', '--port', 'custom port'
12
12
  o.bool '-q', '--quiet', 'mute request and response log'
13
+ o.string '-l', '--log-file', 'redirect log to a file'
13
14
  o.bool '--permissive', 'log validation error as warning instead of denying request'
14
15
  o.bool '--use-example', 'use example provided in spec if exists'
15
16
  o.bool '--static', 'generate static response'
@@ -53,6 +54,9 @@ options = Fakeit::App::Options.new(
53
54
  )
54
55
  app = Fakeit.build(opts[:spec], options)
55
56
 
57
+ $stderr.reopen(File.new(opts[:log_file], File::WRONLY | File::TRUNC | File::CREAT)) if opts[:log_file]
58
+ $stderr.sync = true
59
+
56
60
  app.use Rack::Cors do
57
61
  allow do
58
62
  origins '*'
data/docs/random.md CHANGED
@@ -11,7 +11,7 @@ The following Openapi properties are supported in random response generation
11
11
  | |minItems|Default: `1`|
12
12
  | |maxItems|Default: `minItems + 2`|
13
13
  |string|enum| |
14
- | |pattern| |
14
+ | |pattern|Random generated once and cached for performance concern|
15
15
  | |format=uri| |
16
16
  | |format=uuid| |
17
17
  | |format=guid| |
data/fakeit.gemspec CHANGED
@@ -22,20 +22,23 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = 'fakeit'
23
23
  spec.require_paths = ['lib']
24
24
 
25
- spec.required_ruby_version = '>= 2.7.0'
25
+ spec.required_ruby_version = '>= 3.0.0'
26
26
 
27
27
  spec.add_development_dependency 'bundler', '~> 2.0'
28
28
  spec.add_development_dependency 'byebug', '~> 11.0'
29
29
  spec.add_development_dependency 'rack-test', '~> 1.1'
30
- spec.add_development_dependency 'rake', '~> 12.0'
30
+ spec.add_development_dependency 'rake', '~> 13.0'
31
31
  spec.add_development_dependency 'rspec', '~> 3.0'
32
- spec.add_development_dependency 'rubocop', '~> 0.80'
32
+ spec.add_development_dependency 'rubocop', '~> 1.10'
33
+ spec.add_development_dependency 'rubocop-rake', '~> 0.5'
33
34
  spec.add_development_dependency 'simplecov', '~> 0.18'
34
35
 
35
- spec.add_dependency 'faker', '2.11.0'
36
- spec.add_dependency 'openapi_parser', '0.8.0'
36
+ spec.add_dependency 'faker', '2.13.0'
37
+ spec.add_dependency 'openapi_parser', '0.12.1'
37
38
  spec.add_dependency 'rack', '~> 2.0'
38
39
  spec.add_dependency 'rack-cors', '~> 1.0'
39
40
  spec.add_dependency 'rainbow', '~> 3.0'
41
+ spec.add_dependency 'regexp-examples', '1.5.1'
40
42
  spec.add_dependency 'slop', '~> 4.8'
43
+ spec.add_dependency 'webrick', '~> 1.7'
41
44
  end