lurker 0.6.8 → 1.0.0

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.
Files changed (82) hide show
  1. checksums.yaml +5 -5
  2. data/.hound.yml +4 -78
  3. data/.jshintrc +33 -0
  4. data/.rspec +1 -2
  5. data/.rubocop.yml +0 -1
  6. data/.travis.yml +30 -19
  7. data/Gemfile +0 -33
  8. data/README.md +32 -53
  9. data/Rakefile +3 -3
  10. data/cucumber.yml +1 -2
  11. data/features/atom_persistent_within_the_same_type.feature +4 -4
  12. data/features/controller_nested_schema_scaffolding.feature +7 -10
  13. data/features/controller_schema_scaffolding.feature +1 -3
  14. data/features/dereferencing_through_inlining.feature +1 -3
  15. data/features/html_generation.feature +26 -4
  16. data/features/minitest.feature +3 -8
  17. data/features/multidomain_support.feature +6 -10
  18. data/features/multitype_request_support.feature +1 -3
  19. data/features/partials.feature +3 -8
  20. data/features/request_nested_schema_scaffolding.feature +0 -2
  21. data/features/request_schema_scaffolding.feature +0 -2
  22. data/features/schema_suffixes.feature +2 -18
  23. data/features/schema_updating_within_test_suite.feature +2 -6
  24. data/features/step_definitions/additional_cli_steps.rb +16 -12
  25. data/features/support/env.rb +50 -10
  26. data/features/test_endpoint.feature +2 -9
  27. data/gemfiles/rails_4.gemfile +14 -0
  28. data/gemfiles/rails_5.gemfile +10 -0
  29. data/gemfiles/rails_6.gemfile +10 -0
  30. data/lib/lurker.rb +9 -2
  31. data/lib/lurker/cli.rb +148 -128
  32. data/lib/lurker/endpoint.rb +11 -7
  33. data/lib/lurker/form_builder.rb +22 -31
  34. data/lib/lurker/json/concerns/validatable.rb +5 -1
  35. data/lib/lurker/json/parser.rb +1 -1
  36. data/lib/lurker/json/schema.rb +19 -6
  37. data/lib/lurker/json/{writter.rb → writer.rb} +2 -2
  38. data/lib/lurker/presenters/base_presenter.rb +10 -34
  39. data/lib/lurker/presenters/endpoint_presenter.rb +19 -8
  40. data/lib/lurker/presenters/schema_presenter.rb +6 -5
  41. data/lib/lurker/presenters/service_presenter.rb +41 -7
  42. data/lib/lurker/rendering_controller.rb +14 -7
  43. data/lib/lurker/service.rb +27 -11
  44. data/lib/lurker/spec_helper/rspec.rb +0 -4
  45. data/lib/lurker/spy.rb +3 -1
  46. data/lib/lurker/templates/documentation.md.tt +1 -0
  47. data/lib/lurker/templates/javascripts/lurker.js +133 -91
  48. data/lib/lurker/templates/layouts/_sidemenu.html.erb +2 -2
  49. data/lib/lurker/templates/layouts/application.html.erb +54 -57
  50. data/lib/lurker/templates/layouts/print.html.erb +31 -0
  51. data/lib/lurker/templates/lurker/rendering/_endpoint.html.erb +37 -0
  52. data/lib/lurker/templates/lurker/rendering/_param_form_element.html.erb +1 -1
  53. data/lib/lurker/templates/lurker/rendering/_service.html.erb +7 -0
  54. data/lib/lurker/templates/lurker/rendering/_submit_form.html.erb +77 -73
  55. data/lib/lurker/templates/lurker/rendering/all.html.erb +5 -0
  56. data/lib/lurker/templates/lurker/rendering/index.html.erb +1 -10
  57. data/lib/lurker/templates/lurker/rendering/show.html.erb +1 -37
  58. data/lib/lurker/templates/public/application.css +6 -2
  59. data/lib/lurker/templates/public/application.js +13 -13
  60. data/lib/lurker/templates/stylesheets/application.scss +3 -0
  61. data/lib/lurker/version.rb +1 -1
  62. data/lurker.gemspec +31 -33
  63. data/spec/spec_helper.rb +0 -1
  64. data/tasks/build.rake +12 -8
  65. data/tasks/generate.rake +44 -17
  66. data/templates/Dockerfile +26 -0
  67. data/templates/generate_stuff.rb +59 -26
  68. data/templates/lurker_app.rb +27 -48
  69. data/templates/rails4_ruby26_thread_error_fix.rb +20 -0
  70. metadata +149 -106
  71. checksums.yaml.gz.sig +0 -2
  72. data.tar.gz.sig +0 -3
  73. data/Appraisals +0 -20
  74. data/gemfiles/rails_32.gemfile +0 -27
  75. data/gemfiles/rails_40.gemfile +0 -27
  76. data/gemfiles/rails_41.gemfile +0 -27
  77. data/gemfiles/rails_42.gemfile +0 -27
  78. data/lib/lurker/templates/lurker/rendering/_param_form_legend.html.erb +0 -1
  79. data/lib/lurker/templates/meta_service.md.erb +0 -20
  80. data/lib/lurker/validation_error.rb +0 -4
  81. data/templates/rails32_http_patch_support.rb +0 -125
  82. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7e604c784c2ea3ac2872a5317a5565894f0085fe
