cucumber-blendle-steps 0.5.1 → 0.6.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
  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