Commit graph

440 commits

Author SHA1 Message Date
Michael Miller
bc0a9c03c9
Remove runtime compilation tests
These may be readded later.
Right now they're failing because the GitHub issue 44 spec changes the behavior of Process.run.
The changes made by that spec shouldn't leak, but to fix correctly requires substantial changes.
These runtime tests provide little value right now and slow down testing.
2022-10-09 16:47:54 -06:00
Michael Miller
090c95b162
Ensure stubs defined with allow syntax are cleared 2022-10-09 15:48:00 -06:00
Michael Miller
2516803b0d
Add spec for GitHub issue 47
https://github.com/icy-arctic-fox/spectator/issues/47
2022-10-09 15:35:22 -06:00
Michael Miller
5c910e5a85
Clear stubs defined with expect().to receive() syntax after test finishes 2022-10-09 13:57:28 -06:00
Michael Miller
422b0efa59
Update test to account for fix in Crystal 1.6
Keyword arguments cannot be used as a short-hand for positional arguments (yet).
https://github.com/icy-arctic-fox/spectator/issues/44
2022-10-09 12:33:31 -06:00
Michael Miller
c1e1666449
Formatting 2022-10-08 14:05:53 -06:00
Michael Miller
4dfa5ccb6e
Prevent defining stubs on undefined methods in LazyDouble
In Crystal 1.6, a segfault would occur in the spec spec/spectator/mocks/lazy_double_spec.cr:238
I suspect this is a Crystal bug of some kind, but can't reduce it.
The methods produced by `method_missing` don't have a return type including Symbol.
Symbol is excluded from the union of return types (Int32 | String | Nil).
The program segfaults when calling a method on the actual value, which is a symbol.
It ultimately crashes when producing a failure message, which indicates the value it tested doesn't equal the expected value (a symbol of the same value).
Avoid this issue by preventing stubs on undefined/untyped methods.
2022-10-08 14:04:02 -06:00
Michael Miller
079272c9de
Add spec for custom matchers docs
Related: https://github.com/icy-arctic-fox/spectator/issues/46
2022-09-03 16:46:17 -06:00
Michael Miller
17a3ca3ac7
Fix https://gitlab.com/arctic-fox/spectator/-/issues/77 2022-08-07 14:58:09 -06:00
Michael Miller
18e9c1c35d
Workaround issue with Box.unbox causing segfault
Using Box.unbox on a nil value with a union type causes:

Invalid memory access (signal 11) at address 0x8