4
- data.tar.gz: a5d2eb6535c700fe1c0916062b2699b08697af59
2
+ SHA256:
3
+ metadata.gz: 74bcb914a737099b70ce82f674ad54cfa5c0f1e47745a07f0329d2b681023ebb
4
+ data.tar.gz: 227765d414c360ae6b1e1312d0c5234bf6e6f30b8d09079b347dcbf8c80e90cf
5
5
  SHA512:
6
- metadata.gz: ad02702231dd5445dde644e0d98c81302d95d51f6d7e1f90379d942b9b6de03986adcea25a2196817fc817210442808d8244c13f08613ca95454b6fe534680d6
7
- data.tar.gz: 13c23cac89fea2961d911d7e5ccaf8d07186949ca57b79ce20571686db1a5a5dde2ebfe82df8562c7200ab01cdfeed63996ab256e1d4ec6b984bc14a538b00a9
6
+ metadata.gz: 90c753d8f6934b63fcff5a9abf62e17e71a1d578d93a9a774cccfa30186d8437f8c40d6adbcda8c24a5bce5105e3c75274292252626193b05a8c6985b5b1ea3f
7
+ data.tar.gz: 32e85f3c317c41425983bca85a6dd7a53476c1ecb0647897b6897a89f8047fa0419ebd5822f2cdf377d7216b23864ef5178c22f539c5a6e64ab831e8224c0088
data/.hound.yml CHANGED
@@ -1,80 +1,6 @@
1
- AllCops:
2
- Exclude:
3
- - 'tmp/**/*'
4
- - 'templates/rails32_http_patch_support.rb'
1
+ ruby:
2
+ config_file: .rubocop.yml
5
3
 
6
- TrailingBlankLines:
7
- Enabled: false
8
-
9
- StringLiterals:
10
- Enabled: false
11
-
12
- SignalException:
13
- Enabled: false
14
-
15
- AlignParameters:
16
- Enabled: false
17
-
18
- MultilineTernaryOperator:
19
- Enabled: false
20
-
21
- LineLength:
22
- Enabled: false
23
-
24
- RedundantSelf:
25
- Enabled: false
26
-
27
- GuardClause:
28
- Enabled: false
29
-
30
- Next:
31
- Enabled: false
32
-
33
- SpaceAroundEqualsInParameterDefault:
34
- Enabled: false
35
-
36
- AssignmentInCondition:
37
- Enabled: false
38
-
39
- Documentation:
40
- Enabled: false
41
-
42
- HashSyntax:
43
- Enabled: false
44
-
45
- PercentLiteralDelimiters:
46
- Enabled: false
47
-
48
- UnneededPercentQ:
49
- Enabled: false
50
-
51
- Blocks:
52
- Enabled: false
53
-
54
- DoubleNegation:
55
- Enabled: false
56
-
57
- CaseEquality:
58
- Enabled: false
59
-
60
- SpecialGlobalVars:
61
- Enabled: false
62
-
63
- UnusedMethodArgument:
64
- Enabled: false
65
-
66
- UnusedBlockArgument:
67
- Enabled: false
68
-
69
- CollectionMethods:
70
- Enabled: false
71
-
72
- TrivialAccessors:
73
- Enabled: false
74
-
75
- IndentationWidth:
76
- Enabled: false
77
-
78
- IndentHash:
79
- Enabled: false
4
+ javascript:
5
+ config_file: .jshintrc
80
6
 
