mirror of
https://gitea.invidious.io/iv-org/shard-spectator.git
synced 2024-08-15 00:53:35 +00:00
13 KiB
13 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
- Hooks are yielded the current example as a block argument.
- The
let
andsubject
blocks are yielded the current example as a block argument. - Add internal logging that uses Crystal's
Log
utility. Provide theLOG_LEVEL
environment variable to enable. - Support dynamic creation of examples.
- Capture and log information for hooks.
- Tags can be added to examples and example groups.
Changed
- Simplify and reduce defined types and generics. Should speed up compilation times.
around_each
hooks wrapbefore_all
andafter_all
hooks. #12- The "should" syntax no longer reports the source as inside Spectator.
- Short-hand "should" syntax must be included by using
require "spectator/should"
-it { should eq("foo") }
- Overhaul example creation and handling.
- Overhaul storage of test values.
- Cleanup and simplify DSL implementation.
- Better error messages and detection when DSL methods are used when they shouldn't (i.e.
describe
insideit
). - Other minor internal improvements and cleanup.
Removed
- Removed one-liner it syntax without braces (block).
0.9.34 - 2021-03-31
Changed
- Allow filtering examples by using any line in the example block. #19 Thanks @matthewmcgarvey !
0.9.33 - 2021-03-22
Changed
- Target Crystal 1.0
0.9.32 - 2021-02-03
Fixed
- Fix source reference with brace-less example syntax. #20
0.9.31 - 2021-01-08
Fixed
- Fix misaligned line numbers when referencing examples and groups.
0.9.30 - 2020-12-23
Fixed
- Fix issue caused by additions from 0.9.29.
Changed
- Improve the
contain
,contain_elements
,have
, andhave_elements
to show missing items in output.
0.9.29 - 2020-12-23
Added
- Add variants
contain_elements
andhave_elements
, which behave likecontain
andhave
matchers except that they take an array (or any enumerable type) instead of a parameter list or splat.
0.9.28 - 2020-11-07
Added
- Add
return_type
option to method stubs.
0.9.27 - 2020-10-01
Added
- Add syntax for stubbing operator-style methods, such as
[]
.
0.9.26 - 2020-09-27
Fixed
- Fix issue with yielding in stubbed mocks.
0.9.25 - 2020-09-26
Fixed
- Fix issue with splatting values for failed match data. This prevented the use of "description" and "failure_message" in some matches like
respond_to
.
0.9.24 - 2020-09-17
Changed
- Allow some forms of string interpolation in group and example descriptions.
0.9.23 - 2020-08-30
Fixed
- Allow the use of
object_id
and other possibly conflicting method names vialet
. #53
0.9.22 - 2020-08-11
Changed
- Handle splat in macro for matcher DSL. #8
0.9.21 - 2020-07-27
Added
- Display random seed when using
-r
or--seed
options. #7
0.9.20 - 2020-05-29
Fixed
- Fix bug when using multiple short-hand block expects in one test.
0.9.19 - 2020-05-28
Fixed
- Fix issue with
match_array
andcontain_exactly
matchers not working with immutable collections.
0.9.18 - 2020-04-26
Fixed
- Fix
describe_class.new
when using a generic type.
0.9.17 - 2020-04-23
Fixed
- Fix issue when using deferred syntax with
receive
matcher. #48
0.9.16 - 2020-04-06
Fixed
- Silence warnings from Crystal 0.34
0.9.15 - 2020-04-03
Fixed
- Fix issues with
match_array().in_any_order
andcontain_exactly().in_any_order
. #47
Changed
- Improve usability when actual value does not respond to methods needed to verify it.
For instance,
expect(nil).to contain_exactly(:foo)
would not compile. This has been changed so that it compiles and raises an error at runtime with a useful message.
0.9.14 - 2020-04-01
Fixed
- Fix using nil with
be
matcher. #45
0.9.13 - 2020-03-28
Fixed
- Fix arguments not found in default stubs for mocks. #44
0.9.12 - 2020-03-20
Fixed
- Fix issue when mocking modules. Thanks @watzon !
0.9.11 - 2020-03-04
Fixed
0.9.10 - 2020-03-03
Changed
- Smarter behavior when omitting the block argument to the
around_each
hook.
0.9.9 - 2020-02-22
Fixed
- Fix implicit subject when used with a module. #6
0.9.8 - 2020-02-21
Fixed
- Fix
be_between
matcher. Thanks @davidepaolotua / @jinn999 !
0.9.7 - 2020-02-16
Fixed
- Fix memoization of subject when using a type name for the context.
- Fix some cases when mocking a class method.
0.9.6 - 2020-02-10
Added
- Add short-hand "should" syntax -
it { should eq("foo") }
- The
be
matcher can be used on value types. - Add more tests cases from RSpec docs.
Fixed
- Fix an issue with stubbed class methods on mocked types. Sometimes
previous_def
was used whensuper
should have been used instead. - Fix deferred expectations not running after all hooks.
0.9.5 - 2020-01-19
Changed
- Described type is now considered an explicit subject.
0.9.4 - 2020-01-19
Added
- Add more test cases from RSpec docs.
- Add
it_fails
utility to test expected failures.
Fixed
- Fix negated case for
respond_to
matcher.
0.9.3 - 2020-01-17
Fixed
- Fix implicit subject overwriting explicit subject. #25
0.9.2 - 2020-01-14
Added
- Add tests from RSpec docs.
- Add
with_message
modifier forraise_error
matcher. - Support omitted description on
it
andspecify
blocks. Use matcher description by default.
Fixed
- Fix
let!
not inferring return type. #4
Changed
- Modified some matchers to behave more closely to their RSpec counterparts.
0.9.1 - 2019-12-13
Fixed
- Fix default stub with type.
- Fix verifying double on self argument type.
- Pass stub instead of stub name to mock registry.
Removed
- Remove unnecessary type from stub class hierarchy.
0.9.0 - 2019-12-08
Added
- Implement initial mocks and doubles (stubbing) support. #16 #6
- Deferred expectations (
to_eventually
andto_never
).
Changed
- Test cases no longer define an entire class, but rather a method in a class belonging to the group.
0.8.3 - 2019-09-23
Fixed
- Fix and address warnings with Crystal 0.31.0.
0.8.2 - 2019-08-21
Fixed
0.8.1 - 2019-08-17
Fixed
- Fix nested
sample_value
blocks giving cryptic error. #20
0.8.0 - 2019-08-12
Added
- Add "any order" modifier for
contains_exactly
andmatch_array
. - Add
change
matcher and its variations. - Add
all
matcher. - Variation of
let
syntax that takes an assignment.
Changed
- Rewrote matcher class structure.
- Improved tracking of actual and expected values and their labels.
- Matcher values are only produced when the match fails, instead of always.
Fixed
- Fix malformed code generated by macros not working in latest Crystal version.
0.7.2 - 2019-06-01
Fixed
- Reference types used in
subject
andlet
were recreated between hooks and the test block. #11
0.7.1 - 2019-05-21
Fixed
- Fixed an issue where named subjects could crash the compiler.
0.7.0 - 2019-05-16
Added
- Added
be_between
matcher.
Changed
- The
be_within
matcher behaves like RSpec's.
0.6.0 - 2019-05-08
Changed
- Introduced reference matcher and changed
be
matcher to use it instead of the case matcher.
Removed
- Removed regex matcher, the case matcher is used instead.
0.5.3 - 2019-05-08
Fixed
- Updated the
expect_raises
matcher to accept an optional second argument to mimicraise_error
. #4
0.5.2 - 2019-04-22
Fixed
- Fix
after_all
hooks not running with fail-fast enabled. #2
0.5.1 - 2019-04-18
Added
- Note in README regarding repository mirror.
Fixed
- Change protection on expectation partial to work with Crystal 0.28 and "should" syntax.
- Change references to
Time.now
toTime.utc
in docs.
0.5.0 - 2019-04-07
First version ready for public use.