rails_event_store-rspec 0.17.0 → 0.18.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: 8d778821807a56fd6a99a9f46053610eb05407ff
4
- data.tar.gz: c92c80823ac8beb9973966cd2dcf8438af6ed931
3
+ metadata.gz: 2c4e3f15a413a75d6d702a92e6117eadf75883aa
4
+ data.tar.gz: cf3870bd87ef79c7b6a9c0f25fc5fe460f66119f
5
5
  SHA512:
6
- metadata.gz: e1def863c3f5eb40c2615b9c5e6cdd12710ae5530db40c55f3cc85d68332de280bcd81bdbad5e2e77525d31b11b732b61a61c8396a20b9f0f73f4499d1b3191d
7
- data.tar.gz: 8434e0e394ed9f5ae5dcf60e10032f6f87a75035bb51d6bb0ea57bd436375a9ac789a3acd24733c929aa29e6c8c4b10375ba6dd1b574e7b72a244c103f4fc4ca
6
+ metadata.gz: e78c316aeda27e9f5ee2298d9213bf75f517671564f4e13d39f72dadbb08c2a1c8c1473b79afcf4738801bfc32891b4ab765c00e93c920f8e06fcf5b1361712e
7
+ data.tar.gz: 49a02ff51c3f535babccf1c8d373d37a663260808089049528ebd9fd57c5037fe6efdefb491b30ba84fe738ae7d9da1ac3a8a0cb42536fca2010707edd2fcd27
data/Makefile CHANGED
@@ -1,20 +1,28 @@
1
- install-bundler: ## Install gem dependencies
1
+ GEM_VERSION = `cat ../RES_VERSION`
2
+
3
+ install: ## Install gem dependencies
2
4
  @echo "Installing gem dependencies"
3
5
  @bundle install
4
6
 
5
- install: install-bundler ## Prepare current development environment
6
-
7
7
  test: ## Run tests
8
8
  @echo "Running basic tests - beware: this won't guarantee build pass"
9
9
  @bundle exec rspec
10
10
 
11
11
  mutate: test ## Run mutation tests
12
12
  @echo "Running mutation tests - only 100% free mutation will be accepted"
13
- @bundle exec mutant --include lib --require rails_event_store/rspec --use rspec --ignore-subject "RailsEventStore::RSpec::Matchers#differ" "RailsEventStore::RSpec*"
13
+ @bundle exec mutant --include lib --require rails_event_store/rspec --use rspec "RailsEventStore::RSpec*" \
14
+ --ignore-subject "RailsEventStore::RSpec::Matchers#differ"
14
15
 
15
- .PHONY: help
16
+ build:
17
+ @gem build -V rails_event_store-rspec.gemspec
18
+ @mkdir -p pkg/
19
+ @mv rails_event_store-rspec-$(GEM_VERSION).gem pkg/
20
+
21
+ release: build
22
+ @gem push pkg/rails_event_store-rspec-$(GEM_VERSION).gem
16
23
 
17
24
  help:
18
25
  @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
19
26
 
27
+ .PHONY: help
20
28
  .DEFAULT_GOAL := help
data/README.md CHANGED
@@ -12,26 +12,6 @@ end
12
12
 
13
13
  ## Usage
14
14
 
15
- Configure your rspec to include matchers in all examples first:
16
-
17
- ```ruby
18
- RSpec.configure do |config|
19
- config.include ::RailsEventStore::RSpec::Matchers
20
- end
21
- ```
22
-
23
- You can as well choose to have RES matches in particular test file only:
24
-
25
- ```ruby
26
- RSpec.describe MySubject do
27
- include ::RailsEventStore::RSpec::Matchers
28
-
29
- specify do
30
- # matchers available here
31
- end
32
- end
33
- ```
34
-
35
15
  ### be_event
36
16
 
37
17
  The `be_event` matcher enables you to make expectations on a domain event. It exposes fluent interface.
@@ -1,3 +1,5 @@
1
+ require 'rspec'
2
+
1
3
  module RailsEventStore
2
4
  module RSpec
3
5
  NotSupported = Class.new(StandardError)
@@ -10,3 +12,6 @@ require "rails_event_store/rspec/have_published"
10
12
  require "rails_event_store/rspec/have_applied"
11
13
  require "rails_event_store/rspec/matchers"
12
14
 
15
+ ::RSpec.configure do |config|
16
+ config.include ::RailsEventStore::RSpec::Matchers
17
+ end
@@ -1,15 +1,15 @@
1
1
  module RailsEventStore
2
2
  module RSpec
3
3
  class HaveApplied
