Michael Miller
f3ef2e561e
Initial implementation of raise_error matcher
2019-03-21 21:10:16 -06:00
Michael Miller
72ccafb8b7
Pass subject to proc via partial
2019-03-21 21:09:46 -06:00
Michael Miller
e552cbffd2
Fix DSL usage of BlockExpectationPartial
2019-03-19 21:20:23 -06:00
Michael Miller
33e3b5a811
Use {{yield}} only in methods
...
The {{yield}} expression wraps the block with "begin ... end".
For some reason classes and modules can be defined in a "begin ... end"
block, but that might change.
2019-03-10 06:42:51 -06:00
Michael Miller
cdef7f9fa3
Use macro yield and remove &block when not needed
2019-03-03 19:24:56 -07:00
Michael Miller
1219b19d89
Support shorthand &.foo(ARGS) syntax
2019-02-28 15:40:04 -07:00
Michael Miller
619927b3e6
Forgot to swap label and expected in DSL
2019-02-28 15:22:14 -07:00
Michael Miller
847cc662bd
Update docs
...
Mostly fixes around symbols for syntax.
Added some missing docs and updated incorrect or vague ones.
2019-02-17 23:01:43 -07:00
Michael Miller
8339784492
Add symbolic attribute to example components
...
This is used to determine whether a type or method is referenced.
2019-02-17 16:27:41 -07:00
Michael Miller
ed01a95e67
Replace source file and line with source struct
2019-02-17 12:40:16 -07:00
Michael Miller
ac5c2bbe47
Reorder source arguments and simplify
2019-02-14 16:19:49 -07:00
Michael Miller
61e92951ae
Add source file and line number to expectations
2019-02-14 16:04:09 -07:00
Michael Miller
5913a4c18f
Add source file and line number
...
The issue with nested macros losing their source location has been
fixed!
2019-02-14 15:41:26 -07:00
Michael Miller
55b655e90a
Update naming and fresh variables
2019-02-10 01:20:30 -07:00
Michael Miller
fc3a7285a0
Rename "wrapper" to test code/instance
2019-02-10 01:03:32 -07:00
Michael Miller
e14e86a5f3
Add have_value
matcher
2019-02-05 19:37:25 -07:00
Michael Miller
7698724241
Update old naming to new matcher name
2019-02-05 19:30:44 -07:00
Michael Miller
c6b4e22666
Add have_key
matcher
2019-02-05 12:47:50 -07:00
Michael Miller
6bfd15b7f9
Parameterless initializer that generates the label
2019-02-05 10:36:37 -07:00
Michael Miller
0e0b8f4ae2
Base PredicateMatcher off of Matcher
...
No need to store an expected value.
Matcher's initializer must be public.
2019-02-05 10:14:33 -07:00
Michael Miller
89208b8ed1
Implement predicate matcher
...
Took a trick I learned from `have_attributes` and applied it here.
2019-02-04 22:52:09 -07:00
Michael Miller
1c9cb41fa2
Add have_attributes
matcher
...
This one is kind of magical.
2019-02-01 22:24:06 -07:00
Michael Miller
0c4ffdf587
Allow have
matcher to take multiple values
2019-02-01 20:27:51 -07:00
Michael Miller
85b4e6894b
Allow contain
matcher to take multiple values
2019-02-01 19:43:42 -07:00
Michael Miller
5389a39231
Add DSL for be_close
matcher
2019-02-01 19:10:28 -07:00
Michael Miller
4ea439622d
Implement have
matcher
...
This is very similar to the `contain` matcher.
I would have used `include` for the matcher name, but it is a keyword
that can't be used in this syntax.
2019-02-01 16:25:45 -07:00
Michael Miller
f4ac7a3405
Add contain
matcher
2019-01-31 23:06:00 -07:00
Michael Miller
d0711f940d
Add end_with
matcher
2019-01-31 22:05:27 -07:00
Michael Miller
0a310cb243
Add start_with
matcher
2019-01-31 16:43:43 -07:00
Michael Miller
46a6a4e51e
Remove reference to short-hand for non-block macro
2019-01-28 16:58:36 -07:00
Michael Miller
30582f9a89
Add empty matcher to DSL
2019-01-26 17:04:46 -07:00
Michael Miller
028065ad26
Add #be_nil to DSL
2019-01-26 16:42:58 -07:00
Michael Miller
abc321130a
Add DSL for range matching
2019-01-25 13:20:38 -07:00
Michael Miller
154832e5c4
Add be_an
variation of be_a
2019-01-25 11:21:41 -07:00
Michael Miller
c31557e8ff
Move everything in BeComparison to TruthyMatcher
...
This is to match RSpec's ability to use "be" by itself.
For instance: `expect(foo).to be`
2019-01-23 22:10:03 -07:00
Michael Miller
28c13cd175
Add xit
to DSL
2019-01-23 21:57:16 -07:00
Michael Miller
e746ede287
Add specify
to DSL
2019-01-23 21:56:02 -07:00
Michael Miller
0c284b6713
Add other comparison matchers to DSL
2019-01-23 21:45:16 -07:00
Michael Miller
b93ef1fd2d
Initial structure for "be OP value" syntax
2019-01-23 17:17:45 -07:00
Michael Miller
57c15b9088
Split #expects macro
2019-01-23 16:48:12 -07:00
Michael Miller
78698d2de9
Can't support multiple arguments (expected values)
...
The macro would only "attach" `.to` to the last partial.
2019-01-23 16:43:59 -07:00
Michael Miller
17c66dd732
Split #expect macro
...
TIL Crystal supports macro overloading, the argument count must be
different.
2019-01-23 16:42:17 -07:00
Michael Miller
046d946669
Handle case of missing block body for #given better
2019-01-23 16:31:54 -07:00
Michael Miller
8c6552a995
Add DSL for be_truthy
and be_falsey
2019-01-23 15:51:52 -07:00
Michael Miller
429c2d7302
Add #be_true and #be_false to DSL
2019-01-23 15:35:32 -07:00
Michael Miller
ed8fad2c97
Add documentation for pre- and post-conditions
2019-01-23 14:37:43 -07:00
Michael Miller
260e1884ab
Implement match
(regex) matcher
2019-01-19 14:40:14 -07:00
Michael Miller
419b1322bf
Create parameterless initializer for TypeMatcher
2019-01-19 14:28:52 -07:00
Michael Miller
e66c0abcfb
Change described_class
to a macro
2019-01-19 14:17:28 -07:00
Michael Miller
46875d7770
Implement be_a
matcher
2019-01-19 14:08:50 -07:00