rails_event_store-rspec 0.42.0 → 1.1.1
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 +4 -4
- data/lib/rails_event_store/rspec.rb +1 -0
- data/lib/rails_event_store/rspec/apply.rb +84 -0
- data/lib/rails_event_store/rspec/matchers.rb +4 -0
- data/lib/rails_event_store/rspec/publish.rb +0 -2
- data/lib/rails_event_store/rspec/version.rb +1 -1
- data/rails_event_store-rspec.gemspec +1 -0
- metadata +18 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bed2ceda4f6a41608bcf10f2c827463223576919a8476754c5531227c2c02fc2
|
4
|
+
data.tar.gz: f389aa08ec8d7126d55a95a628aed3e84c93096f6defc23dcba35ae7249d3652
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa06b696427d83d791050c42a29262164438b5ddd6498750191ec05655831e764be019ec13db472b870cb4184d1df1345cb85f4745389bd2ba1fb4371851b972
|
7
|
+
data.tar.gz: f59bbcfc2c506f977185aeee99b1cd0a2149b7081604af06ac600a512a38b562421e49eb36e119d5869f86812dfd5fa511c5510ecf2e26625d846c056c7aba98
|
@@ -13,6 +13,7 @@ require "rails_event_store/rspec/be_event"
|
|
13
13
|
require "rails_event_store/rspec/have_published"
|
14
14
|
require "rails_event_store/rspec/have_applied"
|
15
15
|
require "rails_event_store/rspec/publish"
|
16
|
+
require "rails_event_store/rspec/apply"
|
16
17
|
require "rails_event_store/rspec/matchers"
|
17
18
|
|
18
19
|
::RSpec.configure do |config|
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsEventStore
|
4
|
+
module RSpec
|
5
|
+
class Apply
|
6
|
+
def in(aggregate)
|
7
|
+
@aggregate = aggregate
|
8
|
+
self
|
9
|
+
end
|
10
|
+
|
11
|
+
def strict
|
12
|
+
@matcher = ::RSpec::Matchers::BuiltIn::Match.new(@expected)
|
13
|
+
self
|
14
|
+
end
|
15
|
+
|
16
|
+
def matches?(event_proc)
|
17
|
+
raise_aggregate_not_set unless @aggregate
|
18
|
+
before = @aggregate.unpublished_events.to_a
|
19
|
+
event_proc.call
|
20
|
+
@applied_events = @aggregate.unpublished_events.to_a - before
|
21
|
+
if match_events?
|
22
|
+
@matcher.matches?(@applied_events)
|
23
|
+
else
|
24
|
+
!@applied_events.empty?
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def failure_message
|
29
|
+
if match_events?
|
30
|
+
<<-EOS
|
31
|
+
expected block to have applied:
|
32
|
+
|
33
|
+
#{@expected}
|
34
|
+
|
35
|
+
but applied:
|
36
|
+
|
37
|
+
#{@applied_events}
|
38
|
+
EOS
|
39
|
+
else
|
40
|
+
"expected block to have applied any events"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def failure_message_when_negated
|
45
|
+
if match_events?
|
46
|
+
<<-EOS
|
47
|
+
expected block not to have applied:
|
48
|
+
|
49
|
+
#{@expected}
|
50
|
+
|
51
|
+
but applied:
|
52
|
+
|
53
|
+
#{@applied_events}
|
54
|
+
EOS
|
55
|
+
else
|
56
|
+
"expected block not to have applied any events"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def description
|
61
|
+
"apply events"
|
62
|
+
end
|
63
|
+
|
64
|
+
def supports_block_expectations?
|
65
|
+
true
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
def initialize(*expected)
|
71
|
+
@expected = expected
|
72
|
+
@matcher = ::RSpec::Matchers::BuiltIn::Include.new(*expected)
|
73
|
+
end
|
74
|
+
|
75
|
+
def match_events?
|
76
|
+
!@expected.empty?
|
77
|
+
end
|
78
|
+
|
79
|
+
def raise_aggregate_not_set
|
80
|
+
raise SyntaxError, "You have to set the aggregate instance with `in`, e.g. `expect { ... }.to apply(an_event(MyEvent)).in(aggregate)`"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
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:
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arkency
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: diff-lcs
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.4.4
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.4.4
|
27
41
|
description:
|
28
42
|
email:
|
29
43
|
- dev@arkency.com
|
@@ -38,6 +52,7 @@ files:
|
|
38
52
|
- bin/console
|
39
53
|
- bin/setup
|
40
54
|
- lib/rails_event_store/rspec.rb
|
55
|
+
- lib/rails_event_store/rspec/apply.rb
|
41
56
|
- lib/rails_event_store/rspec/be_event.rb
|
42
57
|
- lib/rails_event_store/rspec/have_applied.rb
|
43
58
|
- lib/rails_event_store/rspec/have_published.rb
|
@@ -68,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
68
83
|
- !ruby/object:Gem::Version
|
69
84
|
version: '0'
|
70
85
|
requirements: []
|
71
|
-
rubygems_version: 3.0.
|
86
|
+
rubygems_version: 3.0.3
|
72
87
|
signing_key:
|
73
88
|
specification_version: 4
|
74
89
|
summary: RSpec matchers for RailsEventStore
|