Document TestBox 7.1.0 features and changes - #56
Merged
Merged
Conversation
Adds the 7.1.0 release page and weaves the new APIs into the reference sections so they are discoverable outside the release notes. New pages: - readme/release-history/whats-new-with-7.1.0.md - digging-deeper/expectations/set-expectations.md - digging-deeper/expectations/range-expectations.md - digging-deeper/expectations/data-navigator.md Updated pages: - expectations README: withContext() and the collection expectation modes - matchers: the eight new matchers plus pointers to the new families - assertions README: isTruthy/isFalsy, includesAll/Any/None, grouped assertions - xunit primer assertions: assertAll() - custom matchers: context now flows through custom matcher failures - skipping specs and suites: class-level skip annotation - mockbox $args(): struct-order matching plus Set/Range support - code coverage: coverageEnabled now defaults to false - test bundles: isLucee() no longer returns true on BoxLang Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0126haQX77C4MLiK3fxwQ59A
The book already uses {% tabs %} with BoxLang first and CFML second
(README.md, overview.md, test-bundles.md), but the 7.1.0 pages were
written as plain ```javascript blocks with no tabs. This brings them in
line.
Dual-engine examples are now tabbed, BoxLang first:
- matchers, custom matchers, expectations README
- assertions README and the xUnit primer
- class-level skip annotation
- MockBox $args() struct matching
Tabs are grouped per section rather than per snippet, so a two-line
example does not become a twelve-line tab group.
BoxLang-only pages (Set, Range, Data Navigator) keep their hint callouts
and gain no tabs, since there is no CFML side to show. Their fences move
from javascript to java and their CFML-style semicolons are dropped.
The release page's BoxLang-only notes move from plain blockquotes to
{% hint %} callouts, matching the rest of the book.
Adds CLAUDE.md recording the convention: BoxLang is the preferred engine,
BoxLang-only features get hint callouts, dual-engine examples get tabs
with BoxLang first, plus the class/component, semicolon and fence-language
differences.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0126haQX77C4MLiK3fxwQ59A
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Documents the 7.1.0 release. Before this PR the book had no coverage of any 7.1.0 feature — not one of
withContext,expectAny,assertAll,toBeTruthy,toHaveSize,toBeASet,toBeRangeortoHavePathappeared anywhere.The release page alone would leave the new matchers undiscoverable in the reference sections, so the new APIs are also woven into the pages people actually reach for.
Companion to Ortus-Solutions/TestBox#209, which removes the
docs/folder from the framework repo. The changelog there links to the release page added here, so this should merge for that link to resolve.New pages
readme/release-history/whats-new-with-7.1.0.mddigging-deeper/expectations/set-expectations.mdSetmatchersdigging-deeper/expectations/range-expectations.mdRangematchersdigging-deeper/expectations/data-navigator.mdThe three reference pages are registered in
SUMMARY.mdunder Expectations, and the release page under Release History.Updated pages
digging-deeper/expectations/README.md—withContext()and the four collection expectation modes, with a table of what each mode passes ondigging-deeper/expectations/matchers.md— the eight new matchers added to the reference block, each with a worked section, plus links to the three new familiesdigging-deeper/assertions/README.md—isTruthy/isFalsy,includesAll/Any/None, and grouped assertions via$assert.all()getting-started/testbox-xunit-primer/assertions.md—assertAll()for the xUnit styledigging-deeper/expectations/custom-matchers.md— context now flows through custom matcher failuresgetting-started/testbox-bdd-primer/skipping-specs-and-suites.md— the class-levelskipannotationmocking/mockbox/mocking-methods/usdargs-method.md— struct-order matching andSet/Rangesupportdigging-deeper/code-coverage/—coverageEnablednow defaults tofalsegetting-started/test-bundles.md—isLucee()no longer returns true on BoxLangreadme/release-history/README.md— a 7.1 paragraph under the 7.x headingCorrections worth flagging
Three things were wrong or missing beyond a straight port:
skip, the MockBox changes and every bug fix are added here, under a new Bug Fixes and Improvements section.getting-started/test-bundles.mdalso had aisLuceetypo (missing parens) which is fixed in passing.Verification
SUMMARY.mdtarget resolves to a file on disk.mdlink in the touched pages resolvesProse follows the book's existing voice, and BoxLang-only features carry
{% hint %}callouts noting the engine requirement — the Range and Data Navigator matchers are guarded on CFML engines, and Data Navigator throwsTestBox.BoxLangFeatureNotAvailablethere.🤖 Generated with Claude Code
https://claude.ai/code/session_0126haQX77C4MLiK3fxwQ59A
Generated by Claude Code