webspicy 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/webspicy/tester/asserter.rb +30 -13
- data/lib/webspicy/tester/assertions.rb +13 -1
- data/lib/webspicy/version.rb +1 -1
- data/spec/unit/tester/test_assertions.rb +10 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a450b7c37c1dd58a30dcb2bc1e9317509f1d5e5
|
4
|
+
data.tar.gz: 6f471bbb4aea22f92564c22f720e6eaf50ff5937
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4bf135af59ee9a2b9dff46a9849b2b2539bf612728d88c719835ed5012c101ae8f0b8b8c1ba4d00010f8db93c42aeb48200e9ccf2b086d133d492bb43bfb7ac1
|
7
|
+
data.tar.gz: 65d79ba0f514277d7bc52e81b3cd92d311708fc58bd570476ab03cc7e4d78ef51e1780a06accc59fbeb686ac17d88fac10e80f6347100ff0f38c23b46d2ee33d
|
@@ -13,48 +13,62 @@ module Webspicy
|
|
13
13
|
@assertions = AssertionsClass.new
|
14
14
|
end
|
15
15
|
|
16
|
+
def includes(path, expected = NO_ARG)
|
17
|
+
path, expected = '', path if expected == NO_ARG
|
18
|
+
unless @assertions.includes(@target, path, expected)
|
19
|
+
_! "Expected #{_s(@target, path)} to include #{expected}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def notIncludes(path, expected = NO_ARG)
|
24
|
+
path, expected = '', path if expected == NO_ARG
|
25
|
+
unless @assertions.notIncludes(@target, path, expected)
|
26
|
+
_! "Expected #{_s(@target, path)} not to include #{expected}"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
16
30
|
def exists(path = '')
|
17
31
|
unless @assertions.exists(@target, path)
|
18
|
-
_! "Expected #{_s(@target)} to exists"
|
32
|
+
_! "Expected #{_s(@target, path)} to exists"
|
19
33
|
end
|
20
34
|
end
|
21
35
|
|
22
36
|
def notExists(path = '')
|
23
37
|
unless @assertions.notExists(@target, path)
|
24
|
-
_! "Expected #{_s(@target)} not to exists"
|
38
|
+
_! "Expected #{_s(@target, path)} not to exists"
|
25
39
|
end
|
26
40
|
end
|
27
41
|
|
28
42
|
def empty(path = '')
|
29
43
|
unless @assertions.empty(@target, path)
|
30
|
-
_! "Expected #{_s(@target)} to be empty"
|
44
|
+
_! "Expected #{_s(@target, path)} to be empty"
|
31
45
|
end
|
32
46
|
end
|
33
47
|
|
34
48
|
def notEmpty(path = '')
|
35
49
|
unless @assertions.notEmpty(@target, path)
|
36
|
-
_! "Expected #{_s(@target)} to be non empty"
|
50
|
+
_! "Expected #{_s(@target, path)} to be non empty"
|
37
51
|
end
|
38
52
|
end
|
39
53
|
|
40
54
|
def size(path, expected = NO_ARG)
|
41
55
|
path, expected = '', path if expected == NO_ARG
|
42
56
|
unless @assertions.size(@target, path, expected)
|
43
|
-
_! "Expected #{_s(@target)} to have a size of #{expected}"
|
57
|
+
_! "Expected #{_s(@target, path)} to have a size of #{expected}"
|
44
58
|
end
|
45
59
|
end
|
46
60
|
|
47
61
|
def idIn(path, *expected)
|
48
62
|
path, expected = '', [path]+expected unless path.is_a?(String)
|
49
63
|
unless @assertions.idIn(@target, path, expected)
|
50
|
-
_! "Expected #{_s(@target)} to have ids #{expected.join(',')}"
|
64
|
+
_! "Expected #{_s(@target, path)} to have ids #{expected.join(',')}"
|
51
65
|
end
|
52
66
|
end
|
53
67
|
|
54
68
|
def idNotIn(path, *expected)
|
55
69
|
path, expected = '', [path]+expected unless path.is_a?(String)
|
56
70
|
unless @assertions.idNotIn(@target, path, expected)
|
57
|
-
_! "Expected #{_s(@target)} to not have ids #{expected.join(',')}"
|
71
|
+
_! "Expected #{_s(@target, path)} to not have ids #{expected.join(',')}"
|
58
72
|
end
|
59
73
|
end
|
60
74
|
|
@@ -64,27 +78,27 @@ module Webspicy
|
|
64
78
|
id, path = path, ''
|
65
79
|
end
|
66
80
|
unless @assertions.idFD(@target, path, id, expected)
|
67
|
-
_! "Expected #{_s(@target)} to meet FD #{expected.inspect}"
|
81
|
+
_! "Expected #{_s(@target, path)} to meet FD #{expected.inspect}"
|
68
82
|
end
|
69
83
|
end
|
70
84
|
|
71
85
|
def pathFD(path, expected)
|
72
86
|
unless @assertions.pathFD(@target, path, expected)
|
73
|
-
_! "Expected #{_s(@target)} to meet FD #{expected.inspect}"
|
87
|
+
_! "Expected #{_s(@target, path)} to meet FD #{expected.inspect}"
|
74
88
|
end
|
75
89
|
end
|
76
90
|
|
77
91
|
def match(path, expected = NO_ARG)
|
78
92
|
path, expected = '', path if expected == NO_ARG
|
79
93
|
unless @assertions.match(@target, path, expected)
|
80
|
-
_! "Expected #{_s(@target)} to match #{expected.inspect}"
|
94
|
+
_! "Expected #{_s(@target, path)} to match #{expected.inspect}"
|
81
95
|
end
|
82
96
|
end
|
83
97
|
|
84
98
|
def notMatch(path, expected = NO_ARG)
|
85
99
|
path, expected = '', path if expected == NO_ARG
|
86
100
|
unless @assertions.notMatch(@target, path, expected)
|
87
|
-
_! "Expected #{_s(@target)} not to match #{expected.inspect}"
|
101
|
+
_! "Expected #{_s(@target, path)} not to match #{expected.inspect}"
|
88
102
|
end
|
89
103
|
end
|
90
104
|
|
@@ -94,8 +108,11 @@ module Webspicy
|
|
94
108
|
DateTime.parse(str)
|
95
109
|
end
|
96
110
|
|
97
|
-
def _s(target)
|
98
|
-
target
|
111
|
+
def _s(target, path)
|
112
|
+
result = @assertions.extract_path(target, path)
|
113
|
+
result = result.to_json
|
114
|
+
result = result[0..25] + "..." if result.size>25
|
115
|
+
result
|
99
116
|
end
|
100
117
|
|
101
118
|
def _!(msg)
|
@@ -6,6 +6,16 @@ module Webspicy
|
|
6
6
|
|
7
7
|
NO_ARG = Object.new
|
8
8
|
|
9
|
+
def includes(target, path, expected = NO_ARG)
|
10
|
+
path, expected = '', path if expected == NO_ARG
|
11
|
+
target = extract_path(target, path)
|
12
|
+
an_array(target).include?(expected)
|
13
|
+
end
|
14
|
+
|
15
|
+
def notIncludes(target, path, expected = NO_ARG)
|
16
|
+
not self.includes(target, path, expected)
|
17
|
+
end
|
18
|
+
|
9
19
|
def exists(target, path = NO_ARG)
|
10
20
|
target = extract_path(target, path)
|
11
21
|
not target.nil?
|
@@ -77,7 +87,7 @@ module Webspicy
|
|
77
87
|
!match(target, path, rx)
|
78
88
|
end
|
79
89
|
|
80
|
-
|
90
|
+
public
|
81
91
|
|
82
92
|
def extract_path(target, path = NO_ARG)
|
83
93
|
return target if path.nil? or path==NO_ARG or path.empty?
|
@@ -87,6 +97,8 @@ module Webspicy
|
|
87
97
|
end
|
88
98
|
end
|
89
99
|
|
100
|
+
private
|
101
|
+
|
90
102
|
def respond_to!(target, method)
|
91
103
|
unless target.respond_to?(method)
|
92
104
|
raise InvalidArgError, "Expecting instance responding to #{method}"
|
data/lib/webspicy/version.rb
CHANGED
@@ -18,6 +18,16 @@ module Webspicy
|
|
18
18
|
expect(extract_path(target, 'baz/0/foo')).to eql("world")
|
19
19
|
end
|
20
20
|
|
21
|
+
it 'has an includes() assertion' do
|
22
|
+
expect(includes [], 1).to be(false)
|
23
|
+
expect(includes [5, 1], 1).to be(true)
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'has an notIcludes() assertion' do
|
27
|
+
expect(notIncludes [], 1).to be(true)
|
28
|
+
expect(notIncludes [5, 1], 1).to be(false)
|
29
|
+
end
|
30
|
+
|
21
31
|
it 'has an exists() assertion' do
|
22
32
|
expect(exists nil).to be(false)
|
23
33
|
expect(exists []).to be(true)
|