Commit graph

1109 commits

Author SHA1 Message Date
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
a39223ff21
Bump to 0.9.25 2020-09-26 11:03:11 -06:00
Michael Miller
a4680f2584
Don't splat values for failed match data
This caused an issue where keys with the same name as existing arguments 
couldn't be used.
In this case, "description" and "failure_message".

Fixes https://github.com/icy-arctic-fox/spectator/issues/13
2020-09-26 10:50:18 -06:00
Michael Miller
6363436afa
Nested macros for defining DSL keywords 2020-09-25 21:44:17 -06:00
Michael Miller
db284066f6
Bump version to 0.9.24 2020-09-17 10:13:41 -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
6752c7c254
Move DSL-based code to subclass of SpectatorContext
This resolves a circular dependency.
2020-09-12 18:39:21 -06:00
Michael Miller
67ac06e4d6
Some initial spec builder code 2020-09-12 18:37:14 -06:00
Michael Miller
0190cc7260
Fix leading whitespace with root group 2020-09-12 18:35:31 -06:00
Michael Miller
98f886d9d4
Implement finished? method 2020-09-12 16:02:11 -06:00
Michael Miller
3133717323
Change NestedExampleGroup to ExampleGroup 2020-09-12 16:01:52 -06:00
Michael Miller
225c358cb8
Some initial work on cleaned up groups 2020-09-12 16:01:29 -06:00
Michael Miller
1d32946760
Note about docs in macros 2020-09-12 15:59:45 -06:00
Michael Miller
b271028c1e
Remove most includes for now 2020-09-12 15:59:20 -06:00
Michael Miller
e455708467
Add missing require statements 2020-09-12 15:58:54 -06:00
Michael Miller
6e3ec79a14
Remove SpecBuilder types 2020-09-12 15:58:07 -06:00
Michael Miller
8b205278ad
Change SpectatorTest to SpectatorContext 2020-09-12 15:57:20 -06:00
Michael Miller
50bae36ab0
Merge remote-tracking branch 'origin/master' into example-api 2020-09-12 15:44:56 -06:00
Michael Miller
ea6c154224
Change version to 0.10.0
Prepare for next minor release.
2020-09-12 15:43:28 -06:00
Michael Miller
a08c87dd5d
Remove workaround
https://github.com/icy-arctic-fox/spectator/issues/1 should be resolved 
by https://github.com/crystal-lang/crystal/pull/8234
2020-09-12 15:28:55 -06:00
Michael Miller
cce17ad55f
Fix filename 2020-09-12 14:34:24 -06:00
Michael Miller
b866bc7e08
Create example context variants 2020-09-06 10:31:23 -06:00
Michael Miller
3f7e0d7882
Add missing require statement 2020-09-05 19:55:46 -06:00
Michael Miller
3a5dd76324
Remove ExampleBase
Pending/skip functionality will be merged into Example or extend from 
it.
2020-09-05 19:54:55 -06:00
Michael Miller
fbf574b0b9
Create ExampleGroup and use shared ExampleNode type 2020-09-05 16:47:40 -06:00
Michael Miller
0f9c1ad09c
Add require for json 2020-09-05 16:36:12 -06:00
Michael Miller
4debebb8f0
Formatting 2020-09-05 15:55:28 -06:00
Michael Miller
55900ebecd
Initial rework of example type structure 2020-09-05 15:01:22 -06:00
Michael Miller
9c6502234b
Define test context types 2020-09-05 14:55:49 -06:00
Michael Miller
4a7e0c8bd7
Bump version to 0.9.23 2020-08-30 12:44:37 -06:00
Michael Miller
a23b2d0753
Workaround for https://gitlab.com/arctic-fox/spectator/-/issues/53 2020-08-30 12:44:07 -06:00
Michael Miller
53c9dd0445
Display first line only after "Error:" 2020-08-16 10:00:04 -06:00
Michael Miller
ce248de0d9
Bump version to 0.9.22 2020-08-11 14:37:37 -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
ac9a0cec4f
Bump version to 0.9.21
Reference latest Crystal.
2020-07-27 13:42:55 -06:00
Michael Miller
4e50108fb9
Use smaller range for default random seed
RSpec seems to use a smaller range, something like 65k (UInt16).
2020-07-27 13:39:57 -06:00
Michael Miller
e5ed6418db
Only include seed if report if randomized 2020-07-27 13:37:41 -06:00
Michael Miller
e168b0ac7a
Blank line before seed output 2020-07-27 13:32:49 -06:00
Michael Miller
8fc2c93960
Track seed used when just -r is provided 2020-07-27 13:32:39 -06:00
Michael Miller
ba29c1e032
Show random seed
Only works when a seed specified, not when a random seed is used.
2020-07-27 12:10:39 -06:00
Michael Miller
7aa8cb14a4
Force seed to UInt64 2020-07-27 10:37:08 -06:00
Michael Miller
a8e2e5c021
Store random seed 2020-07-27 10:36:53 -06:00
Michael Miller
f7d7e2440e Bump version to 0.9.20 2020-05-29 20:07:04 -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
5d8110ec6c Bump version to 0.9.19 2020-05-28 22:24:33 -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
c99401f7d5 Use ± symbol for range 2020-05-09 16:10:16 -06:00
Michael Miller
e2c2ebafd3 No need to specify arguments to super and previous_def 2020-04-28 08:30:40 -06:00
Michael Miller
131b01d42c Update version to 0.9.18 2020-04-26 11:47:55 -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
3be9ffb7a0 Bump version to 0.9.17 2020-04-23 22:43:48 -06:00
Michael Miller
84476b0357 Treat to(mock) and to_eventually(mock) as the same
Fixes https://gitlab.com/arctic-fox/spectator/-/issues/48
2020-04-23 22:43:37 -06:00
Michael Miller
f329e2cbd5 Bump version to 0.9.16 (Crystal 0.34) 2020-04-06 18:24:28 -06:00
Michael Miller
6b0526fc45 Silence warnings from Crystal 0.34 2020-04-06 18:23:53 -06:00
Michael Miller
e891365ed7 Bump version to 0.9.15 2020-04-03 11:47:44 -06:00
Michael Miller
09e9c23115 Additional checks that the actual value satifies needed method 2020-04-03 11:47:11 -06:00
Michael Miller
7fadd92f62 Check that actual value is a collection
Previously, a compilation error would occur if the actual value didn't 
respond to `to_a`.
A way to reproduce this is for the actual value to be nilable.
2020-04-03 11:32:37 -06:00
Michael Miller
748c25afcb Fix issues with unordered array matcher 2020-04-03 11:01:54 -06:00
Michael Miller
7d463c6daa Bump version to 0.9.14 2020-04-01 22:18:02 -06:00
Michael Miller
a655abb7ac Fix issue when using nil with be matcher 2020-04-01 22:17:19 -06:00
Michael Miller
4595fca17a Bump to 0.9.13 2020-03-28 11:42:45 -06:00
Michael Miller
68bac59cab Hacky solution for https://gitlab.com/arctic-fox/spectator/-/issues/44
Don't use a proc stub, which doesn't support arguments.
2020-03-28 11:41:49 -06:00
Chris Watson
e53b1167b3 Make sure superclass isn't nil 2020-03-20 16:34:37 +00:00
Michael Miller
e343a97f37 Don't use a splat here 2020-03-07 17:05:52 -07:00
Michael Miller
cb9f5338fe Bump version to 0.9.11 2020-03-04 23:16:58 -07: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
d945a414f9 Bump version to 0.9.10 2020-03-03 16:23:53 -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
5543c07766 Bump version to 0.9.9 2020-02-22 22:59:42 -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
Michael Miller
f5f1361477 Bump version to 0.9.8
Fixed GitHub Issue https://github.com/icy-arctic-fox/spectator/issues/5 - Thanks @jinn999
2020-02-21 09:57:09 -07:00
Davide Paolo Tua
2bf6682816 Fix accidental deletion 2020-02-21 13:23:33 +01:00
Davide Paolo Tua
83ac420273 Add test for fix, fix test for range_matcher 2020-02-21 13:19:27 +01: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
5cb74ebe95 Bump version to 0.9.7 2020-02-16 19:36:09 -07:00
Michael Miller
dd48bf6f25 Fix subject not being memoized when using described_class 2020-02-16 19:34:48 -07:00
Michael Miller
2aba67edae Fix idiosyncrasies around class method stubs
The new method misbehaves here.
It always appeared as defined, even though it isn't explicitly defined 
in the class.
2020-02-14 18:14:32 -07:00
Michael Miller
7a8e570bea Fix typo with should_eventually 2020-02-10 17:50:35 -07:00
Michael Miller
63ff59688b Bump version to 0.9.6 2020-02-10 17:47:02 -07:00
Michael Miller
a7db9ff0bb Don't force previous_def on class methods 2020-02-10 17:46:36 -07:00
Michael Miller
d30e65ee2d Missing ? on method name check 2020-01-20 20:42:16 -07:00
Michael Miller
721425c3c8 Run deferred expectations after all hooks 2020-01-20 20:15:49 -07:00
Michael Miller
60f1c3091b Allow be matcher to be used on structs 2020-01-19 22:39:21 -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
Michael Miller
e60c287216 Fix a dumb with merge 2020-01-19 10:05:21 -07:00
Michael Miller
1825026af7 Bump version to 0.9.4 2020-01-19 09:53:20 -07:00
Michael Miller
64f6456935 Merge branch 'specs' 2020-01-19 09:52:41 -07:00
Michael Miller
272ebcd693 Fix subject with group describing a type
An explicit subject should be used when describing a type. This mimics 
RSpec.
2020-01-19 09:52:12 -07:00
Michael Miller
a2508d5f6b Fix negation case for respond_to matcher 2020-01-17 22:08:52 -07:00
Michael Miller
e8a437dc0a Bump version to 0.9.3 2020-01-17 14:53:04 +03:00
Michael Miller
f825a34771 Fix issue with implicit vs. explicit subject
Addresses the issue pointed out in !25

There was a recent change that set a subject to the first argument of 
`describe` and `context`. This prevented an explicitly defined subject 
from being accessible in nested groups.
2020-01-17 14:53:03 +03:00
Michael Miller
2b2fb5af3a Bump version to 0.9.3 2020-01-16 18:37:04 -07:00
Michael Miller
13a0b9e2d3 Fix issue with implicit vs. explicit subject
Addresses the issue pointed out in !25

There was a recent change that set a subject to the first argument of 
`describe` and `context`. This prevented an explicitly defined subject 
from being accessible in nested groups.
2020-01-16 18:36:40 -07:00