sequel-state-machine 1.2.0 → 1.2.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/state_machines/sequel/spec_helpers.rb +45 -39
- data/lib/state_machines/sequel/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ecbd578f38b3444f3e5174d6bee1fbceb3421eec1d2435a1d3435ec20904ed0
|
4
|
+
data.tar.gz: c336baa29efda7c18885264aae288e6fc15f975da155e87be320976be7ccb93d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9718320cbc2646fd5e3dfdae80e98fda4c6ccd230643ac3301893cee210206400199359297c3e6cac5707b590cdcc065c225d93980ebce4cf3f5ae1b5b493fc
|
7
|
+
data.tar.gz: 666800f88b63defc4a2f336315c147eef1338f37574eacdcb2130c930784cbd63ba66cc6cd10df7ff2bbc3260d06315f3bc4686e855100ce577eb21ed2c4154a
|
@@ -2,54 +2,60 @@
|
|
2
2
|
|
3
3
|
require "rspec"
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
5
|
+
module StateMachines
|
6
|
+
module Sequel
|
7
|
+
module SpecHelpers
|
8
|
+
module_function def find_state_machine(receiver, event)
|
9
|
+
state_machine = receiver.class.state_machines.values.find { |sm| sm.events[event] }
|
10
|
+
raise ArgumentError, "receiver #{receiver.class} has no state machine for event #{event}" unless state_machine
|
11
|
+
return state_machine
|
12
|
+
end
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
RSpec::Matchers.define :transition_on do |event|
|
15
|
+
match do |receiver|
|
16
|
+
raise ArgumentError, "must use :to to provide a target state" if (@to || "").to_s.empty?
|
17
|
+
machine = StateMachines::Sequel::SpecHelpers.find_state_machine(receiver, event)
|
18
|
+
receiver.send(event, *@args)
|
19
|
+
current_status = receiver.send(machine.attribute)
|
20
|
+
@to == current_status
|
21
|
+
end
|
17
22
|
|
18
|
-
|
19
|
-
|
20
|
-
|
23
|
+
chain :to do |to_state|
|
24
|
+
@to = to_state
|
25
|
+
end
|
21
26
|
|
22
|
-
|
23
|
-
|
24
|
-
|
27
|
+
chain :with do |*args|
|
28
|
+
@args = args
|
29
|
+
end
|
25
30
|
|
26
|
-
|
27
|
-
|
28
|
-
|
31
|
+
chain :audit do
|
32
|
+
@audit = true
|
33
|
+
end
|
29
34
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
35
|
+
failure_message do |receiver|
|
36
|
+
status = receiver.send(StateMachines::Sequel::SpecHelpers.find_state_machine(receiver, event).attribute)
|
37
|
+
msg =
|
38
|
+
"expected that event #{event} would transition to #{@to} but is #{status}"
|
39
|
+
(msg += "\n#{receiver.audit_logs.map(&:inspect).join("\n")}") if @audit
|
40
|
+
msg
|
41
|
+
end
|
36
42
|
end
|
37
|
-
(msg += "\n#{receiver.audit_logs.map(&:inspect).join("\n")}") if @audit
|
38
|
-
msg
|
39
|
-
end
|
40
|
-
end
|
41
43
|
|
42
|
-
RSpec::Matchers.define :not_transition_on do |event|
|
43
|
-
|
44
|
-
|
45
|
-
|
44
|
+
RSpec::Matchers.define :not_transition_on do |event|
|
45
|
+
match do |receiver|
|
46
|
+
!receiver.send(event, *@args)
|
47
|
+
end
|
46
48
|
|
47
|
-
|
48
|
-
|
49
|
-
|
49
|
+
chain :with do |*args|
|
50
|
+
@args = args
|
51
|
+
end
|
50
52
|
|
51
|
-
|
52
|
-
|
53
|
+
failure_message do |receiver|
|
54
|
+
status = receiver.send(StateMachines::Sequel::SpecHelpers.find_state_machine(receiver, event).attribute)
|
55
|
+
"expected that event #{event} would not transition, but did and is now #{status}"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
53
59
|
end
|
54
60
|
end
|
55
61
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel-state-machine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lithic Tech
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04-
|
11
|
+
date: 2022-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|