sus 0.14.0 → 0.16.0
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
- checksums.yaml.gz.sig +0 -0
- data/bin/sus +1 -1
- data/bin/sus-parallel +1 -1
- data/lib/sus/assertions.rb +45 -11
- data/lib/sus/be.rb +7 -1
- data/lib/sus/be_truthy.rb +40 -0
- data/lib/sus/config.rb +15 -7
- data/lib/sus/file.rb +4 -3
- data/lib/sus/it.rb +17 -1
- data/lib/sus/it_behaves_like.rb +10 -4
- data/lib/sus/output/status.rb +0 -3
- data/lib/sus/output/text.rb +2 -0
- data/lib/sus/output.rb +3 -1
- data/lib/sus/receive.rb +3 -0
- data/lib/sus/registry.rb +15 -0
- data/lib/sus/version.rb +1 -1
- data/lib/sus/with.rb +2 -0
- data/lib/sus.rb +1 -0
- data/license.md +2 -1
- data/readme.md +0 -24
- data.tar.gz.sig +0 -0
- metadata +7 -5
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f36ad4203b1471b0dfa6a95fd4407978f5bfab703c09d14d2ee481d519296b46
|
|
4
|
+
data.tar.gz: 539e6eb3ef50f12d6159c271a63130e696c3f48f914e1b74e7671a90cf90f726
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dddf727776b219c29970aea30f177903bd52f82497a552dd55ff4821be51b5722aade3e081b3eb0d878ab033385ef375aee222afbf500b07a109b2bc8438f85f
|
|
7
|
+
data.tar.gz: 9dd5df66341eaac3877777af106cd2262720991a3ec742b7859934790255440334b961bce01a3b28306e45b7c4db33d56f56cc5bdf052143f4109a4854f3ba8e
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/bin/sus
CHANGED
data/bin/sus-parallel
CHANGED
data/lib/sus/assertions.rb
CHANGED
|
@@ -35,6 +35,8 @@ module Sus
|
|
|
35
35
|
@passed = Array.new
|
|
36
36
|
@failed = Array.new
|
|
37
37
|
@deferred = Array.new
|
|
38
|
+
@skipped = Array.new
|
|
39
|
+
@errored = Array.new
|
|
38
40
|
|
|
39
41
|
@count = 0
|
|
40
42
|
end
|
|
@@ -63,15 +65,18 @@ module Sus
|
|
|
63
65
|
# Nested assertions have been deferred.
|
|
64
66
|
attr :deferred
|
|
65
67
|
|
|
68
|
+
attr :skipped
|
|
69
|
+
attr :errored
|
|
70
|
+
|
|
66
71
|
# The total number of assertions performed:
|
|
67
72
|
attr :count
|
|
68
73
|
|
|
69
74
|
def inspect
|
|
70
|
-
"\#<#{self.class} #{@passed.size} passed #{@failed.size} failed #{@deferred.size} deferred>"
|
|
75
|
+
"\#<#{self.class} #{@passed.size} passed #{@failed.size} failed #{@deferred.size} deferred #{@skipped.size} skipped #{@errored.size} errored>"
|
|
71
76
|
end
|
|
72
77
|
|
|
73
78
|
def total
|
|
74
|
-
@passed.size + @failed.size
|
|
79
|
+
@passed.size + @failed.size + @deferred.size + @skipped.size + @errored.size
|
|
75
80
|
end
|
|
76
81
|
|
|
77
82
|
def print(output, verbose: @verbose)
|
|
@@ -95,6 +100,14 @@ module Sus
|
|
|
95
100
|
output.write(:deferred, @deferred.size, " deferred", :reset, " ")
|
|
96
101
|
end
|
|
97
102
|
|
|
103
|
+
if @skipped.any?
|
|
104
|
+
output.write(:skipped, @skipped.size, " skipped", :reset, " ")
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
if @errored.any?
|
|
108
|
+
output.write(:errored, @errored.size, " errored", :reset, " ")
|
|
109
|
+
end
|
|
110
|
+
|
|
98
111
|
output.write("out of ", self.total, " total (", @count, " assertions)")
|
|
99
112
|
end
|
|
100
113
|
end
|
|
@@ -104,16 +117,16 @@ module Sus
|
|
|
104
117
|
end
|
|
105
118
|
|
|
106
119
|
def empty?
|
|
107
|
-
@passed.empty? and @failed.empty?
|
|
120
|
+
@passed.empty? and @failed.empty? and @deferred.empty? and @skipped.empty? and @errored.empty?
|
|
108
121
|
end
|
|
109
122
|
|
|
110
123
|
def passed?
|
|
111
124
|
if @inverted
|
|
112
125
|
# Inverted assertions:
|
|
113
|
-
|
|
126
|
+
@failed.any? and @errored.empty?
|
|
114
127
|
else
|
|
115
128
|
# Normal assertions:
|
|
116
|
-
|
|
129
|
+
@failed.empty? and @errored.empty?
|
|
117
130
|
end
|
|
118
131
|
end
|
|
119
132
|
|
|
@@ -121,6 +134,10 @@ module Sus
|
|
|
121
134
|
!self.passed?
|
|
122
135
|
end
|
|
123
136
|
|
|
137
|
+
def errored?
|
|
138
|
+
@errored.any?
|
|
139
|
+
end
|
|
140
|
+
|
|
124
141
|
def assert(condition, message = nil)
|
|
125
142
|
@count += 1
|
|
126
143
|
|
|
@@ -139,6 +156,11 @@ module Sus
|
|
|
139
156
|
end
|
|
140
157
|
end
|
|
141
158
|
|
|
159
|
+
def skip(reason)
|
|
160
|
+
@output.puts(:indent, :skipped, skip_prefix, reason)
|
|
161
|
+
@skipped << self
|
|
162
|
+
end
|
|
163
|
+
|
|
142
164
|
def inform(message)
|
|
143
165
|
@output.puts(:indent, :inform, inform_prefix, message)
|
|
144
166
|
end
|
|
@@ -162,15 +184,15 @@ module Sus
|
|
|
162
184
|
end
|
|
163
185
|
end
|
|
164
186
|
|
|
165
|
-
def
|
|
166
|
-
@
|
|
187
|
+
def error!(error)
|
|
188
|
+
@errored << self
|
|
167
189
|
|
|
168
190
|
lines = error.message.split(/\r?\n/)
|
|
169
191
|
|
|
170
|
-
@output.puts(:indent, *
|
|
192
|
+
@output.puts(:indent, *error_prefix, error.class, ": ", lines.shift)
|
|
171
193
|
|
|
172
194
|
lines.each do |line|
|
|
173
|
-
@output.puts(:indent,
|
|
195
|
+
@output.puts(:indent, line)
|
|
174
196
|
end
|
|
175
197
|
|
|
176
198
|
@output.write(Output::Backtrace.for(error, @identity))
|
|
@@ -201,7 +223,7 @@ module Sus
|
|
|
201
223
|
begin
|
|
202
224
|
result = yield(assertions)
|
|
203
225
|
rescue StandardError => error
|
|
204
|
-
assertions.
|
|
226
|
+
assertions.error!(error)
|
|
205
227
|
end
|
|
206
228
|
end
|
|
207
229
|
|
|
@@ -251,7 +273,9 @@ module Sus
|
|
|
251
273
|
def merge!(assertions)
|
|
252
274
|
@count += assertions.count
|
|
253
275
|
|
|
254
|
-
if assertions.
|
|
276
|
+
if assertions.errored?
|
|
277
|
+
@errored << assertions
|
|
278
|
+
elsif assertions.passed?
|
|
255
279
|
@passed << assertions
|
|
256
280
|
|
|
257
281
|
# if @verbose
|
|
@@ -273,6 +297,8 @@ module Sus
|
|
|
273
297
|
@passed.concat(assertions.passed)
|
|
274
298
|
@failed.concat(assertions.failed)
|
|
275
299
|
@deferred.concat(assertions.deferred)
|
|
300
|
+
@skipped.concat(assertions.skipped)
|
|
301
|
+
@errored.concat(assertions.errored)
|
|
276
302
|
|
|
277
303
|
# if @verbose
|
|
278
304
|
# @output.write(:indent)
|
|
@@ -303,5 +329,13 @@ module Sus
|
|
|
303
329
|
def inform_prefix
|
|
304
330
|
"ℹ "
|
|
305
331
|
end
|
|
332
|
+
|
|
333
|
+
def skip_prefix
|
|
334
|
+
"⏸ "
|
|
335
|
+
end
|
|
336
|
+
|
|
337
|
+
def error_prefix
|
|
338
|
+
[:errored, "⚠ "]
|
|
339
|
+
end
|
|
306
340
|
end
|
|
307
341
|
end
|
data/lib/sus/be.rb
CHANGED
|
@@ -16,7 +16,9 @@ module Sus
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def call(assertions, subject)
|
|
19
|
-
assertions.
|
|
19
|
+
assertions.nested(self) do |assertions|
|
|
20
|
+
assertions.assert(subject.public_send(*@arguments))
|
|
21
|
+
end
|
|
20
22
|
end
|
|
21
23
|
|
|
22
24
|
class << self
|
|
@@ -72,5 +74,9 @@ module Sus
|
|
|
72
74
|
def be_nil
|
|
73
75
|
Be::NIL
|
|
74
76
|
end
|
|
77
|
+
|
|
78
|
+
def be_equal(other)
|
|
79
|
+
Be.new(:equal?, other)
|
|
80
|
+
end
|
|
75
81
|
end
|
|
76
82
|
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Released under the MIT License.
|
|
4
|
+
# Copyright, 2022, by Samuel Williams.
|
|
5
|
+
|
|
6
|
+
module Sus
|
|
7
|
+
module BeTruthy
|
|
8
|
+
def self.print(output)
|
|
9
|
+
output.write("be truthy")
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.call(assertions, subject)
|
|
13
|
+
assertions.nested(self) do |assertions|
|
|
14
|
+
assertions.assert(subject, self)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
module BeFalsey
|
|
20
|
+
def self.print(output)
|
|
21
|
+
output.write("be falsey")
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def self.call(assertions, subject)
|
|
25
|
+
assertions.nested(self) do |assertions|
|
|
26
|
+
assertions.assert(!subject, self)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class Base
|
|
32
|
+
def be_truthy
|
|
33
|
+
BeTruthy
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def be_falsey
|
|
37
|
+
BeFalsey
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
data/lib/sus/config.rb
CHANGED
|
@@ -116,13 +116,13 @@ module Sus
|
|
|
116
116
|
|
|
117
117
|
assertions.print(output)
|
|
118
118
|
output.puts
|
|
119
|
-
|
|
119
|
+
|
|
120
120
|
print_finished_statistics(assertions)
|
|
121
|
-
|
|
121
|
+
|
|
122
122
|
if !partial? and assertions.passed?
|
|
123
123
|
print_test_feedback(assertions)
|
|
124
124
|
end
|
|
125
|
-
|
|
125
|
+
|
|
126
126
|
print_slow_tests(assertions)
|
|
127
127
|
print_failed_assertions(assertions)
|
|
128
128
|
end
|
|
@@ -193,14 +193,22 @@ module Sus
|
|
|
193
193
|
end
|
|
194
194
|
end
|
|
195
195
|
|
|
196
|
-
def
|
|
197
|
-
if assertions.
|
|
196
|
+
def print_assertions(title, assertions)
|
|
197
|
+
if assertions.any?
|
|
198
198
|
output.puts
|
|
199
|
+
output.puts title
|
|
199
200
|
|
|
200
|
-
assertions.
|
|
201
|
-
|
|
201
|
+
assertions.each do |assertion|
|
|
202
|
+
assertions.each do |failure|
|
|
203
|
+
output.append(failure.output)
|
|
204
|
+
end
|
|
202
205
|
end
|
|
203
206
|
end
|
|
204
207
|
end
|
|
208
|
+
|
|
209
|
+
def print_failed_assertions(assertions)
|
|
210
|
+
print_assertions("🤔 Failed assertions:", assertions.failed)
|
|
211
|
+
print_assertions("🔥 Errored assertions:", assertions.errored)
|
|
212
|
+
end
|
|
205
213
|
end
|
|
206
214
|
end
|
data/lib/sus/file.rb
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# Released under the MIT License.
|
|
4
|
-
# Copyright, 2021-
|
|
4
|
+
# Copyright, 2021-2023, by Samuel Williams.
|
|
5
|
+
# Copyright, 2022, by Brad Schrag.
|
|
5
6
|
|
|
6
7
|
require_relative 'context'
|
|
7
8
|
|
|
8
9
|
# This has to be done at the top level. It allows us to define constants within the given class while still retaining top-level constant resolution.
|
|
9
|
-
Sus::TOPLEVEL_CLASS_EVAL = ->(
|
|
10
|
+
Sus::TOPLEVEL_CLASS_EVAL = ->(__klass__, __path__){__klass__.class_eval(::File.read(__path__), __path__)}
|
|
10
11
|
|
|
11
12
|
module Sus
|
|
12
13
|
module File
|
|
13
14
|
extend Context
|
|
14
|
-
|
|
15
|
+
|
|
15
16
|
def self.extended(base)
|
|
16
17
|
base.children = Hash.new
|
|
17
18
|
end
|
data/lib/sus/it.rb
CHANGED
|
@@ -39,10 +39,20 @@ module Sus
|
|
|
39
39
|
instance = self.new(assertions)
|
|
40
40
|
|
|
41
41
|
instance.around do
|
|
42
|
-
instance
|
|
42
|
+
handle_skip(instance, assertions)
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
|
+
|
|
47
|
+
def handle_skip(instance, assertions)
|
|
48
|
+
reason = catch(:skip) do
|
|
49
|
+
return instance.call
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
assertions.skip(reason)
|
|
53
|
+
|
|
54
|
+
return nil
|
|
55
|
+
end
|
|
46
56
|
end
|
|
47
57
|
|
|
48
58
|
module Context
|
|
@@ -50,4 +60,10 @@ module Sus
|
|
|
50
60
|
add It.build(self, ...)
|
|
51
61
|
end
|
|
52
62
|
end
|
|
63
|
+
|
|
64
|
+
class Base
|
|
65
|
+
def skip(reason)
|
|
66
|
+
throw :skip, reason
|
|
67
|
+
end
|
|
68
|
+
end
|
|
53
69
|
end
|
data/lib/sus/it_behaves_like.rb
CHANGED
|
@@ -11,13 +11,19 @@ module Sus
|
|
|
11
11
|
|
|
12
12
|
attr_accessor :shared
|
|
13
13
|
|
|
14
|
-
def self.build(parent, shared, unique: false)
|
|
14
|
+
def self.build(parent, shared, arguments = nil, unique: false, &block)
|
|
15
15
|
base = Class.new(parent)
|
|
16
16
|
base.singleton_class.prepend(ItBehavesLike)
|
|
17
17
|
base.children = Hash.new
|
|
18
18
|
base.description = shared.name
|
|
19
19
|
base.identity = Identity.nested(parent.identity, base.description, unique: unique)
|
|
20
|
-
|
|
20
|
+
|
|
21
|
+
# User provided block is evaluated first, so that it can provide default behaviour for the shared context:
|
|
22
|
+
if block_given?
|
|
23
|
+
base.class_exec(*arguments, &block)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
base.class_exec(*arguments, &shared.block)
|
|
21
27
|
return base
|
|
22
28
|
end
|
|
23
29
|
|
|
@@ -28,8 +34,8 @@ module Sus
|
|
|
28
34
|
end
|
|
29
35
|
|
|
30
36
|
module Context
|
|
31
|
-
def it_behaves_like(shared, **options)
|
|
32
|
-
add ItBehavesLike.build(self, shared, **options)
|
|
37
|
+
def it_behaves_like(shared, *arguments, **options, &block)
|
|
38
|
+
add ItBehavesLike.build(self, shared, arguments, **options, &block)
|
|
33
39
|
end
|
|
34
40
|
end
|
|
35
41
|
end
|
data/lib/sus/output/status.rb
CHANGED
|
@@ -14,7 +14,6 @@ module Sus
|
|
|
14
14
|
def initialize(state = :free, context = nil)
|
|
15
15
|
@state = state
|
|
16
16
|
@context = context
|
|
17
|
-
@index = 0
|
|
18
17
|
end
|
|
19
18
|
|
|
20
19
|
INDICATORS = {
|
|
@@ -36,8 +35,6 @@ module Sus
|
|
|
36
35
|
end
|
|
37
36
|
|
|
38
37
|
def print(output)
|
|
39
|
-
message = @message
|
|
40
|
-
|
|
41
38
|
output.write(
|
|
42
39
|
@state, self.indicator, " "
|
|
43
40
|
)
|
data/lib/sus/output/text.rb
CHANGED
data/lib/sus/output.rb
CHANGED
|
@@ -39,7 +39,9 @@ module Sus
|
|
|
39
39
|
|
|
40
40
|
output[:passed] = output.style(:green)
|
|
41
41
|
output[:failed] = output.style(:red)
|
|
42
|
-
output[:
|
|
42
|
+
output[:deferred] = output.style(:yellow)
|
|
43
|
+
output[:skipped] = output.style(:blue)
|
|
44
|
+
output[:errored] = output.style(:red)
|
|
43
45
|
# output[:inform] = output.style(nil, nil, :bold)
|
|
44
46
|
|
|
45
47
|
return output
|
data/lib/sus/receive.rb
CHANGED
|
@@ -47,14 +47,17 @@ module Sus
|
|
|
47
47
|
|
|
48
48
|
def once
|
|
49
49
|
@times = Times.new(Be.new(:==, 1))
|
|
50
|
+
return self
|
|
50
51
|
end
|
|
51
52
|
|
|
52
53
|
def twice
|
|
53
54
|
@times = Times.new(Be.new(:==, 2))
|
|
55
|
+
return self
|
|
54
56
|
end
|
|
55
57
|
|
|
56
58
|
def with_call_count(predicate)
|
|
57
59
|
@times = Times.new(predicate)
|
|
60
|
+
return self
|
|
58
61
|
end
|
|
59
62
|
|
|
60
63
|
def and_return(*returning)
|
data/lib/sus/registry.rb
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Released under the MIT License.
|
|
4
4
|
# Copyright, 2021-2022, by Samuel Williams.
|
|
5
|
+
# Copyright, 2022, by Brad Schrag.
|
|
5
6
|
|
|
6
7
|
require_relative 'base'
|
|
7
8
|
|
|
@@ -19,6 +20,8 @@ require_relative 'let'
|
|
|
19
20
|
|
|
20
21
|
module Sus
|
|
21
22
|
class Registry
|
|
23
|
+
DIRECTORY_GLOB = "**/*.rb"
|
|
24
|
+
|
|
22
25
|
# Create a top level scope with self as the instance:
|
|
23
26
|
def initialize(base = Sus.base(self))
|
|
24
27
|
@base = base
|
|
@@ -31,9 +34,21 @@ module Sus
|
|
|
31
34
|
end
|
|
32
35
|
|
|
33
36
|
def load(path)
|
|
37
|
+
if ::File.directory?(path)
|
|
38
|
+
load_directory(path)
|
|
39
|
+
else
|
|
40
|
+
load_file(path)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
private def load_file(path)
|
|
34
45
|
@base.file(path)
|
|
35
46
|
end
|
|
36
47
|
|
|
48
|
+
private def load_directory(path)
|
|
49
|
+
::Dir.glob(::File.join(path, DIRECTORY_GLOB), &self.method(:load_file))
|
|
50
|
+
end
|
|
51
|
+
|
|
37
52
|
def call(assertions = Assertions.default)
|
|
38
53
|
@base.call(assertions)
|
|
39
54
|
|
data/lib/sus/version.rb
CHANGED
data/lib/sus/with.rb
CHANGED
|
@@ -21,6 +21,8 @@ module Sus
|
|
|
21
21
|
base.identity = Identity.nested(parent.identity, base.description, unique: unique)
|
|
22
22
|
base.variables = variables
|
|
23
23
|
|
|
24
|
+
base.define_method(:description, ->{subject})
|
|
25
|
+
|
|
24
26
|
variables.each do |key, value|
|
|
25
27
|
base.define_method(key, ->{value})
|
|
26
28
|
end
|
data/lib/sus.rb
CHANGED
data/license.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# MIT License
|
|
2
2
|
|
|
3
|
-
Copyright, 2021-
|
|
3
|
+
Copyright, 2021-2023, by Samuel Williams.
|
|
4
|
+
Copyright, 2022, by Brad Schrag.
|
|
4
5
|
|
|
5
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
7
|
of this software and associated documentation files (the "Software"), to deal
|
data/readme.md
CHANGED
|
@@ -43,27 +43,3 @@ Check `test` directory for examples.
|
|
|
43
43
|
3. Commit your changes (`git commit -am 'Add some feature'`).
|
|
44
44
|
4. Push to the branch (`git push origin my-new-feature`).
|
|
45
45
|
5. Create new Pull Request.
|
|
46
|
-
|
|
47
|
-
## License
|
|
48
|
-
|
|
49
|
-
Released under the MIT license.
|
|
50
|
-
|
|
51
|
-
Copyright, 2021, by [Samuel G. D. Williams](https://www.codeotaku.com).
|
|
52
|
-
|
|
53
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
54
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
55
|
-
in the Software without restriction, including without limitation the rights
|
|
56
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
57
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
58
|
-
furnished to do so, subject to the following conditions:
|
|
59
|
-
|
|
60
|
-
The above copyright notice and this permission notice shall be included in
|
|
61
|
-
all copies or substantial portions of the Software.
|
|
62
|
-
|
|
63
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
64
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
65
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
66
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
67
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
68
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
69
|
-
THE SOFTWARE.
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sus
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.16.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Samuel Williams
|
|
8
|
+
- Brad Schrag
|
|
8
9
|
autorequire:
|
|
9
10
|
bindir: bin
|
|
10
11
|
cert_chain:
|
|
@@ -37,7 +38,7 @@ cert_chain:
|
|
|
37
38
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
|
38
39
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
|
39
40
|
-----END CERTIFICATE-----
|
|
40
|
-
date:
|
|
41
|
+
date: 2023-01-03 00:00:00.000000000 Z
|
|
41
42
|
dependencies:
|
|
42
43
|
- !ruby/object:Gem::Dependency
|
|
43
44
|
name: bake-test
|
|
@@ -73,14 +74,14 @@ dependencies:
|
|
|
73
74
|
requirements:
|
|
74
75
|
- - "~>"
|
|
75
76
|
- !ruby/object:Gem::Version
|
|
76
|
-
version: 0.
|
|
77
|
+
version: '0.18'
|
|
77
78
|
type: :development
|
|
78
79
|
prerelease: false
|
|
79
80
|
version_requirements: !ruby/object:Gem::Requirement
|
|
80
81
|
requirements:
|
|
81
82
|
- - "~>"
|
|
82
83
|
- !ruby/object:Gem::Version
|
|
83
|
-
version: 0.
|
|
84
|
+
version: '0.18'
|
|
84
85
|
description:
|
|
85
86
|
email:
|
|
86
87
|
executables:
|
|
@@ -95,6 +96,7 @@ files:
|
|
|
95
96
|
- lib/sus/assertions.rb
|
|
96
97
|
- lib/sus/base.rb
|
|
97
98
|
- lib/sus/be.rb
|
|
99
|
+
- lib/sus/be_truthy.rb
|
|
98
100
|
- lib/sus/be_within.rb
|
|
99
101
|
- lib/sus/clock.rb
|
|
100
102
|
- lib/sus/config.rb
|
|
@@ -153,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
153
155
|
- !ruby/object:Gem::Version
|
|
154
156
|
version: '0'
|
|
155
157
|
requirements: []
|
|
156
|
-
rubygems_version: 3.
|
|
158
|
+
rubygems_version: 3.4.1
|
|
157
159
|
signing_key:
|
|
158
160
|
specification_version: 4
|
|
159
161
|
summary: A fast and scalable test runner.
|
metadata.gz.sig
CHANGED
|
Binary file
|