test_assistant 0.0.2 → 0.0.3

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: fd9da0b295791c6249e94172857509c44b58b7ac
4
- data.tar.gz: ffb211e31de33220bfeea704961e844738597308
3
+ metadata.gz: 48905c8c6be7fc91de87ac31c24b5314338b0bf9
4
+ data.tar.gz: c39d609ffb786a18edb427ca959ac0e0ae47bb2c
5
5
  SHA512:
6
- metadata.gz: 3c98c15b60558a8615edfdfc7336e307848eb481f8167574a7208d559d48220b1f6686b454b38e9c6f9932329158d5fbac98b40f470b71e89e956b62cb6f34db
7
- data.tar.gz: 3d0500451574c4b9bffd61a05b5a8380a9fc5a8eeac1bc555b5e38348945c3d7f7b8bf931fb832fc6faf419b20fcf8ee98792ccd8a754c0de5668481e9b3f804
6
+ metadata.gz: 3e6c40ca210cb0a3d2ad25394cecbb2c564bedf9e0f8313b9581103ea71e73088fb492ff7f6579c6bb419e2ade754c87083dad260396074145a9bf3fb0b6b350
7
+ data.tar.gz: 8ad25ab4b5b18080abb83f1d42a489ba93db0ea23cae04c439429adce73c8d1873dd2e5b4722b45d47121bc9831a87dfcc90ce3d3eeae67c2dea5570eab2240e
data/README.md CHANGED
@@ -105,6 +105,12 @@ RSpec.describe 'making some valid request', type: :request do
105
105
  .with_selector('#password').and('#username')
106
106
  .with_link('www.site.com/onboarding/1')
107
107
  .with_image('www.site.com/assets/images/welcome.png')
108
+
109
+ clear_emails
110
+
111
+ # further actions
112
+
113
+ expect(email).to have_been_sent.to('user@email.com')
108
114
  end
109
115
  end
110
116
  end
@@ -1,5 +1,5 @@
1
1
  module TestAssistant
2
- autoload :JSONHelpers, 'test_assistant/json_helpers'
2
+ autoload :Json, 'test_assistant/json/helpers'
3
3
  autoload :Email, 'test_assistant/email/helpers'
4
4
  autoload :FailureReporter, 'test_assistant/failure_reporter'
5
5
 
@@ -9,7 +9,7 @@ module TestAssistant
9
9
  end
10
10
 
11
11
  def include_json_helpers(options = {})
12
- @rspec_config.include JSONHelpers, options
12
+ @rspec_config.include Json::Helpers, options
13
13
  end
14
14
 
15
15
  def include_email_helpers(options = {})
@@ -6,6 +6,10 @@ module TestAssistant::Email
6
6
  ActionMailer::Base.deliveries
7
7
  end
8
8
 
9
+ def clear_emails
10
+ ActionMailer::Base.deliveries = []
11
+ end
12
+
9
13
  def have_been_sent
10
14
  TestAssistant::Email::Expectation.new
11
15
  end
@@ -0,0 +1,68 @@
1
+ require 'capybara/rspec'
2
+ require 'hashdiff'
3
+
4
+ module TestAssistant::Json
5
+ class Expectation
6
+ def initialize(expected)
7
+ @expected = expected
8
+ end
9
+
10
+ def diffable?
11
+ false
12
+ end
13
+
14
+ def matches?(actual)
15
+ @actual = actual
16
+ @expected.eql?(@actual)
17
+ end
18
+
19
+ def failure_message
20
+ message = ''
21
+ message += "Expected: #{@expected}\n\n"
22
+ message += "Actual: #{@actual}\n\n"
23
+ message += "Differences\n\n"
24
+
25
+ differences = HashDiff.diff(@actual, @expected)
26
+
27
+ differences.each do |difference|
28
+ operator, *operands = difference
29
+
30
+ case operator
31
+ when '-'
32
+ attribute, value = operands
33
+
34
+ message += format_diff(attribute, nil, value)
35
+ when '+'
36
+ attribute, value = operands
37
+
38
+ message += format_diff(attribute, value, nil)
39
+ else
40
+ attribute, actual_value, expected_value = operands
41
+
42
+ message += format_diff(attribute, expected_value, actual_value)
43
+ end
44
+ end
45
+
46
+ message
47
+ end
48
+
49
+ private
50
+
51
+ def format_diff(attribute, expected, actual)
52
+ diff_description = ''
53
+ diff_description += "#{attribute}\n"
54
+ diff_description += "Expected: #{format_value(expected)}\n"
55
+ diff_description += "Actual: #{format_value(actual)}\n\n"
56
+ diff_description
57
+ end
58
+
59
+ def format_value(value)
60
+ if value.kind_of?(String)
61
+ "'#{value}'"
62
+ else
63
+ value
64
+ end
65
+ end
66
+
67
+ end
68
+ end
@@ -0,0 +1,17 @@
1
+ require 'test_assistant/json/expectation'
2
+
3
+ module TestAssistant::Json
4
+ module Helpers
5
+ def json_response
6
+ begin
7
+ JSON.parse(response.body)
8
+ rescue JSON::ParserError
9
+ '< INVALID JSON RESPONSE >'.freeze
10
+ end
11
+ end
12
+
13
+ def eql_json(expected)
14
+ TestAssistant::Json::Expectation.new(expected)
15
+ end
16
+ end
17
+ end
@@ -1,3 +1,3 @@
1
1
  module TestAssistant
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency "rspec-rails", "~> 3.0"
22
22
  spec.add_dependency 'capybara', '~> 2.5', '>= 2.5.0'
23
+ spec.add_dependency 'hashdiff', '~> 0'
23
24
  spec.add_development_dependency "bundler", "~> 1.6"
24
25
  spec.add_development_dependency "rake", "~> 0"
25
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test_assistant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aleck Greenham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-07 00:00:00.000000000 Z
11
+ date: 2016-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec-rails
@@ -44,6 +44,20 @@ dependencies:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: 2.5.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: hashdiff
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: bundler
49
63
  requirement: !ruby/object:Gem::Requirement
@@ -90,7 +104,8 @@ files:
90
104
  - lib/test_assistant/email/expectation.rb
91
105
  - lib/test_assistant/email/helpers.rb
92
106
  - lib/test_assistant/failure_reporter.rb
93
- - lib/test_assistant/json_helpers.rb
107
+ - lib/test_assistant/json/expectation.rb
108
+ - lib/test_assistant/json/helpers.rb
94
109
  - lib/test_assistant/version.rb
95
110
  - test_assistant.gemspec
96
111
  homepage: https://github.com/greena13/test_assistant
@@ -1,9 +0,0 @@
1
- module TestAssistant::JSONHelpers
2
- def json_response
3
- begin
4
- JSON.parse(response.body)
5
- rescue JSON::ParserError
6
- '< INVALID JSON RESPONSE >'.freeze
7
- end
8
- end
9
- end