Related Crystal issue: https://github.com/crystal-lang/crystal/issues/11839
Fixes: https://gitlab.com/arctic-fox/spectator/-/issues/76
2022-07-18 19:47:34 -06:00
Michael Miller
95764140ee
Add spec for GitLab issue 51
https://gitlab.com/arctic-fox/spectator/-/issues/51
2022-07-14 22:01:33 -06:00
Michael Miller
7e09016e5c
Add count modifiers for have_received matcher 2022-07-14 20:46:52 -06:00
Michael Miller
e2e33e440b
Add link 2022-07-14 19:59:47 -06:00
Michael Miller
d14a2fa27e
Change "title" 2022-07-14 19:59:14 -06:00
Michael Miller
9c888fef3f
Add specs for mocks and stubs docs 2022-07-14 19:11:45 -06:00
Michael Miller
c0a32505ee
Address Ameba issue 2022-07-14 13:53:30 -06:00
Michael Miller
c228984956
Add specs for anonymous and null object doubles docs 2022-07-14 13:51:24 -06:00
Michael Miller
827b69483b
Disallow stubs for undefined methods in null double
Any method_missing invocation should return self.
2022-07-14 13:37:09 -06:00
Michael Miller
7dd77a2096
Add spec for doubles docs 2022-07-14 13:18:13 -06:00
Michael Miller
be973cdc4b
Add spec for GitHub issue 44
https://github.com/icy-arctic-fox/spectator/issues/44
2022-07-13 15:52:31 -06:00
Michael Miller
f1465c44d8
Fix Ameba issues 2022-07-13 13:42:44 -06:00
Michael Miller
aa9ca7a98e
Don't return nil for methods using NoReturn 2022-07-13 12:24:29 -06:00
Michael Miller
14d8c046f0
Workaround absolute path requirement for mock injection 2022-07-13 12:23:28 -06:00
Michael Miller
da3fbc9607
Add spec for GitHub issue 43
https://github.com/icy-arctic-fox/spectator/issues/43
2022-07-13 11:17:10 -06:00
Michael Miller
181a34a0b3
Display "None" when no methods are called 2022-07-13 10:53:57 -06:00
Michael Miller
e52f187eb7
Show new mock and double system in README 2022-07-12 23:22:47 -06:00
Michael Miller
754bfd6939
Intercept most exit calls and raise instead 2022-07-12 23:02:20 -06:00
Michael Miller
3c9c7f88be
Reenable test relying on doubles 2022-07-12 22:32:09 -06:00
Michael Miller
2e5f822e1d
Remove new from reserved keywords
This effectively allows stubs to be placed on the `new` method for types.
A strange issue arose when the keyword was allowed.
The compiler failed to resolve the Stub type from the Double initializer.
The error trace goes through null_double_spec.cr.
Running just that spec file confirms the issue is there, but running other individual files doesn't produce the error.
As a workaround, I've put the full path of Stub in the initializer.
2022-07-12 22:30:04 -06:00
Michael Miller
fe88eefa86
Add inject_mock to DSL 2022-07-12 22:12:48 -06:00
Michael Miller
193a476679
Update known issues to use new mock system 2022-07-12 21:50:45 -06:00
Michael Miller
24eec64d64
Check for leaks on class mocks and doubles 2022-07-12 20:09:18 -06:00
Michael Miller
6e57a1c44a
Allow method calls with unconstrained arguments
Workaround for the expect-receive DSL syntax to allow methods to be called without matching arguments.
2022-07-12 19:23:13 -06:00
Michael Miller
c91e288f61
Add initial support for exect-receive syntax 2022-07-12 19:11:44 -06:00
Michael Miller
3d7655a5d1
Add support for any_args in DSL 2022-07-12 19:05:55 -06:00
Michael Miller
4aaa8db5e2
Rename Arguments.empty to Arguments.none 2022-07-12 18:59:23 -06:00
Michael Miller
b137a8e742
Test matcher text 2022-07-12 18:04:51 -06:00
Michael Miller
d7ea969f55
Pretify stub and call output
Fix some tests.
2022-07-12 17:47:05 -06:00
Michael Miller
36cc035417
Add tests for ReceiveMatcher 2022-07-12 17:19:42 -06:00
Michael Miller
694e2e6259
Initial implementation of have_received 2022-07-11 20:25:15 -06:00
Michael Miller
011ca37b50
Reenable pending tests 2022-07-11 02:59:29 -06:00
Michael Miller
32a9bfd356
Add no_args 2022-07-10 18:51:58 -06:00
Michael Miller
ae8421c29e
Address Ameba issue 2022-07-10 17:59:49 -06:00
Michael Miller
29389f1dbf
Add indexer methods for captured arguments 2022-07-10 17:38:17 -06:00
Michael Miller
4aaed186c3
Add with stub modifier 2022-07-10 17:31:13 -06:00
Michael Miller
cd177dd2ae
Implement ProcStub 2022-07-10 11:54:51 -06:00
Michael Miller
4d5004ab4f
Add ExceptionStub 2022-07-09 22:12:24 -06:00
Michael Miller
f17cc73487
More multi value stub tests 2022-07-09 21:48:22 -06:00
Michael Miller
9c705bf888
Add MultiValueStub 2022-07-09 20:52:01 -06:00
Michael Miller
813983de4b
Implement and test DSL for class mocks and doubles 2022-07-07 19:09:18 -06:00