Releases: dionisiydk/StateSpecs
Pharo11 compatibility
Pharo11 deprecations are fixed
Ghost version is updated
Help is excluded from baseline (old Help system was removed in Pharo11)
Update Ghost for debugger fixes
v5.0.1 Update Ghost for debugger fixes
Ghost version update for Pharo 10
v5.0.0 Update README.md
Mark baseline that project is metadataless
From @jecisc :
This allows Metacello to better know the current version of the github project and not reload it when the right version is already in the image.
On a project with a lot of dependencies, it tries to load Mocketry around 40 times because this support is not there I think. Because I have multiple projects depending on Mocketry and for each project transitively depending on it, it tries to load it...
Ghost updated for Pharo 8/9 compatibility
v4.0.1 Update Ghost for Pharo 8/9 compatibility
New should expression #takeAWhile
New expressions are implemented to support future state validation which requires some time to be satisfying the given spec:
[var := #result] fork.
[var] should takeAWhile to be: #result.
([var] should take: 10 seconds) to be: #result.
It is supposed to simplify testing the result of some asynchronous logic. Normally it is better to organize real synchronization in the test but it is not always possible to do. In such cases there is only way to wait required state for a while.
#takeAWhile expression implements this approach in reusable form. It periodically checks the required state in the loop and fails if it does not match after given amount of time (by default 200 milliseconds).
Block here ([var]) is required to verify the static values. But it is not needed when you want to check the internal state:
array := OrderedCollection new.
[array add: #value] fork.
array should takeAWhile to include: #value
To implement this feature the should expression machinery was refactored. And as result all kind of should expressions support the #takeAWhile option. For example now Mocketry allows to check that object will receive the given message after some time:
[mock someMessage] fork.
mock should takeAWhile to receive someMessage
Tonel migration
v3.0.0 Remove Pharo 6 from CI
Better printing for specs and CI for Pharo 8
- fix for printing object property
- tests for object property
- CI for Pharo 8
Better failure validation logic
- Keep signaled exception instance during SpecOfBlockFailure validation:
error := [ self error: 'some error' ] should raise: Error.
error should beInstanceOf: Error.
error where description should includeSubstring: 'some'
- Fix the rule "minimum restrictions by default" for failure validation:
[1 / 0] should raise: Error "is now passed"
If concrete error is expected it should be explicitly written using spec:
[1 / 0] should raise: (Instance of: Error) "will fail"
Resumable SpecOfFailed
Now SpecOfFailed error can be resumed which returns actual validation failure:
[1 should be: 2] on: SpecOfFailed do: #resume
"==> a SpecOfValidationFailure(Got ""1"" but it should be ""2"")"