Commit graph

1399 commits

Author SHA1 Message Date
Michael Miller
36f9f2b434
Return true from run method if successful 2021-05-16 20:23:16 -06:00
Michael Miller
ebf04b360e
Add profiling info 2021-05-16 20:21:04 -06:00
Michael Miller
4bb4c2f16e
Dump profile before summary 2021-05-16 19:52:53 -06:00
Michael Miller
aa13b077f3
No need to type restrict io method 2021-05-16 19:47:07 -06:00
Michael Miller
1e3e0daa04
Place error count in parens next to failures 2021-05-16 19:42:15 -06:00
Michael Miller
aee171656a
Fix '<anonymous>' showing up for root group 2021-05-16 19:37:45 -06:00
Michael Miller
84ac41967b
Formatting 2021-05-16 19:29:20 -06:00
Michael Miller
cc09cb1b77
Cleanup and consolidate common code for result blocks 2021-05-16 19:28:59 -06:00
Michael Miller
f81c498aef
Add error block component 2021-05-16 17:14:09 -06:00
Michael Miller
ed3ad662d2
Move failure command list to its own component 2021-05-16 17:13:06 -06:00
Michael Miller
2316377c6e
Rename ExampleFilterCommand to ExampleCommand 2021-05-16 17:08:15 -06:00
Michael Miller
031e892dad
Rename SummaryBlock to Stats 2021-05-16 16:56:19 -06:00
Michael Miller
3ecb04e293
Initial work on summary output 2021-05-16 15:03:37 -06:00
Michael Miller
ee294a3ec2
Use Array instead of Enumerable 2021-05-16 13:22:25 -06:00
Michael Miller
0ed684afbc
Integrate report and summary events 2021-05-16 13:20:02 -06:00
Michael Miller
ceb368a7f4
Overhaul Report 2021-05-16 13:19:04 -06:00
Michael Miller
fb436d2ec4
Define a pending result as neither passing nor failing 2021-05-16 12:31:01 -06:00
Michael Miller
832ffbf403
Split to make it obvious run is called 2021-05-16 12:22:00 -06:00
Michael Miller
59c67c26a9
Result visitor methods should take result as argument 2021-05-16 12:19:16 -06:00
Michael Miller
9a62c1386a
Remove parameter from start_dump and close events 2021-05-16 10:51:50 -06:00
Michael Miller
ba2922e655
Implement broadcast formatter methods 2021-05-16 10:12:40 -06:00
Michael Miller
5da21f8ede
Update Ameba and address issues 2021-05-15 19:51:44 -06:00
Michael Miller
aa03e3527d
Formatting 2021-05-15 19:45:17 -06:00
Michael Miller
eebcba0749
Mostly implemented progress formatter 2021-05-15 19:45:01 -06:00
Michael Miller
e2f4051927
Split error handler from failure method 2021-05-15 19:44:06 -06:00
Michael Miller
a36982d6d6
Use visitor pattern 2021-05-15 19:43:13 -06:00
Michael Miller
d5c4d5e822
Call fail instead of failure on visitor 2021-05-15 19:42:59 -06:00
Michael Miller
618e9e195a
Begin triggering events for formatters 2021-05-15 18:31:52 -06:00
Michael Miller
4eb457f197
Define and document formatter methods 2021-05-15 17:01:29 -06:00
Michael Miller
1ea209184e
Formatting 2021-05-12 21:41:56 -06:00
Michael Miller
81f509c083
Get config, spec, builder, and runner working together 2021-05-12 21:41:34 -06:00
Michael Miller
83c4b01e84
Set up placeholder formatters 2021-05-12 21:41:12 -06:00
Michael Miller
ff084bb3cd
Fix dumb mistakes 2021-05-12 21:40:48 -06:00
Michael Miller
b8b6b3b609
Add pass?/fail? methods to Result types 2021-05-12 21:39:50 -06:00
Michael Miller
72b2e7ebcb
Fix paths and references 2021-05-08 23:46:19 -06:00
Michael Miller
7294f2da67
Change ConfigSource to "applicator"
Remove unecessary abstract base class.
Shorten name of CLI arguments config applicator.
2021-05-08 23:45:54 -06:00
Michael Miller
f09a6a87e5
Remove TestSuite middle-man object 2021-05-08 23:38:13 -06:00
Michael Miller
e7138080a6
Clean up and simplify Config and Builder 2021-05-08 23:37:33 -06:00
Michael Miller
8a4735b9e6
Use Formatters instead of Reporters (and Formatters) 2021-05-08 23:35:29 -06:00
Michael Miller
f2459cfe94
Override === to call includes?
Allows the use of a filter in pattern matching scenarios (select).
2021-05-08 23:33:59 -06:00
Michael Miller
e7c3d8f060
Use filter if only one is provided
This is less overhead than creating a composite filter for one child 
filter.
2021-05-08 22:53:39 -06:00
Michael Miller
83d7657b18
Use enum flags for run modes 2021-05-08 22:51:54 -06:00
Michael Miller
e8848d6855
Merge branch 'release/0.10' into reporting 2021-05-08 13:23:57 -06:00
Michael Miller
88b323bc27
Move common inspect code up to Node 2021-05-08 13:22:13 -06:00
Michael Miller
d292c01e74
Remove direct references to Example in ExampleGroup 2021-05-08 12:43:41 -06:00
Michael Miller
ef7fca3f95
Bit of cleanup around parent/group 2021-05-08 12:10:27 -06:00
Michael Miller
d7ba47cc49
Clean up hook code 2021-05-08 12:00:29 -06:00
Michael Miller
e47e625016
Remove circular dependency with Node and ExampleGroup 2021-05-07 21:04:17 -06:00
Michael Miller
6bea36d8b6
Move Node out of Spec namespace 2021-05-07 20:09:33 -06:00
Michael Miller
d7bc376429
Some initial work on formatters 2021-05-07 20:05:00 -06:00
Michael Miller
31d819e4c9
Nuke formatting types to prep for new types 2021-05-06 22:11:38 -06:00
Michael Miller
f3afd74dc5
Empty classes for reporting 2021-05-06 22:10:59 -06:00
Michael Miller
ff5d855389
Cleanup harness some 2021-05-06 22:10:40 -06:00
Michael Miller
02b98ea61b
Remove reference to example from result
Pass examples instead of results into formatters.
2021-04-26 18:47:11 -06:00
Michael Miller
f24d634ccb
Merge branch 'release/0.10' into specs 2021-04-26 17:19:25 -06:00
Michael Miller
f549fcfa7a
Minor changes to configure methods 2021-04-26 17:17:18 -06:00
Michael Miller
6c98d7107c
Docs 2021-04-26 17:11:53 -06:00
Michael Miller
5dfc60d4cd
Fix nil reference error when example name is unavailable 2021-04-26 16:53:04 -06:00
Michael Miller
29594eefab
Merge branch 'master' into release/0.10 2021-04-26 11:19:08 -06:00
Michael Miller
18fb2d3879
Bump version to 0.9.36 2021-04-25 23:39:26 -06:00
Michael Miller
f0b524dc47
Remove workaround
https://github.com/icy-arctic-fox/spectator/issues/1 should be resolved 
by https://github.com/crystal-lang/crystal/pull/8234
2021-04-20 19:27:41 -06:00
Michael Miller
25638d766e
Bump version to 0.9.35 2021-04-18 18:08:08 -06:00
Michael Miller
93e270f87a
Support variables and methods for type matcher (be_a).
Addresses https://github.com/icy-arctic-fox/spectator/issues/25
2021-04-17 09:38:29 -06:00
Michael Miller
d612657b15
Merge branch 'release/0.10' into specs 2021-03-31 15:28:16 -06:00
Michael Miller
3d702f9bc6
Merge branch 'master' into release/0.10 2021-03-31 15:19:30 -06:00
Michael Miller
6481403c6f
Bump version to 0.9.34 2021-03-31 15:01:01 -06:00
matthewmcgarvey
5bd911341b Set end_line equal to line if end_line not provided 2021-03-30 15:29:51 -04:00
matthewmcgarvey
8fafd2467d Allow matching any line number of example in filter 2021-03-30 00:18:08 -04:00
Michael Miller
74b78b7ca8
Rename Source to Location 2021-02-12 22:46:22 -07:00
Michael Miller
08451df643
Add matcher to check compiled type of values 2021-02-12 18:33:50 -07:00
Michael Miller
3083f82132
Change DSL::Values to DSL::Memoize 2021-02-10 17:07:49 -07:00
Michael Miller
3cd569e639
Prevent using reserved keywords in let and subject 2021-02-10 16:58:17 -07:00
Michael Miller
86a85c0946
Missed a method that should be private 2021-02-09 23:27:00 -07:00
Michael Miller
8b5fd099bb
More docs 2021-02-09 22:50:09 -07:00
Michael Miller
8232da1167
Mark DSL generated methods as private 2021-02-09 22:40:15 -07:00
Michael Miller
7a5f7adfc2
Change Anything to only use case equality 2021-02-09 21:18:20 -07:00
Michael Miller
a20f2d4f98
Test and improve "Anything" 2021-02-09 19:10:11 -07:00
Michael Miller
e0c4d2ac3e
Bump version to 0.9.32 2021-02-03 10:08:46 -07:00
Michael Miller
8d48e441b2
Fix generating source from brace-less examples.
Addresses https://github.com/icy-arctic-fox/spectator/issues/20
2021-02-03 10:06:00 -07:00
Michael Miller
0363c43dff
Fix described_class
Must be a macro, otherwise the return type becomes a union of all nested 
described_class methods, which can cause weird errors.
2021-01-31 00:38:17 -07:00
Michael Miller
a20b7cad80
Workaround for case where wrapper might store a type 2021-01-30 23:49:20 -07:00
Michael Miller
e275711f2b
Formatting 2021-01-30 23:48:59 -07:00
Michael Miller
ff49c674c6
Fix around_each hook ordering when at the same level 2021-01-30 21:15:20 -07:00
Michael Miller
0f44403053
Fix namespaces preventing structs from being mocked 2021-01-30 21:11:51 -07:00
Michael Miller
0332b6eb3b
Log when deferred operations run 2021-01-30 21:07:42 -07:00
Michael Miller
292dfcbe29
Ignore nameless groups in document hierarchy 2021-01-30 21:00:28 -07:00
Michael Miller
e44505d4c1
Set nameless example to matcher description 2021-01-30 21:00:01 -07:00
Michael Miller
82e13f5434
Sloppily handle deferred operations 2021-01-30 20:53:09 -07:00
Michael Miller
078058ad05
Fix various issues with subjects
All tests in crystal spec pass!
2021-01-30 20:38:09 -07:00
Michael Miller
948e29a8b7
Fix short-hand should syntax 2021-01-30 20:27:36 -07:00
Michael Miller
62d478f7c2
Prevent overly verbose output of internals 2021-01-30 20:20:30 -07:00
Michael Miller
228696c8b0
Fix exit code when tests fail 2021-01-30 20:11:09 -07:00
Michael Miller
9743f37e5c
Capture reported expectations 2021-01-30 20:07:45 -07:00
Michael Miller
bda554739c
Re-add JSON output for some types 2021-01-30 20:07:36 -07:00
Michael Miller
9d139dfeed
Hack together result output 2021-01-30 19:42:46 -07:00
Michael Miller
17a3f27029
Address Ameba errors 2021-01-30 18:57:29 -07:00
Michael Miller
e8b284fc60
Fix namepsaces
crystal spec compiles again!
2021-01-30 17:40:33 -07:00
Michael Miller
b6335ab4bc
Update includes list 2021-01-30 17:40:03 -07:00
Michael Miller
d3ad0963cd
Minor fixes 2021-01-30 17:31:50 -07:00
Michael Miller
b07dca697e
Remove seemingly unused context stubs code 2021-01-30 17:27:17 -07:00
Michael Miller
3b5086c74b
Re-add mocks to harness 2021-01-30 17:27:02 -07:00
Michael Miller
73985772b7
DSL fully added back in 2021-01-30 16:43:13 -07:00
Michael Miller
d43d309a47
Note about tag inheritence 2021-01-30 16:39:41 -07:00
Michael Miller
3bc567da4c
Skip examples marked pending 2021-01-30 16:36:15 -07:00
Michael Miller
2301e44bd1
Add pending? method 2021-01-30 16:05:32 -07:00
Michael Miller
20680f37cb
Add docs 2021-01-30 15:39:29 -07:00
Michael Miller
ba967218fa
Move tags code to a common location 2021-01-30 15:34:17 -07:00
Michael Miller
bd942bb644
Shorten tag method names
Plain `tags` is safe to use as a class method on the group.
2021-01-30 14:13:27 -07:00
Michael Miller
e093ec788e
Clean up tags method generation by moving it to another macro 2021-01-30 14:08:42 -07:00
Michael Miller
803a09464d
Initial work to pass along pre-set tags
Define pending examples and groups using this method.
2021-01-30 12:32:13 -07:00
Michael Miller
de779fdf61
Remove unecessary type name 2021-01-30 12:26:29 -07:00
Michael Miller
fdc2a71dd5
Formatting 2021-01-30 12:07:45 -07:00
Michael Miller
c5246e1cd3
Promote Tags to the Spectator namespace 2021-01-30 12:07:23 -07:00
Michael Miller
db877da984
Change tags to symbols 2021-01-30 12:03:38 -07:00
Michael Miller
5166cd7778
Fix case with no tags and some metadata
Simplify tag set construction code.
2021-01-30 12:01:49 -07:00
Michael Miller
467f0d3ad4
Pass along tags 2021-01-30 11:34:01 -07:00
Michael Miller
e77d6f0a4f
Change groups from metadata to tags 2021-01-30 11:21:49 -07:00
Michael Miller
71a497b148
Move tags to node level 2021-01-30 11:20:20 -07:00
Michael Miller
8cf498c9e9
Switch to using tags instead of metadata 2021-01-30 11:13:30 -07:00
Michael Miller
11cb16fb3a
Add missing call to super 2021-01-30 10:14:09 -07:00
Michael Miller
a56b1e0eb1
Somewhat functional metadata unwrap 2021-01-30 01:16:26 -07:00
Michael Miller
466a388558
Initial code for example metadata 2021-01-30 00:40:59 -07:00
Michael Miller
5cccf5b4cb
Support example as block argument to let and subject
Surprisingly, RSpec supports this.
https://relishapp.com/rspec/rspec-core/v/3-10/docs/metadata/current-example
2021-01-22 23:00:17 -07:00
Michael Miller
76378c9dae
Whitespace 2021-01-21 21:05:12 -07:00
Michael Miller
a8840351d5
More work hooking up expectations 2021-01-21 00:03:57 -07:00
Michael Miller
b7ed4ec14c
Nest spec types 2021-01-21 00:03:39 -07:00
Michael Miller
ce6f77656a
Use ExpectationFailed instead of AssertionFailed 2021-01-20 21:38:34 -07:00
Michael Miller
98a29309ff
Remove assert methods 2021-01-20 21:36:18 -07:00
Michael Miller
f97e5365e3
Merge branch 'example-api' of gitlab.com:arctic-fox/spectator into example-api 2021-01-16 18:05:48 -07:00
Michael Miller
73dc7ae811
Fix copy/paste docs 2021-01-16 17:16:31 -07:00
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