cucumber-blendle-steps 0.5.1 → 0.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fd032df8a3591dcca45a4d14ca888e3b3b3ce95e
4
- data.tar.gz: a28f3caa0754be155b1f9120f6add9ecad37188b
3
+ metadata.gz: 1d20481e962e42c891c1c4802c845b5436daeff7
4
+ data.tar.gz: 93513ad396fe31b4c8b72d9f5b6406567a098557
5
5
  SHA512:
6
- metadata.gz: 93fd91e57c310bbf8d8f6bf9f126aab0f375a60911ae4f440e6856ac4ad7393f8a0fa1adab6e579744a4ceef080509920312bac01d34f32574bd7bf43bebe4c0
7
- data.tar.gz: cea0d48b250da8a05c656f13901fe2cc4dff5770204377a3ee8c79e3ae1b35acc6111325008b8965f6f16d70af6df59e068167c0470abdded0d69776c9553e2e
6
+ metadata.gz: c4bf012b3f04c857389204791c9ba0928baa2021a5ab5939493505046db2a990041f6df70cd71c22c4700eafc22f330205a94cfa36dc805574785c2ab998fbcd
7
+ data.tar.gz: 7388daaa45cde11d38638c066c9ee645d8c2cacc9f73390603b7333339d23e6a7f6c8c2c090055d69ca8c78216aefe295fb7b79c60fc7052b86278d1bd77105b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## [v0.5.1](https://github.com/blendle/cucumber-blendle-steps/tree/v0.5.1) (2016-03-12)
4
+ [Full Changelog](https://github.com/blendle/cucumber-blendle-steps/compare/v0.5.0...v0.5.1)
5
+
3
6
  ## [v0.5.0](https://github.com/blendle/cucumber-blendle-steps/tree/v0.5.0) (2016-03-11)
4
7
  [Full Changelog](https://github.com/blendle/cucumber-blendle-steps/compare/v0.4.0...v0.5.0)
5
8
 
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency 'hyperresource'
24
24
  spec.add_dependency 'json_spec'
25
25
  spec.add_dependency 'minitest'
26
+ spec.add_dependency 'liquid'
26
27
  spec.add_dependency 'rack-test'
27
28
  spec.add_dependency 'rack'
28
29
  spec.add_dependency 'rspec-expectations'
@@ -0,0 +1,17 @@
1
+ require 'liquid'
2
+ require 'chronic'
3
+ require 'time'
4
+
5
+ module Cucumber
6
+ module BlendleSteps
7
+ class LiquidFilters
8
+ module Date
9
+ def date(input)
10
+ Timecop.return { Chronic.parse(input) || DateTime.parse(input) }.utc.iso8601
11
+ end
12
+ end
13
+
14
+ Liquid::Template.register_filter(Date)
15
+ end
16
+ end
17
+ end
@@ -71,6 +71,8 @@ end
71
71
  Then(/^the response should be JSON:$/) do |json|
72
72
  dump last_response.body
73
73
 
74
+ json = Liquid::Template.parse(json).render
75
+
74
76
  assert_equal last_response.headers['Content-Type'], 'application/json'
75
77
  expect(last_response.body).to be_json_eql(json)
76
78
  end
@@ -89,6 +91,11 @@ end
89
91
  # }
90
92
  # """
91
93
  #
94
+ # NOTE: You can also use Liquid templating in your expectation, which will be
95
+ # parsed before validation:
96
+ #
97
+ # { "end_date": "{{ 'today' | date }}" } => { "date": "2016-03-15T14:00:00Z" }
98
+ #
92
99
  Then(%r{^the response should be HAL/JSON(?: \(disregarding values? of "([^"]*)"\))?:$}) do |disregard, json|
93
100
  dump last_response.body
94
101
 
@@ -103,7 +110,9 @@ Then(%r{^the response should be HAL/JSON(?: \(disregarding values? of "([^"]*)"\
103
110
 
104
111
  assert hal.valid?, "Halidator errors: #{hal.errors.join(',')}"
105
112
 
113
+ json = Liquid::Template.parse(json).render
106
114
  match = be_json_eql(json)
115
+
107
116
  if disregard.present?
108
117
  disregard.split(',').each do |attribute|
109
118
  match = match.excluding(attribute)
@@ -1,5 +1,12 @@
1
1
  require 'json'
2
2
 
3
+ After do |scenario|
4
+ next unless scenario.failed?
5
+
6
+ ENV['DUMP'] = 'true'
7
+ dump(last_response.body)
8
+ end
9
+
3
10
  # Dump a string/text to the clipboard or a file if the correct
4
11
  # environment variable is set.
5
12
  #
@@ -8,11 +15,13 @@ require 'json'
8
15
  #
9
16
  def dump(data)
10
17
  return unless ENV['DUMP']
18
+
11
19
  require 'mkmf'
12
- if %w(clipboard cb).include?(ENV['DUMP']) && find_executable0('pbcopy')
13
- IO.popen(['pbcopy'], 'w') { |f| f << pretty_sorted_json(data) }
14
- elsif %w(file tmp).include?(ENV['DUMP'])
20
+
21
+ if %w(file tmp).include?(ENV['DUMP'])
15
22
  File.open('/tmp/dump', 'w') { |f| f << pretty_sorted_json(data) }
23
+ elsif ENV['DUMP'] && find_executable0('pbcopy')
24
+ IO.popen(['pbcopy'], 'w') { |f| f << pretty_sorted_json(data) }
16
25
  end
17
26
  end
18
27
 
@@ -6,6 +6,6 @@ module Cucumber
6
6
  # This module defines default steps used by all of Blendle Ruby projects.
7
7
  #
8
8
  module BlendleSteps
9
- VERSION = '0.5.1'.freeze
9
+ VERSION = '0.6.0'.freeze
10
10
  end
11
11
  end
@@ -1,3 +1,5 @@
1
+ require 'cucumber/blendle/helpers/liquid_filters'
2
+
1
3
  require 'cucumber/blendle/support/dump'
2
4
  require 'cucumber/blendle/support/hyper_resource'
3
5
  require 'cucumber/blendle/support/json_spec'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-blendle-steps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean Mertz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-12 00:00:00.000000000 Z
11
+ date: 2016-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: liquid
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: rack-test
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -306,6 +320,7 @@ files:
306
320
  - README.md
307
321
  - Rakefile
308
322
  - cucumber-blendle-steps.gemspec
323
+ - lib/cucumber/blendle/helpers/liquid_filters.rb
309
324
  - lib/cucumber/blendle/steps/benchmark_steps.rb
310
325
  - lib/cucumber/blendle/steps/mock_server_steps.rb
311
326
  - lib/cucumber/blendle/steps/model_steps.rb
@@ -337,7 +352,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
337
352
  version: '0'
338
353
  requirements: []
339
354
  rubyforge_project:
340
- rubygems_version: 2.5.1
355
+ rubygems_version: 2.4.5.1
341
356
  signing_key:
342
357
  specification_version: 4
343
358
  summary: Cucumber steps used by all of Blendle Ruby projects