4
- def initialize(*expected)
5
- raise ArgumentError if expected.empty?
6
- @expected = expected
4
+ def initialize(expected, *expecteds, differ:)
5
+ @expected = [expected, *expecteds]
7
6
  @matcher = ::RSpec::Matchers::BuiltIn::Include.new(*@expected)
7
+ @differ = differ
8
8
  end
9
9
 
10
10
  def matches?(aggregate_root)
11
- events = aggregate_root.__send__(:unpublished_events)
12
- @matcher.matches?(events) && matches_count(events, @expected, @count)
11
+ @events = aggregate_root.__send__(:unpublished_events)
12
+ @matcher.matches?(@events) && matches_count(@events, @expected, @count)
13
13
  end
14
14
 
15
15
  def exactly(count)
@@ -26,8 +26,14 @@ module RailsEventStore
26
26
  exactly(1)
27
27
  end
28
28
 
29
+ def failure_message
30
+ differ.diff_as_string(@expected.to_s, @events.to_s)
31
+ end
32
+
29
33
  private
30
34
 
35
+ attr_reader :differ
36
+
31
37
  def matches_count(events, expected, count)
32
38
  return true unless count
33
39
  raise NotSupported if expected.size > 1
@@ -1,16 +1,16 @@
1
1
  module RailsEventStore
2
2
  module RSpec
3
3
  class HavePublished
4
- def initialize(*expected)
5
- raise ArgumentError if expected.empty?
6
- @expected = expected
4
+ def initialize(expected, *expecteds, differ:)
5
+ @expected = [expected, *expecteds]
7
6
  @matcher = ::RSpec::Matchers::BuiltIn::Include.new(*@expected)
7
+ @differ = differ
8
8
  end
9
9
 
10
10
  def matches?(event_store)
11
- events = @stream_name ? event_store.read_events_backward(@stream_name)
11
+ @events = @stream_name ? event_store.read_events_backward(@stream_name)
12
12
  : event_store.read_all_streams_backward
13
- @matcher.matches?(events) && matches_count(events, @expected, @count)
13
+ @matcher.matches?(@events) && matches_count(@events, @expected, @count)
14
14
  end
15
15
 
16
16
  def exactly(count)
@@ -32,8 +32,14 @@ module RailsEventStore
32
32
  exactly(1)
33
33
  end
34
34
 
35
+ def failure_message
36
+ differ.diff_as_string(@expected.to_s, @events.to_s)
37
+ end
38
+
35
39
  private
36
40
 
41
+ attr_reader :differ
42
+
37
43
  def matches_count(events, expected, count)
38
44
  return true unless count
39
45
  raise NotSupported if expected.size > 1
@@ -9,11 +9,11 @@ module RailsEventStore
9
9
  alias :event :be_an_event
10
10
 
11
11
  def have_published(*expected)
12
- HavePublished.new(*expected)
12
+ HavePublished.new(*expected, differ: differ)
13
13
  end
14
14
 
15
15
  def have_applied(*expected)
16
- HaveApplied.new(*expected)
16
+ HaveApplied.new(*expected, differ: differ)
17
17
  end
18
18
 
19
19
  private
@@ -1,5 +1,5 @@
1
1
  module RailsEventStore
2
2
  module RSpec
3
- VERSION = "0.17.0"
3
+ VERSION = "0.18.0"
4
4
  end
5
5
  end
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "rspec", "~> 3.0"
25
25
  spec.add_development_dependency "mutant-rspec", "~> 0.8.11"
26
26
  spec.add_development_dependency "rails", "~> 4.2"
27
- spec.add_development_dependency "rails_event_store", "~> 0.15.0"
27
+ spec.add_development_dependency "rails_event_store", "~> 0.17.0"
28
28
 
29
- spec.add_dependency "rspec", "~> 3.0"
29
+ spec.add_runtime_dependency "rspec", "~> 3.0"
30
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_event_store-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arkency
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-15 00:00:00.000000000 Z
11
+ date: 2017-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.15.0
89
+ version: 0.17.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.15.0
96
+ version: 0.17.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -116,13 +116,11 @@ extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
118
  - ".gitignore"
119
- - ".rspec"
120
119
  - ".travis.yml"
121
120
  - Gemfile
122
121
  - LICENSE
123
122
  - Makefile
124
123
  - README.md
125
- - Rakefile
126
124
  - bin/console
127
125
  - bin/setup
128
126
  - lib/rails_event_store/rspec.rb
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --color
data/Rakefile DELETED
@@ -1,6 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
-
4
- RSpec::Core::RakeTask.new(:spec)
5
-
6
- task :default => :spec