Commit Graph

350 Commits

Author SHA1 Message Date
Michael Miller 00045ba9be Tests for nested groups and fail-fast 2019-04-22 20:27:54 -06:00
Michael Miller 1d530de5b1 Add tests for fail-fast and after hooks
Inspecting issue #2
2019-04-22 19:12:45 -06:00
Michael Miller b305c829be Allow hooks and conditions to be passed to create 2019-04-22 18:22:12 -06:00
Michael Miller 3eb6a1d676 Remove unused block arguments 2019-04-06 17:20:12 -06:00
Michael Miller 53bfcc25ef Add Ameba and address code linting issues 2019-04-06 17:19:02 -06:00
Michael Miller 365bd1ec2f Fix failing tests 2019-04-06 12:48:41 -06:00
Michael Miller 2ea69d2355 Add spec for array matcher 2019-03-30 18:38:06 -06:00
Michael Miller cd60fae157 Add respond_to matcher 2019-03-28 23:20:32 -06:00
Michael Miller aabc25ad4f Change formatters to take nillable profile 2019-03-25 16:05:38 -06:00
Michael Miller 35b887f8f0 Add placeholders for profile functionality 2019-03-25 12:13:11 -06:00
Michael Miller 2ff9505766 Add filter to TestSuite 2019-03-25 11:35:39 -06:00
Michael Miller d1767ebb7a Add CompositeExampleFilter 2019-03-25 11:10:27 -06:00
Michael Miller 481319c097 Add NullExampleFilter 2019-03-25 10:58:49 -06:00
Michael Miller a3c1892465 Move example filters from === to their own types 2019-03-25 10:51:50 -06:00
Michael Miller 8c66f8df34 Add ExampleFilter class 2019-03-23 22:03:49 -06:00
Michael Miller 2f8b4761de Make Example comparable against names and sources
This will be needed for filtering examples.
2019-03-23 21:40:13 -06:00
Michael Miller 4f3ca20741 Parse source strings 2019-03-23 20:47:41 -06:00
Michael Miller 268db53bf8 Use more sensible label for non-labeled procs 2019-03-23 20:23:31 -06:00
Michael Miller 4890cafefa Ability to enumerate each result in report 2019-03-23 14:44:00 -06:00
Michael Miller 4d38bf3ab2 Add secondary initializer 2019-03-23 14:38:51 -06:00
Michael Miller 209ef92d3d Implement "fail-blank" into runner and report 2019-03-22 13:41:46 -06:00
Michael Miller 2b71400d9a Remove tests that had a prefixed actual value 2019-03-22 13:05:24 -06:00
Michael Miller c156c55c72 Inspect the underlying value
This is needed because MatchDataValue is now a class instead of a 
struct.
2019-03-22 11:55:04 -06:00
Michael Miller e7e1d0e084 Change how values are passed to helper
Working around a segfault (dunno why this fixes it).
2019-03-22 11:53:20 -06:00
Michael Miller d705ef657c Update specs to handle new match data values 2019-03-22 11:41:39 -06:00
Michael Miller 3dd39f17f5 Fix Expectation spec 2019-03-22 11:07:56 -06:00
Michael Miller 33841e8888 Sub-type value modifier from MatchDataValue
This includes renaming the types.
2019-03-22 10:55:57 -06:00
Michael Miller a31d5c8b5b Implement fail-fast in runner
Report tracks number of omitted tests due to abort.
2019-03-22 00:05:53 -06:00
Michael Miller 9e63c20df2 Add fail-fast to config 2019-03-21 23:40:00 -06:00
Michael Miller f2558fd09e Add spec for ExceptionMatcher 2019-03-21 22:50:02 -06:00
Michael Miller d0da584f5e Add tests for Color formatting module 2019-03-14 19:42:30 -06:00
Michael Miller 0ca0ba0a55 Fix tests to account for negation wrappers 2019-03-07 16:12:23 -07:00
Michael Miller a9d1f1aabc Workaround for mashup of compile-time types 2019-03-06 18:40:57 -07:00
Michael Miller 018e3232cd Update RangeMatcher to use MatchData
There is a compilation error.
It appears that since the last Matcher#match method has been
implemented,
Crystal is finally grouping all of the NamedTuples together.
2019-03-06 15:01:00 -07:00
Michael Miller fbee1d9461 Update RegexMatcher to use MatchData 2019-03-06 13:10:16 -07:00
Michael Miller f29aba42d2 Update TruthyMatcher to use MatchData 2019-03-06 13:04:18 -07:00
Michael Miller 5fd1547ced Fix verbage around failure message 2019-03-06 12:01:32 -07:00
Michael Miller 6e62ccdfc5 Update TypeMatcher to use MatchData 2019-03-06 11:19:57 -07:00
Michael Miller 81e20b13ec Update PredicateMatcher to use MatchData 2019-03-06 11:05:13 -07:00
Michael Miller 6ab2aad532 Update HaveMatcher to use MatchData 2019-03-06 10:29:00 -07:00
Michael Miller a78b80ed1f Update StartWithMatcher to use MatchData 2019-03-06 09:33:36 -07:00
Michael Miller 76d09a22ff Update HaveValueMatcher to use MatchData 2019-03-06 02:19:12 -07:00
Michael Miller 3f1d8751fe Update HaveKeyMatcher to use MatchData 2019-03-06 02:02:55 -07:00
Michael Miller 95b4a349da Update InequalityMatcher to use MatchData 2019-03-05 19:00:49 -07:00
Michael Miller d35a739e60 Update LessThanMatcher to use MatchData 2019-03-05 16:53:15 -07:00
Michael Miller f846408848 Update LessThanEqualMatcher to use MatchData 2019-03-05 16:37:51 -07:00
Michael Miller 36d3bd0a70 Update GreaterThanMatcher to use MatchData 2019-03-05 16:28:29 -07:00
Michael Miller 83d398465f Update GreaterThanEqualMatcher to use MatchData
Add PrefixedValue type to help convey values better (without string
concat).
2019-03-05 15:39:30 -07:00
Michael Miller 0288e1d6f8 Add tests for match data values 2019-03-05 14:00:14 -07:00
Michael Miller 7b0f607a6a Update EndWithMatcher to use MatchData 2019-03-04 20:16:21 -07:00
Michael Miller 1090a7f2f3 Fix botched copy/paste 2019-03-04 18:30:18 -07:00
Michael Miller e7441df159 Update AttributesMatcher to use MatchData
This is a glorious mess.
2019-03-04 16:06:20 -07:00
Michael Miller df663d30d9 Update EmptyMatcher to use MatchData 2019-03-03 20:21:39 -07:00
Michael Miller be3218bcd8 Update ContainMatcher to use MatchData 2019-03-03 20:03:20 -07:00
Michael Miller 1db5341f4b Add tests for match data values 2019-03-03 19:31:39 -07:00
Michael Miller e38bcd544a Update CaseMatcher to use MatchData 2019-03-03 19:05:20 -07:00
Michael Miller 50a782b803 Minor adjustments to equality matcher 2019-03-03 12:26:31 -07:00
Michael Miller ec06daaf35 Test values returned by match data 2019-03-03 12:13:35 -07:00
Michael Miller daf2f43f25 Rename module from Formatters to Formatting 2019-02-28 19:14:03 -07:00
Michael Miller 4e3290ebfe Initial code to get match data values to output
Expose the match data values through the Expectation class.
2019-02-28 16:35:50 -07:00
Michael Miller 6942e70024 Remove unnecessary type specification 2019-02-28 15:18:56 -07:00
Michael Miller 65dd6243dd Rename to match class name 2019-02-28 15:17:50 -07:00
Michael Miller 5ba03a90ff Swap label and expected value parameters
This matches the partial initializer parameters.
Also cleaned up some code in the Expectation spec.
2019-02-28 15:17:12 -07:00
Michael Miller b4af87f903 Fix fallout from last commit in Expectation spec
All tests pass in this commit!
2019-02-28 13:52:01 -07:00
Michael Miller e6ce54202d Remove Matcher methods moved to MatchData
Update spec for EqualityMatcher to reflect this.
2019-02-28 13:47:50 -07:00
Michael Miller 94cbb9860a Update NilMatcher to use MatchData and #match 2019-02-28 11:31:05 -07:00
Michael Miller 0dd66c8803 Update Expectation spec to use new parameters 2019-02-28 11:07:16 -07:00
Michael Miller 26187a0f31 Fix oddity with type being unresolvable 2019-02-27 22:20:57 -07:00
Michael Miller c1f61d68bf Use MatchData 2019-02-26 20:29:04 -07:00
Michael Miller e92b1dc466 Add #failed? method to Report 2019-02-22 15:09:55 -07:00
Michael Miller 919e2b96f6 Update specs for new Result#call functionality 2019-02-20 21:17:27 -07:00
Michael Miller a015f30769 Add tests for Source#spec and update #to_s tests 2019-02-17 21:24:31 -07:00
Michael Miller dc7d5fbe25 Lazy iterate over failures and errors
Return iterator from #failures and #errors methods in Report.
Update spec to reflect this.
2019-02-17 20:09:13 -07:00
Michael Miller 6cc3c5e20b Add tests for adding/omitting the space in #to_s 2019-02-17 17:03:57 -07:00
Michael Miller fe083b0f74 Update specs to handle and test symbolic components 2019-02-17 16:39:23 -07:00
Michael Miller 6a8d447570 Add tests for Result#call implementations 2019-02-17 14:40:05 -07:00
Michael Miller 0b06e72f7e Simplify method chains by using #compact_map 2019-02-17 13:40:10 -07:00
Michael Miller 5722d18db9 Update or remove tests using result predicate methods 2019-02-17 13:35:24 -07:00
Michael Miller ed01a95e67 Replace source file and line with source struct 2019-02-17 12:40:16 -07:00
Michael Miller ffca0316a4 Add spec for source class 2019-02-17 12:32:15 -07:00
Michael Miller 7504536528 Remove conflicting duplicate #new_pending_result 2019-02-15 22:19:34 -07:00
Michael Miller 88c32b697b Add tests for source file and line 2019-02-14 19:35:42 -07:00
Michael Miller 1507a447c8 Update specs to use new source arguments
Used `new_partial` where the underlying partial didn't matter for the
test.
2019-02-14 17:04:59 -07:00
Michael Miller 36c98db0ae Update spec helpers to have source information 2019-02-14 15:41:59 -07:00
Michael Miller f19b33d7a2 Add spec for Report and fix some bugs 2019-02-14 14:25:46 -07:00
Michael Miller 6151912fa6 Add spec for test suite 2019-02-12 22:33:48 -07:00
Michael Miller 493e30acee Remove elapsed time from pending results 2019-02-12 16:36:06 -07:00
Michael Miller 577877e067 Add spec for runner
Added a spy for detecting when formatter methods are called.
2019-02-12 16:10:14 -07:00
Michael Miller 50bc1af816 Method for creating groups of spy examples 2019-02-12 13:45:19 -07:00
Michael Miller 1f2f7f2214 Add spec for `have_value` matcher 2019-02-05 19:37:41 -07:00
Michael Miller da9e653a89 Add spec for `have_key` matcher 2019-02-05 19:26:46 -07:00
Michael Miller 8a09ddac04 Add spec for predicate matcher 2019-02-05 10:36:59 -07:00
Michael Miller 5da222d7a0 Whitespace 2019-02-04 16:27:40 -07:00
Michael Miller 71427e4f6b Use spy to test that matchers use === operator 2019-02-04 16:26:53 -07:00
Michael Miller e42e5b30bb Fix test 2019-02-04 16:20:35 -07:00
Michael Miller 75c4bcad54 Add spec for `have_attributes` matcher 2019-02-04 16:19:39 -07:00
Michael Miller ade4af0153 Add tests for multiple arguments 2019-02-01 20:44:25 -07:00
Michael Miller 239779135f Fix `have` matcher tests for multiple arguments 2019-02-01 20:29:13 -07:00
Michael Miller 4043a76a07 Add tests for multiple arguments 2019-02-01 19:56:46 -07:00
Michael Miller acea12cafb Fix `contain` matcher tests for multiple arguments 2019-02-01 19:45:30 -07:00
Michael Miller 196b4d97a5 Add spec for `have` matcher 2019-02-01 16:43:18 -07:00
Michael Miller 2a91191a6b Add spec for `contain` matcher 2019-01-31 23:12:48 -07:00
Michael Miller 5f9c0385ad Check for mentions of first and last 2019-01-31 22:13:50 -07:00
Michael Miller a91758b3f3 Add spec for `end_with` matcher 2019-01-31 22:11:38 -07:00
Michael Miller e6e4f28a4c Add spec for `start_with` matcher 2019-01-31 19:36:35 -07:00
Michael Miller 3731b6d785 Remove BlockExpectation 2019-01-31 13:32:34 -07:00
Michael Miller ff4e148509 Rename ValueExpectation to Expectation in tests 2019-01-31 13:30:09 -07:00
Michael Miller 2863ae7dfe Add spec for block expectation and partial 2019-01-28 16:03:33 -07:00
Michael Miller 651127f2d4 Add spec for empty matcher
Mark question matchers as done (for now).
More may be added later if they're common.
2019-01-26 17:09:24 -07:00
Michael Miller aa94ec0e33 Sub-types should be not match 2019-01-26 16:44:46 -07:00
Michael Miller 3bfaa07d4f Add spec for nil matcher 2019-01-26 16:41:21 -07:00
Michael Miller c3d7aef7a9 Add a couple of type tests 2019-01-26 16:34:58 -07:00
Michael Miller 12864492b7 Add spec for range modifier methods 2019-01-25 13:52:41 -07:00
Michael Miller ac08806010 Add spec for RangeMatcher 2019-01-25 13:12:34 -07:00
Michael Miller 6a91b3e399 Formatting 2019-01-25 11:09:11 -07:00
Michael Miller e33ce5c182 Implement remaining pending tests 2019-01-25 11:08:57 -07:00
Michael Miller 6665e4d396 Implement some pending tests 2019-01-24 22:36:05 -07:00
Michael Miller cbb4c18668 Formatting 2019-01-23 23:16:18 -07:00
Michael Miller a869d4f23f More pending tests to implement 2019-01-23 23:14:34 -07:00
Michael Miller f0a972ed06 Start on some condition tests 2019-01-23 23:01:16 -07:00
Michael Miller c31557e8ff Move everything in BeComparison to TruthyMatcher
This is to match RSpec's ability to use "be" by itself.
For instance: `expect(foo).to be`
2019-01-23 22:10:03 -07:00
Michael Miller 2758ba7643 Add spec for BeComparison 2019-01-23 21:36:52 -07:00
Michael Miller f09aaf59e6 Formatting 2019-01-23 21:11:01 -07:00
Michael Miller 06ee53a7b6 Add spec for GreaterThanEqualMatcher 2019-01-23 21:10:17 -07:00
Michael Miller e3d9b55ae7 Add spec for GreaterThanMatcher 2019-01-23 21:08:52 -07:00
Michael Miller 99991de2da Add spec for LessThanEqualMatcher 2019-01-23 21:05:50 -07:00
Michael Miller 06bb969061 Add spec for LessThanMatcher 2019-01-23 21:03:44 -07:00
Michael Miller d86b9dad11 Add spec for InequalityMatcher 2019-01-23 21:02:44 -07:00
Michael Miller 73c4334246 Use macros to create methods for all watched operators 2019-01-23 21:02:32 -07:00
Michael Miller 95b0563f73 Add spec for TruthyMatcher 2019-01-23 16:06:18 -07:00
Michael Miller 41729217bb Add tests for pre- and post-conditions in groups 2019-01-23 15:12:09 -07:00
Michael Miller 37c45eb285 Shorten pre and post usage 2019-01-23 14:46:15 -07:00
Michael Miller a32b511e0b Add spec for `match` (regex) matcher 2019-01-19 14:49:13 -07:00
Michael Miller 19da933c2f Add spec for `be_a` matcher 2019-01-19 14:29:07 -07:00
Michael Miller f2569ea3a0 Add spec for `be` matcher 2019-01-19 13:50:57 -07:00
Michael Miller db89a99562 Add specs for ExampleConditions 2019-01-17 14:14:10 -07:00
Michael Miller d9363fc8a7 Update existing specs to support conditions 2019-01-11 10:09:40 -07:00
Michael Miller 191eb02cbe Add dummy instance values 2019-01-01 17:06:24 -07:00
Michael Miller c1b27bb672 Rename "given" to "sample"
This falls in line with the `SampleValues` type.
It also frees up the keyword "given" to be used for something else.
2018-12-27 11:15:44 -07:00
Michael Miller 3573845dc2 Finally implement pending test 2018-12-13 14:53:04 -07:00
Michael Miller 77efdd84be Use tuples instead of parallel arrays 2018-12-13 14:48:20 -07:00
Michael Miller 5a87753c7d Add test for SampleValues#each 2018-12-13 14:41:22 -07:00
Michael Miller ef12e3967b Add checks for cause of hook error
Fix some tests that had copy/paste mistakes.
2018-12-07 23:07:04 -07:00
Michael Miller ef490c78b0 Fix test 2018-12-07 23:01:08 -07:00
Michael Miller d710929479 Fix collateral damage from rev aeebbaa 2018-12-07 22:53:17 -07:00
Michael Miller 22f32eb03e Fix tests that had issues setting children 2018-12-07 22:42:52 -07:00
Michael Miller 2aa7a75eea Implement remaining hook error tests 2018-12-07 22:05:23 -07:00
Michael Miller 99de2335aa More tests for exceptions in hooks 2018-12-07 17:02:53 -07:00
Michael Miller e87f0b5e64 Ability to pass custom hooks to SpyExample 2018-12-07 17:02:07 -07:00
Michael Miller f20a0e2241 Formatting 2018-12-05 20:27:31 -07:00
Michael Miller 2ce599d6a4 Some initial work on runnable example tests 2018-12-05 20:25:11 -07:00
Michael Miller 06230f128d Add example for producing errors 2018-12-05 20:25:11 -07:00
Michael Miller 712aa99fed Adjust tests to use new hook methods 2018-12-05 20:21:19 -07:00
Michael Miller e0f5862960 Add missing proc call 2018-11-26 14:27:32 -07:00
Michael Miller 3207b7c8d2 Add tests for hooks 2018-11-26 14:21:43 -07:00
Michael Miller 1193fdc8ff Add spec for PendingExample 2018-11-26 14:01:15 -07:00
Michael Miller b414438627 Add spec for RootExampleGroup 2018-11-23 11:20:28 -07:00
Michael Miller d117f487a3 Implement remaining tests 2018-11-20 20:56:33 -07:00
Michael Miller e1501c3416 Some tests for NestedExampleGroup 2018-11-20 16:34:48 -07:00
Michael Miller c68cd7e16a Move example hooks helper methods to their own file 2018-11-20 14:51:11 -07:00
Michael Miller 7517042195 Add spec for ExpectationFailed 2018-11-20 12:55:37 -07:00
Michael Miller b8ee29ab0e Formatting 2018-11-20 12:48:19 -07:00
Michael Miller 1802f27f68 Add spec for ExampleIterator 2018-11-20 12:47:55 -07:00
Michael Miller 101489ea19 Add spec for ExampleHooks 2018-11-19 22:51:59 -07:00
Michael Miller d576e4a1fa Missing # prefix for #to_not and #not_to 2018-11-19 22:00:45 -07:00
Michael Miller 05c3a75683 Add specs for result types 2018-11-16 11:39:07 -07:00
Michael Miller ee2491fef8 Down-cast to preven type issues when inferring arrays 2018-11-16 11:38:50 -07:00
Michael Miller 195e34d360 Add tests for #to and #to_not 2018-11-14 13:10:42 -07:00
Michael Miller 49deb96a11 Capture harness in spy example 2018-11-14 12:58:32 -07:00
Michael Miller 4a531bd83f Move PassingExample to its own file
Missed this one when moving code around before.
2018-11-14 12:55:21 -07:00
Michael Miller f0204a32ea Fix specs to work with new Expectation type 2018-11-14 02:15:55 -07:00
Michael Miller 66dcc21383 Move helper methods and classes to their own directory 2018-11-09 11:20:30 -07:00
Michael Miller 2f525d49ef Add spec for GivenExampleGroupBuilder 2018-11-02 20:17:59 -06:00
Michael Miller 14ee762ad7 Add test for value of "what"
Minor changes to remove unused parts.
2018-11-02 18:23:04 -06:00
Michael Miller c8609ab609 Formatting 2018-11-02 15:35:57 -06:00
Michael Miller 7ce732a828 Add spec for NestedExampleGroupBuilder 2018-11-02 15:35:50 -06:00
Michael Miller 1657518deb Add spec for RootExampleGroupBuilder 2018-11-02 15:28:51 -06:00
Michael Miller ffdc0c40ac Add spec for ExampleFactory 2018-11-01 20:25:38 -06:00
Michael Miller 8e7f5cf82b Capture sample values for tests 2018-11-01 20:23:28 -06:00
Michael Miller 29219c8b8c Formatting 2018-10-23 10:51:50 -06:00
Michael Miller dbcf9ec57d Add spec for TypedValueWrapper 2018-10-23 10:49:52 -06:00
Michael Miller c711115023 Add spec for SampleValues 2018-10-23 10:42:18 -06:00
Michael Miller 3382084f03 Implement remaining harness specs 2018-10-22 10:49:42 -06:00
Michael Miller 5a4b4817b4 More tests for the harness 2018-10-21 08:10:59 -06:00
Michael Miller 4ab97bd215 Group children must be set 2018-10-20 22:56:24 -06:00
Michael Miller 16519db9bb Rename #report_results to #generate_results 2018-10-20 20:13:47 -06:00
Michael Miller 2992a18992 Some initial specs for the harness 2018-10-19 20:30:27 -06:00
Michael Miller 36071fcdbf Sanity check on expectations 2018-10-19 18:20:42 -06:00
Michael Miller 67e192edc6 Implement ExpectationResults specs and fix typo 2018-10-19 16:27:59 -06:00
Michael Miller 703a791f78 Formatting changes 2018-10-19 14:02:27 -06:00
Michael Miller 1064444f15 DRY up code by adding expectation helper methods 2018-10-19 13:54:32 -06:00
Michael Miller 440a2c6643 Structure for ExpectationResults spec 2018-10-19 13:28:44 -06:00
Michael Miller 7d08d38659 Add specs for ExpectationReporter
There is currently a segfault with this test code.
The issue will be addressed in the next commit.
2018-10-19 13:03:13 -06:00
Michael Miller 15ac60b17b Remove unecessary #to_s calls 2018-10-19 11:01:22 -06:00
Michael Miller 7f4690b042 Secondary initializer for missing label
Label is set to actual/expected stringified value if omitted.
2018-10-18 21:52:00 -06:00
Michael Miller 9a77f8b7fd Add specs for value expectation
Fix bug in expectation result actual message.
2018-10-18 17:54:43 -06:00
Michael Miller bc66016c42 Add specs for equality matcher 2018-10-18 13:46:12 -06:00
Michael Miller 3196b724bf Some initial specs for expectation partials 2018-10-15 15:45:32 -06:00
Michael Miller c77a85c97a Flag to disable running tests
This is needed for testing Spectator.
2018-10-15 00:32:29 -06:00
Michael Miller 630e537726 Initial commit 2018-08-18 15:33:20 -06:00