Michael Miller
7451769a29
Pass current example as block argument
2021-01-09 13:34:15 -07:00
Michael Miller
009ca4776a
Cleanup new DSL macros
2021-01-09 13:17:42 -07:00
Michael Miller
df096d91aa
Capture source info for hooks
2021-01-09 11:30:00 -07:00
Michael Miller
4c6b6e6436
Merge branch 'master' into example-api
2020-12-23 14:52:53 -07:00
Michael Miller
f465df48d4
Fix copy/paste fail docs
2020-12-23 13:18:36 -07:00
Michael Miller
5ec7e25d57
Remove splat
2020-12-23 12:54:44 -07:00
Michael Miller
0540f94823
Add contain_elements and have_elements variants
2020-12-23 12:38:37 -07:00
Michael Miller
0279606a1c
Placeholder code for after hooks
2020-11-15 11:22:06 -07:00
Michael Miller
b4e74444d1
Some work on hooks in DSL
2020-11-08 22:21:52 -07:00
Michael Miller
7d54884196
Don't pass context, get/cast from example instance
2020-11-08 16:53:54 -07:00
Michael Miller
b8dc83286c
Upcast context to reduce method instances generated by compiler
2020-11-08 16:52:08 -07:00
Michael Miller
f433405ece
Scratch work
...
Trying to implement hooks. Ran into a problem with contexts.
2020-11-08 15:06:49 -07:00
Michael Miller
688c08b087
Initial work on hooks rework
2020-11-07 22:04:37 -07:00
Michael Miller
1f319a70ce
Add docs
2020-11-07 22:04:21 -07:00
Michael Miller
e8afe5070b
Address Ameba issues
2020-10-19 20:34:18 -06:00
Michael Miller
c36e006c85
Move top-level DSL to its own module
2020-10-17 22:57:27 -06:00
Michael Miller
79499c5d2e
Add config to spec builder
2020-10-17 17:40:38 -06:00
Michael Miller
788b12a8bc
Fix example methods overriding previously defined methods
2020-10-17 12:12:04 -06:00
Michael Miller
579fcacfde
Move spec builder
2020-09-26 22:51:58 -06:00
Michael Miller
543df88d39
Forward build method
2020-09-26 22:25:04 -06:00
Michael Miller
4567162459
Prevent defining an example or group in a test
2020-09-26 19:23:57 -06:00
Michael Miller
99a9d7960a
Formatting
2020-09-26 19:23:16 -06:00
Michael Miller
60795a371d
Reorganize
2020-09-26 19:15:34 -06:00
Michael Miller
b8ba38152e
Cleanup example description handling
2020-09-26 19:14:08 -06:00
Michael Miller
1d359efcb0
Improve source line detection
2020-09-26 19:12:42 -06:00
Michael Miller
1ad41ac016
Cleanup group description handling
2020-09-26 19:11:52 -06:00
Michael Miller
96a7989815
Remove unreferenced code
2020-09-26 18:14:41 -06:00
Michael Miller
acb3b16496
Add some docs
2020-09-26 18:14:22 -06:00
Michael Miller
de99fce5b1
Merge branch 'master' into example-api
2020-09-26 11:10:55 -06:00
Michael Miller
6363436afa
Nested macros for defining DSL keywords
2020-09-25 21:44:17 -06:00
Michael Miller
a0af1e7cd1
Allow string interpolation in some macros
...
Enables interpolation in example and group descriptions, as well as
anonymous doubles.
Addresses https://github.com/icy-arctic-fox/spectator/issues/10
2020-09-17 09:35:49 -06:00
Michael Miller
9103bfde0f
Playing around with line numbers
...
Trying to find some pattern in the line descripancies reported to the
macros compared to the source file.
2020-09-14 20:00:17 -06:00
Michael Miller
bc602d9b62
Working example creation from DSL
2020-09-14 13:55:07 -06:00
Michael Miller
7c44cba667
Fix group creation via DSL
2020-09-12 18:40:56 -06:00
Michael Miller
dad669686c
Temporarily disable running examples
2020-09-12 18:40:36 -06:00
Michael Miller
67ac06e4d6
Some initial spec builder code
2020-09-12 18:37:14 -06:00
Michael Miller
225c358cb8
Some initial work on cleaned up groups
2020-09-12 16:01:29 -06:00
Michael Miller
8f0718db86
Handle splat in macro for matcher DSL
...
Should fix https://github.com/icy-arctic-fox/spectator/issues/8
2020-08-11 14:37:37 -06:00
Michael Miller
9c14c69bba
Change "ditto" to ":ditto:"
2020-08-06 19:20:18 -06:00
Michael Miller
7fc25b84c3
Fix bug when using multiple short-hand block expects in one test
...
For instance, this would fail:
```
it "does something" do
expect(&.foo).to be_true
expect(&.false).to be_false
end
```
2020-05-29 20:06:37 -06:00
Michael Miller
476e54bb2b
Store expected value as array
...
Fixes issue where contain_exactly matcher would try to append to a tuple
(which isn't allowed).
2020-05-28 22:23:29 -06:00
Michael Miller
d02b848ad5
Use the exact text from the describe value
...
This fixes described_class.new when using a generic type.
2020-04-26 11:13:07 -06:00
Michael Miller
e126cb744b
Ensure that a TypeNode is resolved
...
When describing a constant, the `resolve?` method can return a
non-TypeNode, which is the constant's value.
The Crystal docs seem to indicate this should only return `TypeNode` or
`NilLiteral`.
But, I can see when this would be useful to resolve a constant in a
macro.
To work around this, `described_class` and `subject` should only be
defined when it resolves to a `TypeNode`.
Fixes arctic-fox/spectator#40
Fixes arctic-fox/spectator#41
2020-03-04 23:16:29 -07:00
Michael Miller
d0f229c659
Pass example proc to around_each hook if there are no arguments
2020-03-03 15:20:25 -07:00
Michael Miller
e92aa7ed57
Implicit subject should not use .new with modules
...
Fixes GitHub issue https://github.com/icy-arctic-fox/spectator/issues/6
2020-02-22 22:59:09 -07:00
Davide Paolo Tua
ce9bf918c1
Fix syntax errors in be_between matcher
2020-02-21 12:48:22 +01:00
Michael Miller
3aaab0e74f
Fix memoized subject from context description another way
...
The other method gave a strange compiler error when running specs.
Something to do with "K" not having an inspect method.
In /usr/share/crystal/src/hash.cr:1826:13
1826 | key.inspect(io)
^------
Error: undefined method 'inspect' for K
2020-02-16 19:50:20 -07:00
Michael Miller
dd48bf6f25
Fix subject not being memoized when using described_class
2020-02-16 19:34:48 -07:00
Michael Miller
7a8e570bea
Fix typo with should_eventually
2020-02-10 17:50:35 -07:00
Michael Miller
b1984b343a
Add should
keywords to examples
...
Allows short-hand like:
it { should be_empty }
2020-01-19 22:12:06 -07:00