@@ -0,0 +1,33 @@
1
+ {
2
+ "asi": false,
3
+ "bitwise": true,
4
+ "browser": true,
5
+ "camelcase": true,
6
+ "curly": true,
7
+ "forin": true,
8
+ "immed": true,
9
+ "latedef": "nofunc",
10
+ "maxlen": 120,
11
+ "newcap": true,
12
+ "noarg": true,
13
+ "noempty": true,
14
+ "nonew": true,
15
+ "predef": [
16
+ "$",
17
+ "jQuery",
18
+
19
+ "jasmine",
20
+ "beforeEach",
21
+ "describe",
22
+ "expect",
23
+ "it",
24
+
25
+ "angular",
26
+ "inject",
27
+ "module"
28
+ ],
29
+ "quotmark": false,
30
+ "trailing": true,
31
+ "undef": true,
32
+ "unused": true
33
+ }
data/.rspec CHANGED
@@ -1,2 +1 @@
1
- --colour
2
- --format Fuubar
1
+ --color
@@ -77,4 +77,3 @@ IndentationWidth:
77
77
 
78
78
  IndentHash:
79
79
  Enabled: false
80
-
@@ -1,20 +1,31 @@
1
1
  language: ruby
2
- sudo: false
3
- before_install: gem install bundler
4
- gemfile:
5
- - gemfiles/rails_32.gemfile
6
- - gemfiles/rails_40.gemfile
7
- - gemfiles/rails_41.gemfile
8
- - gemfiles/rails_42.gemfile
9
- rvm:
10
- - 1.9.3
11
- - 2.0.0
12
- - 2.1.5
13
- - 2.2.0
14
- matrix:
15
- exclude:
16
- # NOTE : incompatible
17
- - rvm: 2.2.0
18
- gemfile: gemfiles/rails_32.gemfile
19
- install: bundle install -j4 --path vendor/bundle
20
-
2
+ dist: xenial
3
+ group: dev
4
+ cache: bundler
5
+ before_install:
6
+ - if [ $BUNDLER_VERSION ]; then
7
+ rm -f $(which bundle);
8
+ rvm @global do gem uninstall bundler --executables --force;
9
+ rvm @global do gem install bundler --force -v $BUNDLER_VERSION;
10
+ else
11
+ gem install bundler --no-document;
12
+ fi
13
+ services:
14
+ - postgresql
15
+ env:
16
+ - CUCUMBER_PUBLISH_QUIET=true
17
+ jobs:
18
+ fast_finish: true
19
+ include:
20
+ - rvm: 2.6.5
21
+ env: BUNDLER_VERSION=1.17.3 CUCUMBER_PUBLISH_QUIET=true
22
+ gemfile: gemfiles/rails_4.gemfile
23
+ - rvm: 2.6.5
24
+ gemfile: gemfiles/rails_5.gemfile
25
+ - rvm: 2.6.5
26
+ gemfile: gemfiles/rails_6.gemfile
27
+ - rvm: 2.7.0
28
+ gemfile: gemfiles/rails_5.gemfile
29
+ - rvm: 2.7.0
30
+ gemfile: gemfiles/rails_6.gemfile
31
+
data/Gemfile CHANGED
@@ -1,35 +1,2 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
-
4
- group :development do
5
- # tools
6
- gem 'pry-byebug', platforms: [:mri_20, :mri_21, :mri_22]
7
- gem 'pry-debugger', platforms: :mri_19
8
- gem 'pry-stack_explorer', platform: :mri
9
- gem 'pry-session', platform: :mri
10
- # rspec --format fuubar
11
- gem 'fuubar'
12
- # cucumber --format fuubar
13
- gem 'fuubar-cucumber'
14
- gem 'selenium-webdriver'
15
-
16
- # deploy site
17
- gem 'highline'
18
- # gem 'coderay', path: '../coderay'
19
-
20
- # multiple rails versions support
21
- gem 'appraisal', github: 'razum2um/appraisal', branch: 'master'
22
-
23
- # build template static
24
- # run `rake assets:precompile`
25
- # to get bundled application.(js|css)
26
- gem 'sprockets'
27
- gem 'uglifier'
28
- gem 'sass-rails'
29
- gem 'coffee-rails'
30
- gem 'bootstrap-sass', '~> 3.3.3'
31
- gem 'jquery-rails'
32
- gem 'remotipart'
33
- gem 'launchy'
34
- end
35
-
data/README.md CHANGED
@@ -3,29 +3,12 @@
3
3
  <img align="right" width="94" height="71" src="https://cdn.rawgit.com/razum2um/lurker/master/lurker-bw.svg">
