lurker 0.6.8 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: