Commit graph

1539 commits

Author SHA1 Message Date
Michael Miller
7f8d9d5ef3 Add comparison tests from RSpec docs 2020-01-02 20:00:51 -07:00
Michael Miller
71740113d5 Allow subject for non-class types 2020-01-02 19:30:46 -07:00
Michael Miller
88ed415191 Bubble up matcher description
The last run matcher's description is used if one wasn't provided by the 
user.
Only applies to examples that actually run and have expectations.
2020-01-02 19:19:55 -07:00
Michael Miller
d64ecc4192 Store matcher description in MatchData 2020-01-02 19:16:33 -07:00
Michael Miller
00fe913d77 Add predicate method to check for description 2020-01-02 18:43:30 -07:00
Michael Miller
ff2cbcd4c7 Allow test description to be blank
Currently defaults to the example's source.
2020-01-02 18:40:25 -07:00
Michael Miller
9f91e3a266 Add tests for equality matcher 2020-01-01 21:58:37 -07:00
Michael Miller
681f978df0 Add Guardian config to automatically run specs 2020-01-01 21:50:31 -07:00
Michael Miller
0a6493964d Allow auto-run of Spectator
Needed to test Spectator with itself.
2020-01-01 21:50:08 -07:00
Michael Miller
061028782b Workaround for what seems to be a Crystal macro bug
The syntax:
stub instance.==(other) { true }
effectively becomes:
stub instance.==(other { true })
2020-01-01 21:48:58 -07:00
Michael Miller
a9ac48e12c Merge branch 'mocks-and-doubles' 2019-12-13 20:26:29 -07:00
Michael Miller
612222ace8 Update version to 0.9.1 2019-12-13 20:26:22 -07:00
Michael Miller
8ccc08b472 Fix reflection (verify double) on self arg type
There is still an issue with using _ for a placeholder.
2019-12-13 20:25:18 -07:00
Michael Miller
16625cf495 Registry#expect takes a stub 2019-12-13 19:56:43 -07:00
Michael Miller
a38625f8a7 Remove GenericMethodCall
This type isn't needed. MethodCall is suitable after moving arguments to
it.
2019-12-13 19:54:06 -07:00
Michael Miller
a6aa00eb38 Fix double default stub with type 2019-12-13 19:17:08 -07:00
Michael Miller
d0c06096f5 Merge branch 'release/0.9' 2019-12-08 16:24:12 -07:00
Michael Miller
4684840d2f Update README 2019-12-08 16:23:43 -07:00
Mike Miller
fb3da7497f Merge branch 'release/0.9' into 'master'
Version 0.9.0

See merge request arctic-fox/spectator!17
2019-12-08 23:14:27 +00:00
Michael Miller
03c6a08146 Merge remote-tracking branch 'origin/master' into release/0.9 2019-12-08 16:13:33 -07:00
Mike Miller
2cb34f70fd Merge branch 'mocks-and-doubles' into 'release/0.9'
Mocks and doubles

See merge request arctic-fox/spectator!16
2019-12-08 22:58:52 +00:00
Michael Miller
4c9bbbe07b Formatting 2019-12-08 15:11:23 -07:00
Michael Miller
0ae5cdc9ae Remove debug 2019-12-08 15:11:08 -07:00
Michael Miller
1a30a56f2a Better stringified call 2019-12-08 15:10:49 -07:00
Michael Miller
91696d490f Check if underlying type responds to method 2019-12-08 15:08:13 -07:00
Michael Miller
067c789019 Initial work on type reflection for verifying doubles 2019-12-08 14:52:54 -07:00
Michael Miller
074aff531c Add "anything" which always returns true when compared against 2019-12-08 14:52:28 -07:00
Michael Miller
07ce835724 VerifyingDouble should be abstract 2019-12-08 14:51:48 -07:00
Michael Miller
8b0f509689 Detect when to use a verifying double 2019-12-08 11:37:08 -07:00
Michael Miller
8197a82ace Expect stubs not method names
Needed for argument syntax:
`expect(dbl).to receive(:foo).with(:bar)`
2019-11-29 09:25:58 -07:00
Michael Miller
c710961be1 Fix returned type inferred to NoReturn 2019-11-29 08:53:36 -07:00
Michael Miller
d6c1169bc3 Fix dumb syntax 2019-11-20 20:40:53 -07:00
Michael Miller
5d84536e1e Implement and_call_original 2019-11-20 19:17:51 -07:00
Michael Miller
f8563e86c7 Pass along original block 2019-11-20 16:29:06 -07:00
Michael Miller
2dee50f19e Pass original (and type constraint) to stub via block 2019-11-20 15:43:45 -07:00
Michael Miller
51a47fec98 Remove unused RT parameter 2019-11-20 15:05:04 -07:00
Michael Miller
27acf7bced Allow receive block syntax 2019-11-19 17:28:00 -07:00
Michael Miller
b062472d98 Revert "Initial support for and_yield"
This reverts commit e49bd0d57a.

Removing support for stubbed yield.
Attempting to yield with different a different arity or argument types causes compilation errors.
I don't see any easy fix for this.
I would rather have no yield support than broken support.
2019-11-17 13:30:09 -07:00
Michael Miller
e49bd0d57a Initial support for and_yield 2019-11-17 13:12:39 -07:00
Michael Miller
b896a7f1d5 Implement stub that raises 2019-11-17 12:53:18 -07:00
Michael Miller
6e287f864b Implement returning multiple values 2019-11-17 12:26:02 -07:00
Michael Miller
1a3f663b70 Name is optional for doubles 2019-11-17 10:47:51 -07:00
Michael Miller
a63d3d05a5 Negation for receive matchers 2019-11-17 10:32:37 -07:00
Michael Miller
5da231a5e8 Check expectations for anonymous double 2019-11-17 10:14:03 -07:00
Michael Miller
45fe6217b4 Missing args 2019-11-17 09:42:19 -07:00
Michael Miller
ac9b3ad1fe Implement expect_any_instance_of 2019-11-16 21:27:18 -07:00
Michael Miller
a15e2a97b1 Allow deferred expectation of multiple stubs 2019-11-16 15:24:23 -07:00
Michael Miller
a8e0f46645 Revert "Coerce operations in match? to booleans"
This reverts commit 76c21d447a.

Should no longer be needed since mocks and doubles should indirectly leak into StandardMatcher types.
2019-11-16 15:15:53 -07:00
Michael Miller
d9d30c57d0 Merge ReceiveArgumentsMatcher and ReceiveMatcher
Finally found the issue causing other matchers derived from
StandardMatcher to be "leaked" doubles and mocks indirectly.
The if-condition in ExpectationPartial#to and #to_not caused the matcher
to be given the StandardMatcher type instead of a union type.
This lead to really strange compilation errors and wasted a lot of
hours.
2019-11-16 15:14:38 -07:00
Michael Miller
f0bfd8b6d4 Switch to run-time error for unsupported negation 2019-11-16 13:18:09 -07:00