4
4
 
5
5
  Generates API schemas, validates code against them and creates a handy web interface for testing the API.
6
- Works on Rails 3.2, 4.0, 4.1, 4.2 & Ruby 1.9.3, 2.0.0, 2.1.5, 2.2.0
6
+ Tested on on Rails 4, 5, 6 and Ruby >= 2.6
7
7
 
8
8
  [![Gem Version][GV img]][Gem Version]
9
9
  [![Build Status][BS img]][Build Status]
10
10
  [![Dependency Status][DS img]][Dependency Status]
11
11
 
12
- ## Installation
13
-
14
- Add my public key:
15
-
16
- gem cert --add <(curl -Ls https://raw.github.com/razum2um/lurker/master/certs/razum2um.pem)
17
-
18
- $ gem install lurker # without key
19
- $ gem install lurker -P HighSecurity # secure, with key added
20
-
21
- Or this line to your application's Gemfile:
22
-
23
- gem 'lurker'
24
-
25
- Inject into `test_helper.rb` or `spec_helper.rb`:
26
-
27
- require 'lurker/spec_helper'
28
-
29
12
  ## Usage
30
13
 
31
14
  Wrap your integration test code, which does request like this
@@ -45,6 +28,11 @@ but add `:lurker` mark (like documented [controller example][controler_spec_exam
45
28
  get "/api/v1/users.json"
46
29
  end
47
30
 
31
+ NOTE: If you use `rspec-rails`, it should be required first
32
+
33
+ require 'rspec/rails'
34
+ require 'lurker/spec_helper'
35
+
48
36
  ## Minitest usage
49
37
 
50
38
  You can use [minitest-around][minitest_around] to wrap your test classes like this:
@@ -92,6 +80,13 @@ The generation of live-documentation is pretty simple:
92
80
 
93
81
  For different document root or serving URL prefix use `-o` and `-u` options accordingly.
94
82
 
83
+ If you want to provide additional documentation for your API (and you probably should),
84
+ you can use separate Markdown files in the schema folder. To generate documentation
85
+ stubs for the current schema:
86
+
87
+ bin/lurker init_docs # generate documentation stubs for the current schema
88
+
89
+
95
90
  Let's run your `rails s` and visit [http://localhost:3000/lurker/](http://localhost:3000/lurker/)
96
91
  (or see [demo][demo_app2] for example)
97
92
 
@@ -103,9 +98,10 @@ You can run this to get the demo running locally:
103
98
 
104
99
  git clone https://github.com/razum2um/lurker.git
105
100
  cd lurker
106
- bundle exec appraisal rails-42 bundle install
107
- bundle exec appraisal rails-42 rake build_example_docs
108
- cd tmp/lurker_app_rails_42
101
+ export BUNDLE_GEMFILE=gemfiles/rails_6.gemfile
102
+ bundle install
103
+ rake build_example_docs
104
+ cd tmp/lurker_app_rails_6
109
105
  bin/rails s
110
106
 
111
107
  Lurker supports multiple domains (usually `staging` and `production`) and can be deployed
@@ -114,8 +110,7 @@ statically everywhere as well as be served by the current `Rails` instance.
114
110
  For example:
115
111
 
116
112
  - [Github Pages][demo_app3] is deployed statically; no API endpoint
117
- - [Custom domain][demo_app2] HTML deployed under nginx; passenger serves demo api production endpoint
118
- - [Heroku][demo_app] HTML is served by unicorn as well as staging api endpoint in `Sandbox` mode
113
+ - [Custom domain][demo_app2] static + demo api production endpoint (in `Sandbox` mode)
119
114
 
120
115
  ## Features
121
116
 
@@ -137,6 +132,11 @@ For example:
137
132
  - Builtin Rack middleware `Lurker::Server.to_rack` serves cached digested assets
138
133
  - [RSpec][failed_spec_example] & [Minitest][minitest_example] support
139
134
 
135
+ ## Related gems
136
+
137
+ - [Swarker](https://github.com/sponomarev/swarker) converts
138
+ Lurker schemas to [Swagger](http://swagger.io) schema
139
+
140
140
  ## Token authentication with sandbox
141
141
 
142
142
  `Lurker::Sandbox` allows you to test services with token authentication:
@@ -161,17 +161,12 @@ are increasing notwithstanding ROLLBACK is called. As such:
161
161
  [![Inline docs](http://inch-pages.github.io/github/razum2um/lurker.png)](http://inch-pages.github.io/github/razum2um/lurker)
162
162
  [![Stories in Ready](https://badge.waffle.io/razum2um/lurker.png?label=ready&title=Ready&_=1)][waffle]
163
163
 
164
- I try to use [Waffle][waffle] to develop this gem, if you want to help:
165
-
166
- - look on "Ready" section
167
- - drag an issue to "In Progress" and assign to yourself
168
- - have fun!
169
-
170
164
  **NOTE:** to get new version of bundled `bootstrap` or update JS/CSS,
171
165
  don't touch files under `lib/lurker/templates/public` - they are autogenerated
172
166
  and copied to static generated site while `bin/lurker convert`
173
167
 
174
- bundle exec appraisal rails-42 rake assets:precompile # to build them
168
+ export BUNDLE_GEMFILE=gemfiles/rails_6.gemfile
169
+ rake assets:precompile # to build them
175
170
 
176
171
  Don't commit `lib/lurker/templates/public/**/*` to avoid conflicts.
177
172
 
@@ -181,20 +176,6 @@ features in a way to generate **new** relevant `lurker/**/*.json.yml` files
181
176
 
182
177
  **NOTE:** template partial `submit_form.html.erb` and it's partials is a big `jsx` script for `React`
183
178
  so there are `<label htmlFor` instead of `<label for>` and `<div className` instead of `<div class`
184
-
185
- ### Different Rails versions
186
-
187
- We use [`appraisal`](https://github.com/thoughtbot/appraisal) to test the lib with different Rails versions (from 3.2 up to 4.2):
188
-
189
- # run this to install all gems for all the supported rails versions:
190
- bundle exec appraisal install
191
-
192
- # then prefix any rake command with `bundle exec appraisal` and rails version
193
- bundle exec appraisal rails-42 rake build_example_docs
194
-
195
- Test apps are getting generated into their's directory under `tmp/lurker_app...` prefix. They also use
196
- separate databases for each rails version both dev & test env - all prefixed with `lurker_app`
197
-
198
179
  ### Demo app == Testing app
199
180
 
200
181
  Currently, the testing application is using PostgreSQL because **the same** testing app is deployed to serve demo purposes.
@@ -202,14 +183,12 @@ Currently, the testing application is using PostgreSQL because **the same** test
202
183
  This is also the reason not to delete anything under `lurker` directory between feature tests
203
184
  and using **different** API endpoints of the testing app. To run cucumber with clean `lurker` & `public/lurker` directories run:
204
185
 
205
- CLEAN=1 bundle exec appraisal rails-42 cucumber features
186
+ CLEAN=1 export BUNDLE_GEMFILE=gemfiles/rails_6.gemfile bundle exec cucumber features
206
187
 
207
188
  Beware while writing your feature tests for PRs.
208
189
 
209
190
  ## Acknowledgments
210
191
 
211
- [![Sponsored by Evil Martians](https://evilmartians.com/badges/sponsored-by-evil-martians.svg)](http://evilmartians.com/)
212
-
213
192
  This gem is quite opinionated and relies on rails - if you're
214
193
  interested in anything else, please take a look at [api_taster][api_taster] or [fdoc][fdoc],
215
194
  This gem is heavily inspired by them. Thanks, @square & @fredwu
@@ -217,7 +196,8 @@ This gem is heavily inspired by them. Thanks, @square & @fredwu
217
196
  Also thanks to
218
197
 
219
198
  - [Andrey Deryabin][aderyabin] for advice
220
- - [React.js][reactjs] for two-way binding
199
+ - [Evil Martians][evil_martians] initial version sponsors
200
+ - [React.js][reactjs] for reactive UI
221
201
  - [highlight.js][hljs] for syntax highlighting
222
202
 
223
203
  [aderyabin]: https://twitter.com/aderyabin
@@ -230,7 +210,7 @@ Also thanks to
230
210
  [json_schema]: http://json-schema.org/
231
211
  [json_schema_example]: http://json-schema.org/example2.html
232
212
  [json_schema_book]: http://spacetelescope.github.io/understanding-json-schema/
233
- [evil_martians]: http://evilmartians.com/
213
+ [evil_martians]: https://evilmartians.com/
234
214
  [rspec_controller_spec]: https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs
235
215
  [rspec_request_spec]: https://www.relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec
236
216
  [minitest_around]: https://github.com/splattael/minitest-around
@@ -244,10 +224,9 @@ Also thanks to
244
224
  [suffixes_example]: https://www.relishapp.com/razum2um/lurker/docs/request-schema-suffixes
245
225
  [minitest_example]: https://www.relishapp.com/razum2um/lurker/docs/minitest
246
226
 
247
- [demo_app]: http://lurker-app.herokuapp.com
248
- [demo_app2]: http://lurker.razum2um.me
249
- [demo_app3]: http://razum2um.github.io/lurker/
250
- [demo_live]: http://lurker.razum2um.me/lurker/api/v1/users-POST.html
227
+ [demo_app2]: https://lurker.razum2um.me
228
+ [demo_app3]: https://razum2um.github.io/lurker/
229
+ [demo_live]: https://lurker.razum2um.me/lurker/api/v1/users-POST.html
251
230
  [pdf_example]: http://razum2um.github.io/lurker/lurker_demo_application.pdf
252
231
  [partial_example_demo]: http://razum2um.github.io/lurker/api/v1/users/__user_id/repos-POST.html
253
232
 
data/Rakefile CHANGED
@@ -23,7 +23,7 @@ RSpec::Core::RakeTask.new(:spec) do |t|
23
23
  end
24
24
 
25
25
  Cucumber::Rake::Task.new(:cucumber) do |t|
26
- t.cucumber_opts = "features --format progress --tags ~@wip"
26
+ t.cucumber_opts = "features --format progress"
27
27
  end
28
28
 
29
29
  task :default => ["clobber:coverage", :spec, :regenerate, :cucumber, 'coveralls:push']
@@ -32,8 +32,8 @@ desc 'releases gem & updates docs'
32
32
  task :publish do
33
33
  require 'lurker'
34
34
  version = Lurker::VERSION
35
-
36
- Bundler.with_clean_env do
35
+ bundler_method = Bundler.respond_to?(:with_unbundled_env) ? :with_unbundled_env : :with_clean_env
36
+ Bundler.send(bundler_method) do
37
37
  system "git tag v#{version}"
38
38
  system "relish versions:add razum2um/lurker:#{version}"
39
39
  system "relish push razum2um/lurker:#{version}"
@@ -1,2 +1 @@
1
- default: --require features --format fuubar --tags ~@wip
2
- wip: --require features --tags @wip
1
+ default: --require features --format progress
@@ -59,8 +59,6 @@ Feature: atom persistent within test suite
59
59
  Scenario: json schema tests response parameters and keep atom unchanged using "users/update"
60
60
  Given a file named "spec/controllers/api/v2/users_controller_spec.rb" with:
61
61
  """ruby
62
- require "spec_helper"
63
-
64
62
  describe Api::V2::UsersController, :lurker do
65
63
  render_views
66
64
 
@@ -69,13 +67,15 @@ Feature: atom persistent within test suite
69
67
  end
70
68
 
71
69
  it "updates a user surname as string" do
72
- patch :update, id: user.id, user: { surname: 'Marley' }
70
+ puts Thread.list.to_a.inspect
71
+
72
+ patch :update, params: { id: user.id, user: { surname: 'Marley' } }
73
73
  expect(response).to be_success
74
74
  end
75
75
  end
76
76
  """
77
77
 
78
- When I run `bin/rspec spec/controllers/api/v2/users_controller_spec.rb`
78
+ When I run `bin/rspec -b spec/controllers/api/v2/users_controller_spec.rb`
79
79
  Then the example should pass
80
80
  Then a file named "lurker/api/v2/users/__id-PATCH.json.yml" should exist
81
81
  Then the file "lurker/api/v2/users/__id-PATCH.json.yml" should contain exactly: