Michael Miller
841efc236d
Fix flipped append/prepend of "after" hooks
2021-08-08 10:27:34 -06:00
Michael Miller
b9f0a31a4a
Overhaul hooks
...
Mostly cleanup and make managing hooks simpler, hopefully.
Tests indicate this configuration matches hook execution order of RSpec.
2021-08-07 21:45:49 -06:00
Michael Miller
10b652f4b5
Remove unique/temp names
2021-07-31 19:11:51 -06:00
Michael Miller
3dc3b88dbe
Add "after" hooks in reverse order to match RSpec
2021-07-31 15:48:54 -06:00
Michael Miller
edcb5118e6
Show pending count only if there are pending examples
2021-07-31 15:02:21 -06:00
Michael Miller
abe78410c4
Formatting
2021-07-31 14:18:59 -06:00
Michael Miller
868aa1d00a
Support custom handling of hooks
2021-07-31 14:16:39 -06:00
Michael Miller
f53ffabf6b
Support label for aggregate_failures block
2021-07-31 12:04:43 -06:00
Michael Miller
4c125d98d4
Implement aggregate_failures
2021-07-31 11:56:53 -06:00
Michael Miller
9a97596b84
Allow named arguments in `provided` block
2021-07-31 10:15:16 -06:00
Michael Miller
ef1832721c
Remove unecessary branch
2021-07-20 18:29:26 -06:00
Michael Miller
e8413db33f
Support custom messages for failed expectations
...
Fixes https://gitlab.com/arctic-fox/spectator/-/issues/28
2021-07-17 17:42:25 -06:00
Michael Miller
0c4379c731
Formatting
2021-07-17 16:55:43 -06:00
Michael Miller
e60cc2a447
Phrasing
2021-07-17 16:41:49 -06:00
Michael Miller
eda4328a92
Blank line after stack trace
2021-07-17 16:35:35 -06:00
Michael Miller
52a0ae938a
Consistency with location and location?
2021-07-17 16:34:15 -06:00
Michael Miller
e316dd8a11
Fix missing example location in output
2021-07-17 16:27:38 -06:00
Michael Miller
6c6dff363b
Track source location of pending result
2021-07-17 16:25:32 -06:00
Michael Miller
7cb1545e83
Don't use failure location in failed example block output
...
This is problematic, since the failure could have ocurred outside the
example block (in a method call).
The comment line under the failure details will still point to the
result location, if it's available.
2021-07-17 16:15:11 -06:00
Michael Miller
81f1966417
Use location instead of source
2021-07-17 16:12:10 -06:00
Michael Miller
7e2b267e93
Use failure location in output if available
...
Fixes https://gitlab.com/arctic-fox/spectator/-/issues/57
2021-07-17 16:04:19 -06:00
Michael Miller
f75991f34c
Formatting
2021-07-17 15:21:15 -06:00
Michael Miller
937b084f66
Support defining hooks in configuration block
2021-07-17 15:20:58 -06:00
Michael Miller
009266c8c2
Fix naming of hook methods when using a block
2021-07-17 14:32:55 -06:00
Michael Miller
a810eef16c
Add `before_suite` and `after_suite`
2021-07-17 14:19:16 -06:00
Michael Miller
af13a89257
Pass along fallback reason
2021-07-17 14:04:17 -06:00
Michael Miller
1b53607f8e
Cleanup and add docs
2021-07-17 14:01:27 -06:00
Michael Miller
571bc7d8a5
Reuse iterative example group macro code
...
Add support for x prefix to skip sample and random_sample groups.
2021-07-17 13:25:38 -06:00
Michael Miller
e506c6b981
Implement random_sample
2021-07-17 13:05:03 -06:00
Michael Miller
9d72d26630
Handle sample count
2021-07-17 12:49:11 -06:00
Michael Miller
76a23131cb
More checks for missing block in DSL
...
Improved some error messages.
2021-07-17 12:36:21 -06:00
Michael Miller
640857bef2
Pretty up iterative group names
2021-07-17 12:15:41 -06:00
Michael Miller
d8e9d3128a
Fetch iteration item from group
2021-07-17 12:07:04 -06:00
Michael Miller
c79cb62a61
Quick implementation of iterative group builder
2021-07-17 12:06:53 -06:00
Michael Miller
c24c2cb5e1
Quick implementation of node builders
2021-07-17 11:10:44 -06:00
Michael Miller
c7a90b3e64
Shorten names and cleanup
2021-07-17 10:47:16 -06:00
Michael Miller
6c55301d0b
Merge remote-tracking branch 'origin/master' into release/0.10
2021-07-11 00:16:25 -06:00
Michael Miller
01672fc073
Bump version to 0.9.40
2021-07-10 23:16:05 -06:00
Michael Miller
4d030fb85a
Fix no_args being passed incorrectly
2021-07-10 22:43:54 -06:00
Michael Miller
d9bb8e33fe
Fix finding stubs on types (static methods)
2021-07-10 22:41:10 -06:00
Michael Miller
23fd075d51
Add stub when using `expect().to receive()`
...
This appears to match RSpec's behavior.
2021-07-10 20:28:51 -06:00
Michael Miller
384fb3093f
Allow stubs returning nil to be used on NoReturn calls
2021-07-10 20:19:10 -06:00
Michael Miller
e47ae613a5
Check for and allow expected exits
2021-07-10 19:27:01 -06:00
Michael Miller
35cb0b527e
Use ExampleFailed instead of ExpectationFailed
2021-07-10 18:15:01 -06:00
Michael Miller
5f61a24656
Provide default stub for Process.exit
...
Prevent terminating the process from within a test.
2021-07-10 14:18:07 -06:00
Michael Miller
294bd61a25
Don't force top-level namespace
2021-07-10 14:17:14 -06:00
Michael Miller
b07e13aeb4
Remove custom handling of NoReturn
2021-07-10 13:57:23 -06:00
Michael Miller
a395e26bae
Revert "Fix methods not being stubbed with `expect().to receive` syntax"
...
This reverts commit 1c865d1f4b
.
2021-07-10 13:21:21 -06:00
Michael Miller
06f9f380c9
Workaround for stubbing NoReturn method with Nil
...
Fixes spec/issues/github_issue_29_spec.cr:15
2021-07-10 12:54:09 -06:00
Michael Miller
aa12cdf17c
Introduce non-expectation error ExampleFailed
...
Used by fail method.
Still todo: Output from failed example is missing because there are no
expectations.
2021-07-10 03:32:55 -06:00
Michael Miller
ccedcdac42
Use getter! macro
2021-07-10 03:31:22 -06:00
Michael Miller
82f26dbb91
Don't return nil for NoReturn stubs
...
Raise instead, which prevents making the method's return type nilable.
2021-07-08 11:36:07 -06:00
Michael Miller
aee5897922
Fix comma placement
2021-07-06 23:32:51 -06:00
Michael Miller
7081c168a5
Missing comma
2021-07-05 22:36:37 -06:00
Michael Miller
3e4079d408
Remove Spec namespace
2021-07-05 11:49:16 -06:00
Michael Miller
6a01ab3531
Merge master into release/0.10
2021-07-05 11:32:45 -06:00
Michael Miller
78de2be994
Bump version to 0.9.39
2021-07-02 21:59:16 -06:00
Michael Miller
92dbfc2a8e
Avoid calling NoReturn methods
2021-07-02 21:52:56 -06:00
Michael Miller
1c865d1f4b
Fix methods not being stubbed with `expect().to receive` syntax
2021-07-02 21:45:16 -06:00
Michael Miller
83ab5f56f0
Use previous_def if method was defined in class
2021-07-02 21:01:41 -06:00
Michael Miller
a0537484f4
Allow creation of doubles without a definition
...
Utilizes anonymous doubles to implement this.
Fixes https://github.com/icy-arctic-fox/spectator/issues/30
2021-07-02 19:18:14 -06:00
Michael Miller
d4e2954725
Remove Nop checks
2021-07-02 18:56:24 -06:00
Michael Miller
e3f6fb3c7c
Add no_args support for stubs
...
Fixes https://github.com/icy-arctic-fox/spectator/issues/28
2021-07-02 18:43:39 -06:00
Michael Miller
9b01771c67
Fix missing setup log messages
2021-06-19 12:05:45 -06:00
Michael Miller
989f53c6d6
Initial code for sample groups
2021-06-19 11:57:56 -06:00
Michael Miller
44ade24fb7
Generate context one or more times
...
This is necessary for iterative (sample) groups so they don't share a
context.
2021-06-19 11:33:26 -06:00
Michael Miller
4b8d28c916
Wording on compiler error for block args
2021-06-19 10:54:31 -06:00
Michael Miller
1f91836de1
Use block to create examples
...
Seems that nodes can't be duped/cloned easily.
2021-06-13 14:45:01 -06:00
Michael Miller
4ff27defff
Initial code for iterative (sample) groups
2021-06-13 13:16:31 -06:00
Michael Miller
e51ad6d504
Check if `provided` and `given` are used in a method
2021-06-12 17:06:43 -06:00
Michael Miller
04d6c70f59
Cleaner distinction between metadata and tags
2021-06-12 16:45:45 -06:00
Michael Miller
704c28e822
Reimplement `given` as `provided` and deprecate
...
The behavior is slightly different now.
Nested example blocks aren't allowed in `provided`.
The block produces one example, not multiple.
2021-06-12 16:23:38 -06:00
Michael Miller
71a5c39f6c
Use skip instead of pending tag
...
Specify default reason for skipping groups.
2021-06-12 12:14:19 -06:00
Michael Miller
02a4b2946e
Display failed expectations and error if an example had both
2021-06-12 12:10:44 -06:00
Michael Miller
621ddb466f
Support output of multiple failed expectations
2021-06-12 11:59:57 -06:00
Michael Miller
88f0c23a3e
Add support for sub-index in result blocks
2021-06-12 11:40:21 -06:00
Michael Miller
dcdb87e31a
Output match data to XML
2021-06-12 11:24:21 -06:00
Michael Miller
ba3a03736e
Show match data in failure block
2021-06-12 11:08:46 -06:00
Michael Miller
a5ed5d0fb1
Pass exception failure message to error
2021-06-12 10:33:28 -06:00
Michael Miller
2407c43132
Only show "Not yet implemented" for missing test block
2021-06-12 09:53:42 -06:00
Michael Miller
bfbeaf7454
Default reason for missing example block "Not yet implemented"
2021-06-11 21:16:46 -06:00
Michael Miller
6f4cc12dfd
Mark example pending if block is omitted
2021-06-11 21:03:46 -06:00
Michael Miller
117ed90185
Fix DSL usage of tags
...
Ensure parent tags don't get modified by duplicating the hash.
Force tag value to string.
2021-06-11 20:22:08 -06:00
Michael Miller
a061bd2044
Check pending, skip, and reason tags for reason
2021-06-11 19:29:29 -06:00
Michael Miller
12cba23fa3
Treat skip tag as pending
2021-06-11 19:03:16 -06:00
Michael Miller
14d45756e9
Consolidate default pending reason
2021-06-11 18:59:10 -06:00
Michael Miller
4f2df78c34
Deprecate current behavior of pending blocks
2021-06-11 18:55:56 -06:00
Michael Miller
b43b09f46d
Change order of pending result parameters
2021-06-11 18:31:41 -06:00
Michael Miller
3b1db7b772
Pass along pending tag value if available
2021-06-11 18:30:12 -06:00
Michael Miller
4a9ec3df4a
Store tags with an optional string value
2021-06-11 18:26:55 -06:00
Michael Miller
d9088b39ca
Add skip message when using xit (and variants)
2021-06-11 18:11:46 -06:00
Michael Miller
5a2a71ffe8
Pass and output along reason for pending/skip result
2021-06-09 22:15:15 -06:00
Michael Miller
8d73434e0b
Add ability to mark example skipped/pending mid-test
2021-06-09 21:57:17 -06:00
Michael Miller
ab6487cbfa
Merge branch 'release/0.10' into pending
2021-06-05 22:44:54 -06:00
Michael Miller
b9d77321b3
Fix premature call of after_all hook
2021-06-05 22:44:34 -06:00
Michael Miller
a08d5202fe
Implement pending examples as lighweight examples
...
Drop test code block if a pending, skip, or x-prefix macro is used.
2021-06-05 12:51:46 -06:00
Michael Miller
15c5b0991d
Fix doc
2021-06-02 23:54:38 -06:00
Michael Miller
12f06abf11
Move profile JSON formatting into Profile class
2021-06-02 23:51:53 -06:00
Michael Miller
bd34b87e22
Simplify JSON formatter by reusing Example's to_json
2021-06-02 23:44:36 -06:00
Michael Miller
8536fcf58c
Fix full_description being an object
2021-06-02 23:41:23 -06:00