Commit graph

1269 commits

Author SHA1 Message Date
Michael Miller
a7ac170153
Remove unused methods 2021-01-16 17:07:07 -07:00
Michael Miller
57c9333c1f
Match hook ordering of RSpec
Addresses https://github.com/icy-arctic-fox/spectator/issues/12
2021-01-16 17:04:42 -07:00
Michael Miller
cd519178ac
Remove whitespace 2021-01-16 16:52:41 -07:00
Michael Miller
13061cfb38
Workaround context scope not used in method delegation 2021-01-16 16:52:16 -07:00
Michael Miller
153933b044
Add DSL and code to create around_each hooks 2021-01-16 16:47:40 -07:00
Michael Miller
36c2a5d368
Logic for around_each hooks 2021-01-16 16:28:33 -07:00
Michael Miller
5ea83f51bb
Cache implicit subject 2021-01-16 12:10:52 -07:00
Michael Miller
d738494fdf
Cleanup example name output 2021-01-16 11:49:43 -07:00
Michael Miller
3527507639
Remove debug 2021-01-16 11:13:20 -07:00
Michael Miller
3ec267abbb
Fix reporting for should syntax 2021-01-16 11:12:41 -07:00
Michael Miller
97923d6bcd
Handle nil labels 2021-01-16 11:11:42 -07:00
Michael Miller
0992bad7eb
Get harness compiling again 2021-01-16 11:03:05 -07:00
Michael Miller
175ce8f293
Include matchers DSL 2021-01-16 11:02:49 -07:00
Michael Miller
4500ebcddc
Update old references to Value and Block 2021-01-16 11:02:29 -07:00
Michael Miller
58e7981b0c
Fix type warning 2021-01-16 11:00:54 -07:00
Michael Miller
e09f5c960a
Change Assertions to Expectations
Start expectation rework.
2021-01-16 10:22:23 -07:00
Michael Miller
50d1f69230
Don't cache the block return value
Let the matcher handle this if it needs to.
2021-01-15 23:15:07 -07:00
Michael Miller
a74957204b
Introduce abstract generic value type
Sits between AbstractExpression and Value and Block.
2021-01-15 22:32:02 -07:00
Michael Miller
4ed8c4a573
Implement remaining assertion macros
Move "should" methods.
2021-01-10 11:09:28 -07:00
Michael Miller
096c31d7f5
Initial work on assertions 2021-01-09 19:50:32 -07:00
Michael Miller
122395837f
Implement remaining value DSL macros 2021-01-09 17:36:50 -07:00
Michael Miller
391325d431
Initial work on values DSL 2021-01-09 17:01:33 -07:00
Michael Miller
4108a6602d
Simplify get method 2021-01-09 16:57:23 -07:00
Michael Miller
3e4b77da77
Create value wrapper 2021-01-09 16:51:37 -07:00
Michael Miller
aa4c257ade
Change Wrapper to a nested type for Lazy 2021-01-09 14:35:58 -07:00
Michael Miller
5cac4aa5a1
Add lazy utility 2021-01-09 14:19:40 -07:00
Michael Miller
fb0423ed02
Move top-level types into spectator/ sub-directory 2021-01-09 13:56:32 -07:00
Michael Miller
7451769a29
Pass current example as block argument 2021-01-09 13:34:15 -07:00
Michael Miller
009ca4776a
Cleanup new DSL macros 2021-01-09 13:17:42 -07:00
Michael Miller
fbd9713d52
Remove unused and deprecated types 2021-01-09 12:56:35 -07:00
Michael Miller
2e8036d230
Move instance variable 2021-01-09 12:48:53 -07:00
Michael Miller
65dba9f317
Don't need delegates stored in hooks
Use proc instead. The context can be retrieved from the example 
instance.
2021-01-09 12:04:27 -07:00
Michael Miller
c4289b82da
Better trace message for initial hook processing 2021-01-09 11:33:29 -07:00
Michael Miller
df096d91aa
Capture source info for hooks 2021-01-09 11:30:00 -07:00
Michael Miller
def66acc15
Trace hook invocation 2021-01-09 11:14:27 -07:00
Michael Miller
e5cbc8d631
Promote hooks to fully-fledge types
Hook types include a source, label, and context delegate.
2021-01-09 11:06:59 -07:00
Michael Miller
cf422eca02
Add null constructor 2021-01-09 10:56:33 -07:00
Michael Miller
7d0ba752e9
Change ExampleNode to SpecNode 2021-01-09 10:39:04 -07:00
Michael Miller
0ee708281f
Cleanup hook macros 2021-01-09 10:27:54 -07:00
Michael Miller
950f6b3424
Add block expression 2021-01-09 00:13:22 -07:00
Michael Miller
fbe9f22e02
Start rework on capturing expressions 2021-01-09 00:12:28 -07:00
Michael Miller
c2d5bdd5d1
Bump version to 0.9.31 2021-01-08 15:32:42 -07:00
Michael Miller
2ecd4ded6d
Fix line numbers being wrong with macro expansion
Addresses https://github.com/icy-arctic-fox/spectator/issues/18
2021-01-08 15:32:15 -07:00
Michael Miller
b697511761
Slight doc improvement 2020-12-31 18:45:56 -07:00
Michael Miller
4c6b6e6436
Merge branch 'master' into example-api 2020-12-23 14:52:53 -07:00
Michael Miller
891cd4bbf7
Change includes to has 2020-12-23 14:39:24 -07:00
Michael Miller
20caed9262
Add contain matcher improvements to have matcher 2020-12-23 14:38:30 -07:00
Michael Miller
edf8ae36df
Fix negated contain case 2020-12-23 14:19:40 -07:00
Michael Miller
a2ef0fa46a
Consistent comments 2020-12-23 14:17:05 -07:00
Michael Miller
de1af7178c
Fix string usage with contain matcher 2020-12-23 14:11:50 -07:00
Michael Miller
f6fc36f60a
Bump version to 0.9.30 2020-12-23 13:56:19 -07:00
Michael Miller
875ca587f3
Show missing values in error output 2020-12-23 13:44:12 -07:00
Michael Miller
f465df48d4
Fix copy/paste fail docs 2020-12-23 13:18:36 -07:00
Michael Miller
5ec7e25d57
Remove splat 2020-12-23 12:54:44 -07:00
Michael Miller
c720147974
Bump version to 0.9.29 2020-12-23 12:39:05 -07:00
Michael Miller
0540f94823
Add contain_elements and have_elements variants 2020-12-23 12:38:37 -07:00
Michael Miller
4533cffce7
Initial code to run hooks 2020-11-15 11:25:07 -07:00
Michael Miller
2f4cbd9c33
Specify contents of event trigger method with macro block
Implement calling parent group hooks.
2020-11-15 11:22:52 -07:00
Michael Miller
0279606a1c
Placeholder code for after hooks 2020-11-15 11:22:06 -07:00
Michael Miller
19d57dd828
Add call_once variant of events 2020-11-14 17:02:24 -07:00
Michael Miller
b4e74444d1
Some work on hooks in DSL 2020-11-08 22:21:52 -07:00
Michael Miller
7d54884196
Don't pass context, get/cast from example instance 2020-11-08 16:53:54 -07:00
Michael Miller
b8dc83286c
Upcast context to reduce method instances generated by compiler 2020-11-08 16:52:08 -07:00
Michael Miller
f433405ece
Scratch work
Trying to implement hooks. Ran into a problem with contexts.
2020-11-08 15:06:49 -07:00
Michael Miller
688c08b087
Initial work on hooks rework 2020-11-07 22:04:37 -07:00
Michael Miller
1f319a70ce
Add docs 2020-11-07 22:04:21 -07:00
Michael Miller
4230ec70a0
Move test handling code to Harness 2020-11-07 20:56:30 -07:00
Michael Miller
dba2e23750
Typo 2020-11-07 15:24:22 -07:00
Michael Miller
f7fe177685
Minor adjustments 2020-11-07 15:01:08 -07:00
Michael Miller
8ae6ef478b
Dynamic examples with null context 2020-11-07 14:43:59 -07:00
Michael Miller
40dd85eb38
Bit of naming cleanup 2020-11-07 13:47:39 -07:00
Michael Miller
347e1a84e5
Dedicated example runner type 2020-11-07 13:47:31 -07:00
Michael Miller
b8901d485d
Merge branch 'master' into example-api 2020-11-07 11:18:47 -07:00
Michael Miller
27754c9e03
Bump version to 0.9.28 2020-11-07 11:04:34 -07:00
Michael Miller
b91103b40a
Handle case where block is provided with return type 2020-11-07 11:04:03 -07:00
Michael Miller
8966c0976b
Allow manual specification of return type 2020-11-07 10:56:33 -07:00
Michael Miller
e8afe5070b
Address Ameba issues 2020-10-19 20:34:18 -06:00
Michael Miller
a0e6d5c4e8
Re-introduce config options 2020-10-19 20:19:25 -06:00
Michael Miller
c36e006c85
Move top-level DSL to its own module 2020-10-17 22:57:27 -06:00
Michael Miller
87c8914187
Typo 2020-10-17 22:12:47 -06:00
Michael Miller
e4f3d334ed
Consistent naming of random seed 2020-10-17 22:12:02 -06:00
Michael Miller
225e1a52ba
Clean up example randomization 2020-10-17 22:11:04 -06:00
Michael Miller
b2bf980685
Some config cleanup 2020-10-17 21:39:41 -06:00
Michael Miller
79499c5d2e
Add config to spec builder 2020-10-17 17:40:38 -06:00
Michael Miller
4462f27316
Rework result types 2020-10-17 14:56:31 -06:00
Michael Miller
788b12a8bc
Fix example methods overriding previously defined methods 2020-10-17 12:12:04 -06:00
Michael Miller
27875631d3
Mostly implement inspect method 2020-10-17 11:51:16 -06:00
Michael Miller
9c1fd6fb5a
Use standard log utility 2020-10-17 11:46:21 -06:00
Michael Miller
e6d78345c4
Rename debug macro 2020-10-17 11:25:46 -06:00
Michael Miller
4974054de7
Some code to run a spec 2020-10-17 11:23:51 -06:00
Michael Miller
2cdee0716f
Bump version to 0.9.27 2020-10-01 18:25:29 -06:00
Michael Miller
9ac6121201
New stub syntax to support operator methods
Works like:
  stub :[], index : Int32 { 42 }

