Also, I normalized them to all be sentences for consistency, and I moved
the reentrancy check from `m.mount` to `m.render` to be a little more
helpful. The router change during mounting is inconsequential and only
to avoid the new modified error, and the change to the update loop is to
send the original error if an error occurred while initializing the
default route. (This is all around more useful anyways.)
And while I was at it, I fixed an obscure bug with sync redraws.
* Fix assertion descriptions
Move return statement to the end of define()
* ospec: Fix assertion definitions
* Fix typo in assertion
* Add test for descriptions being returned on fail
* Reference result instead of self in returned description method
* Fix style errors
* ospec: all results, failing and passing, include .message and .context
Previously only failing tests had .message and .context.
* Updated docs
* Function was ugly
* Ospec verbose passing tests: put changelog update in right place
* Ospec: added assertion that function does/doesnt throw error
* Ospec.throws passes npm test
* Ospec.throws: Address requested changes
* Ospec: message comparison support for .throws/.notthrows
Credit to @maranomynet, #2227
* feat(ospec): Add spacing before report results
...sometimes tested code emits console.log() messages
which then blend in with ospec's report
* feat(ospec): Reword and prettify the report messages
* feat(ospec): Make console.errors more compact, yet more readable
* docs(ospec): Update change-log.md
* fix(ospec): Fix grammar when number of assertions is 1
* feat(ospec): Make "all passed" message bright green
* refactor(ospec): define `cStyle()` helper for browser styling
* feat(ospec): Use en-dashes for the horizontal divider
* feat(ospec): Revert stacktrace coloring, make context bright red
...and add extra newline above each error - for readability
in commandline (node.js) mode
* feat(ospec): Improve the only-test-passed message
"1 assertion passed" --> "The 1 assertion passed"
* docs: Update LOC count