Michael Miller
e6584c9f04
Prevent comparing range arguments with non-compatible types in stubs
...
Addresses https://github.com/icy-arctic-fox/spectator/issues/48
2022-12-18 11:35:43 -07:00
Michael Miller
f55c60e01f
Fix README spec
...
Mocked types cannot be private.
Moved to a module to prevent polluting the global namespace.
2022-12-17 21:01:22 -07:00
Michael Miller
4b68b8e3de
Fix resolution issue when mocked types use custom types
...
GitLab issue 51 is affected.
https://gitlab.com/arctic-fox/spectator/-/issues/51
Private types cannot be referenced with mocks.
2022-12-17 20:56:16 -07:00
Michael Miller
c3e7edc700
Use absolute names of types in mocked type methods
...
Prevent possibly type name collisions.
This could happen if, for instance, Array or String was redefined in the scope of the mocked type.
2022-12-17 20:37:27 -07:00
Michael Miller
149c0e6e4b
Don't use case-matching for proc arguments
...
A proc on the left side of === calls itself passing in the right side.
This causes typing issues and is easier to avoid for now.
Procs arguments are compared with standard equality (==) instead of case-equality (===).
2022-12-17 19:19:33 -07:00
Michael Miller
9f54a9e542
Additional handling for passing blocks
2022-12-17 19:16:38 -07:00
Michael Miller
65a4b8e756
Populate previous_def/super with captured block args
...
The previous_def and super keywords do not propagate blocks.
See: https://github.com/crystal-lang/crystal/issues/10399
This works around the issue by populating arguments if the method uses a block.
2022-12-17 16:41:22 -07:00
Michael Miller
b52593dbde
Cleanup
2022-12-17 16:39:47 -07:00
Michael Miller
7e2ec4ee37
Fix 0.11.4 in changelog
2022-12-13 22:59:42 -07:00
Michael Miller
952e949307
Handle 'self' and some other variants in method return types
2022-12-13 22:48:21 -07:00
Michael Miller
293faccd5c
Support free variables in mocked types
2022-12-13 18:22:22 -07:00
Michael Miller
2985ef5919
Remove error handling around type resolution failure
...
This might not be necessary anymore.
2022-12-09 02:22:21 -07:00
Michael Miller
bd44b5562e
Possible fix for GitLab issue 80
...
Remove `is_a?` check on line 425.
Replace with alternate logic that achieves the same thing.
The `{{type}}` in `is_a?` was causing a compiler bug.
I'm unsure of the root cause, but this works around it.
2022-12-09 02:16:16 -07:00
Michael Miller
47a62ece78
Add reduced test code for GitLab issue 80
...
https://gitlab.com/arctic-fox/spectator/-/issues/80
Note: This test only triggers a compiler bug when the file is compiled by itself.
Compiling/running the entire spec suite *does not* cause the bug.
2022-12-08 17:14:09 -07:00
Michael Miller
7ffa63718b
Use original type in redefinition comment
2022-12-08 16:55:27 -07:00
Michael Miller
275b217c6c
Allow metadata to be stored as nil
2022-11-29 23:22:42 -07:00
Michael Miller
fbe877690d
Adjust call argument matching
...
Reenable test for https://github.com/icy-arctic-fox/spectator/issues/44 and https://github.com/icy-arctic-fox/spectator/issues/47
2022-11-29 22:31:22 -07:00
Michael Miller
a967dce241
Adjust double string representation
...
to_s and inspect (with variants) are no longer "original implementation."
2022-11-29 21:24:31 -07:00
Michael Miller
1f98bf9ff1
Update CHANGELOG
2022-11-29 20:32:45 -07:00
Michael Miller
5f499336ac
Remove individual spec runs from CI
2022-11-29 20:30:42 -07:00
Michael Miller
df10c8e75b
Prevent multiple redefinitions of the same method
2022-11-29 20:29:36 -07:00
Michael Miller
a585ef0996
Simplify string (inspect) representation
...
These types make heavy use of generics and combined types.
Instantiating string representation methods for all possibilities is unecesssary and slows down compilation.
2022-11-29 20:28:15 -07:00
Michael Miller
2d6c8844d4
Remove time
2022-11-29 03:34:26 -07:00
Michael Miller
321c15407d
Add utility to test specs individually
2022-11-29 03:14:24 -07:00
Michael Miller
c256ef763e
Bump version to 0.11.4
2022-11-27 22:27:52 -07:00
Michael Miller
8efd38fbdd
Split Arguments class by functionality
...
Code changes for https://github.com/icy-arctic-fox/spectator/issues/47 caused a drastic increase in compilation times.
This improves compilation times by splitting concerns for arguments.
In one case, arguments are used for matching.
In the other, arguments are captured for comparison.
The second case has been moved to a FormalArguments class.
Theoretically, this reduces the complexity and combinations the compiler might be iterating.
2022-11-27 22:26:19 -07:00
Michael Miller
015d36ea4c
Work around strange cast/type checking issue
...
For some reason, line 421 (the responds to call check) excluded the stub's call type.
Luckily this line doesn't seem to be necessary anymore.
Removed the unecessary quick check.
The tests from spec/spectator/mocks/double_spec:88-96 were failing when they're the only tests in the file.
The non-matching stub wouldn't raise.
Stepping through, attempting to access the value would segfault.
This is because it accessed a stub with String instead of its real Int32 type.
Removing the aforementioned check fixes this.
2022-11-27 19:43:03 -07:00
Michael Miller
318e4eba89
Use shorter string when stub is treated as a message
2022-11-04 22:55:12 -06:00
Michael Miller
e2cdc9e08e
Re-enable logger after catching exit
...
The logger is closed during at-exit hooks that get invoked by Kernel's exit method.
2022-11-04 22:10:59 -06:00
Michael Miller
60b5f151f1
Minor improvements to log output
2022-11-04 22:05:27 -06:00
Michael Miller
8b12262c62
Display <root> when to_s is called directly on the root group
2022-11-04 21:01:32 -06:00
Michael Miller
6e7d215f69
Add type annotations to to_s and inspect
2022-11-04 20:56:02 -06:00
Michael Miller
12eb2e9357
Avoid printing double contents from to_s
2022-11-04 20:35:43 -06:00
Michael Miller
1093571fbd
Add more info to stub.to_s
2022-11-04 20:34:52 -06:00
Michael Miller
c00d2fe4e6
Update changelog
2022-11-04 16:57:06 -06:00
Michael Miller
a6149b2671
Use before
instead of before_each
(same for after)
2022-11-04 16:56:03 -06:00
Michael Miller
4906dfae0d
Add short before/after hook name
2022-11-04 16:55:31 -06:00
Michael Miller
24fd7d1e91
Update Ameba
2022-10-28 18:14:53 -06:00
Michael Miller
baff1de1d8
Update changelog
...
Implemented https://github.com/icy-arctic-fox/spectator/issues/46
2022-10-23 22:37:41 -06:00
Michael Miller
4dacaab6dc
Fix missing keyword arguments after splat
2022-10-23 22:36:20 -06:00
Michael Miller
a31ffe3fa3
Fix argument capture
...
Fix issue added by 8959d28b38
2022-10-23 22:04:28 -06:00
Michael Miller
c77da67341
Hide splat label in certain situations
...
Undefined double methods were reporting splat arguments, which is technically correct.
But for output in these cases, it makes more sense to show the exact calling args.
2022-10-23 21:56:37 -06:00
Michael Miller
8959d28b38
Cleaner call capture and logging for missing methods in doubles
2022-10-23 21:54:12 -06:00
Michael Miller
39e4f8e37a
Use build
instead of capture
for none
2022-10-23 21:53:24 -06:00
Michael Miller
e2130d12d3
Implement arguments case equality
...
Implements https://github.com/icy-arctic-fox/spectator/issues/47
Some specs are failing and need to be resolved before the new feature is considered done.
2022-10-23 20:42:08 -06:00
Michael Miller
0177a678f9
Avoid shadowing variable
2022-10-23 20:40:56 -06:00
Michael Miller
a728a037d4
Rename attributes
2022-10-23 15:37:55 -06:00
Michael Miller
163f94287e
Fix Arguments to_s
2022-10-23 15:27:39 -06:00
Michael Miller
e38e3ecc32
Initial rework of arguments to support named positionals
2022-10-23 15:22:50 -06:00
Michael Miller
70d0009db5
Disable issue 47 test for now
2022-10-09 18:23:39 -06:00