Addresses https://github.com/icy-arctic-fox/spectator/issues/14
2020-10-01 18:23:28 -06:00
Michael Miller
f71a8ac6a3
Merge branch 'master' into example-api 2020-09-27 12:46:38 -06:00
Michael Miller
93fa6f6e72
Bump version to 0.9.26 2020-09-27 10:35:28 -06:00
Michael Miller
e68697a212
Fix stubbed yielding method calling original instead of stub 2020-09-27 10:30:51 -06:00
Michael Miller
0970f02465
Yield instead of forwarding block
Forwarding the block like this captures it, which prevents yield from 
being used.
Addresses https://gitlab.com/arctic-fox/spectator/-/issues/54
2020-09-27 10:14:30 -06:00
Michael Miller
ec6018bed4
Start reactivating runner 2020-09-27 09:10:27 -06:00
Michael Miller
579fcacfde
Move spec builder 2020-09-26 22:51:58 -06:00
Michael Miller
d663e82c36
Improve internal error handling output 2020-09-26 22:25:53 -06:00
Michael Miller
543df88d39
Forward build method 2020-09-26 22:25:04 -06:00
Michael Miller
4567162459
Prevent defining an example or group in a test 2020-09-26 19:23:57 -06:00
Michael Miller
99a9d7960a
Formatting 2020-09-26 19:23:16 -06:00
Michael Miller
60795a371d
Reorganize 2020-09-26 19:15:34 -06:00
Michael Miller
b8ba38152e
Cleanup example description handling 2020-09-26 19:14:08 -06:00
Michael Miller
1d359efcb0
Improve source line detection 2020-09-26 19:12:42 -06:00
Michael Miller
1ad41ac016
Cleanup group description handling 2020-09-26 19:11:52 -06:00
Michael Miller
cccfa8ea1d
Formalize Spectator debug 2020-09-26 18:23:48 -06:00
Michael Miller
f1ad476ae5
Trick to use one version string from shard.yml 2020-09-26 18:16:21 -06:00
Michael Miller
f4a05502f9
Example names can't be a symbol 2020-09-26 18:14:59 -06:00
Michael Miller
96a7989815
Remove unreferenced code 2020-09-26 18:14:41 -06:00
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