Doc: Update matchers/introduction Matchers Introduction. Add shouldNot and waitToNot example Doc: matchers/introduction Matchers import info links next to examples Doc: browser/basic-configuration Browser Basic Config Java examples Add: matchers/value-change/ code should[Not] change matcher Add: auto generated servers/introduction Server id when none provided Add: matchers/same-instance sameInstance matcher Add: matchers/contain-exactly containExactly matcher Add: throwException code matcher accepts ValueMatchers in addition to String and Pattern Add: browser/finders-and-filters#filter-by-distance Nearby browser filter
Doc: servers/import-and-dependencies servers import Add: Limit matchers/introduction Matchers number of mismatch details printed by default via config matchersReportEntriesLimit Add: matchers/maps Equal Matcher adds asterisks around missing values in the actual output Add: matchers/java-beans-and-records#java-beans-contain-table-data Contain Matcher for iterable highlight the closest matches Add: matchers/java-beans-and-records#java-beans-contain-table-data Contain Matcher now prints potential mismatch details to look for Add: Map contains Map explicitly prints missing keys Add: list comparison prints missing and extra elements in a more compact way
Add: browser browser/finders-and-filters#parent-finder-by-css element.parent(css) Fix: actual value path is now printed with default terminal color and not with the previous token color Fix: servers/introduction Servers fullUrl now includes queryString Doc: matchers/strings#contains string contain Doc: matchers/strings#regexp string regexp Doc: matchers/tables TableData Matcher Add: matchers/any-value any value matcher Add: matchers/maps#contain Map Contain displays missing keys inlined Add: matchers/maps#equality-comparison Map Equal displays missing keys inlined Add: browser/tables#extracting-table-data Browser tableEl.extratTableData to get table data from a page Add: reference/table-data TableData .addRowsExistingColumnsOnly(otherTable) to merge other tables into Add: reference/table-data TableData .getColumnNames() shortcut Add: browser/tables browser.table to validate and scrap page data in tabular format Add: browser/tables#supported-tables-flavor browser.table AG Grid flavor Add: browser/introduction Browser visible matcher is now part of core matchers and not browser specific Add: anyOf and containAll matchers toString is pretty printable Add: servers/introduction Servers shortcut to access servers/server-router#request-properties queryParam Add: servers/introduction Servers request object now exposes query and pathWithQuery
Warning: Java 17+ JRE is required for version 2.0Warning: All deprecated methods from 1.x are now removed Fix: pretty printing tokenized messages properly resets bold font on tokens that should not use bold Add: Leverage junit5/getting-started JUnit5 listeners to generate report at the end of plan execution instead of shutdown hook Fix: Browser browser/page-element-and-value Page Element pretty print method falls back to a regular printing when can't parse HTML properly Doc: Simplified browser/page-element-and-value Browser Page Element Declaration Doc: use Java var in examples where it makes sense Doc: use browser.keys in browser/forms#custom-form-elements custom form element Breaking: remove DataRenderers in favor of PrettyPrinter Breaking: remove all deprecated methods Breaking: minimum Java requirement is 17 to build and to run Add: Do not print actual string values in case of failure when they have already been printed as part of mismatch details Add: Nested matchers/introduction Matchers are pretty printable Breaking: Browser browser/page-element-and-value Page Element is now a concrete class Breaking: Browser browser/page-element-and-value Page Element .getCount() and company replaced with .count Add: browser/alerts Browser Alert shortcuts Add: matchers/java-beans-and-records#java-records Java Records And Map/Table comparison Add: Browser browser/finders-and-filters#parent-finder el.parent Add: Report for browser/forms Browser Page Element setValue uses <enter> , <f1> etc for special symbols Add: Expose Browser browser/element-values-reference#attribute-value attribute value for streamlined assertion/waiting Add: web-socket/introduction WebSocket module is now using java.net.http module as implementation and not embedded tomcat Add: web-socket/header WebSocket Header Add: HTTP/introduction HTTP module is now using java.net.http module as implementation and not HttpURLConnection Add: reference/table-data TableData toString() uses pretty printed version without colors
Fix: groovy-standalone-runner/introduction Standalone Runner headless mode by default is back: no more java app popup Fix: WebTau won't attempt to reopen browser at the end of tests if there is a failed test with browser/page-element-and-value PageElement related assertions Doc: getting-started/what-is-this#scripting-and-junit mention scripting in the docs intro page Add: configuration/options#browserUseFakeMedia browserUseFakeMedia to bypass permission asking for microphone/camera Add: browser/page-element-and-value PageElement pretty print for REPL/notebooks now includes HTML representation and prints first ten elements Add: Expose browser/page-element-and-value PageElement extract html nodes Add: Browser browser/page-element-and-value Page Element highlight when run in https://github.com/Kotlin/kotlin-jupyter Kotlin Notebook Add: Print complete expected value in case of matcher failure, and not just first 5 lines Add: Expose cfg instead of getCfg through WebTauDsl for Kotlin Notebooks Add: shortcut to set base url from Kotlin Notebook Add: PrettyPrintableToHtmlConverter to use in https://github.com/Kotlin/kotlin-jupyter Kotlin Notebook Add: automatically recreate browser/introduction browser driver when user manually close it during REPL or Notebook experience Add: configuration/options#browserSameDriverInThreads browserSameDriverInThreads option to force the same browser instance when running code from Notebook cells
Add: tableVerticalSeparator option to override what vertical separator to use when printing TableData Add: disableConsoleOverallReport option to disable printing of overall test summary and report link
Fix: notEqual matchers/introduction Matcher now properly delegates to nested matcher such as anyOf Fix: containsAll matchers/introduction Matcher now properly renders java bean details when compared against multiple maps Fix: anyOf matchers/introduction Matcher now properly renders java bean details when compared against multiple maps Fix: matchers/introduction Matchers contain messages to use not in details report in case of shouldNot Fix: HTTP/introduction HTTP java module now automatically handles config file, without requiring larger WebTau dependency Fix: matchers Web Report mis-alignment fix Fix: chrome driver init workaround for origin to work with new chrome Doc: groovy-standalone-runner/IDE-setup IDE Setup for auto-completion Doc: redo getting-started/what-is-this WebTau intro and include HTTP Resource and Web Socket section Doc: HTTP/import-and-dependencies HTTP imports, and sprinkle links to the page from various HTTP pages Doc: Combined HTTP CRUD and CRUD separated pages into HTTP/CRUD-example CRUD Example Doc: continuous-integration/GitHub GitHub CI reports upload Doc: matchers/strings string matcher Add: matchers/custom-compare-to-handler#custom-complex-domain-data CompareToHandler convertedExpected . It now participates in matching step output and uses converted values for failed and matched messaging. Add: report/steps Steps reporter prints error details on a next line as long as there is additional pretty printed details present (even if one liner) Add: reference/table-data TableData Record is pretty printable Add: List Of Beans And Map matchers/java-beans-and-records#java-beans-contain-map contain Add: List Of Beans And Table matchers/java-beans-and-records#java-beans-contain-table-data contain Add: HTTP/introduction HTTP body HTTP/matchers#contain-table contain TableData Add: configuration/options#waitTick waitTick globally configurable value Add: HTTP/HTTP-resource HTTP Resource to define lazy values to be waited or asserted on later Add: DataNode is now part of core instead of http module Add: web-socket/introduction WebSocket support Add: browser handle set select form value browser/forms#select by text Add: add browser.element as alias to $ Add: string matcher matchers/strings#different-number-of-empty-lines extra new lines check Add: always render HTTP/introduction HTTP JSON request/response as multiline even when the content is small enough to fit a single line Add: Path pretty printable with different colors for file and extension Add: pretty print reference/table-data TableData inside maps as a block to maintain indentation Add: code matchers (e.g. should throw exception) is now a step and use tokenized colored messages
Fix: JUnit5 correctly registers failed matcher step Fix: HTML report long test names replaced with ellipsis Fix: Console output of failed steps and their output order at the end of tests run Fix: GraphQL/introduction GraphQL won't make schema calls for report when no GraphQL calls were performed during test Fix: matchers/introduction#waitto waitTo label fix preposition messaging Fix: remove extra spacing before delimiters when render report/steps Web Report Steps Doc: move report/tracing trace and report/warnings warning to their own documentation pages and document import prerequisites Doc: data/json#write-table-data data.json.write TableData add missing report output Doc: move junit5/getting-started JUnit5 to its own section Doc: JUnit5 junit5/dynamic-tests Dynamic Tests Java examples Add: Java config is handled when only webtau-core dependency is present. No need for junit specific dependency. Add: trace report/tracing#object-properties complex objects like list of java beans with nested beans Add: pretty print string in a special way when newline symbol is present Add: highlight elements inside lists that match criteria when shouldn't (when using shouldNot contain ) Add: initial pretty printer of class instances Add: use colored messages for matchers/introduction#failure-output failed assertion details Add: Display actual value with markers on Web Report in case of a failure Add: Pretty Print for Regexp Pattern instance with displaying flags Add: report/tracing tracing pretty prints complex values like maps and reference/table-data TableData Add: database/data-setup#cleaning-tables databaseTable.clear shortcut to delete from tables Add: reference/table-data#create-from-existing-rows TableData.fromRowsByKeys Add: Empty reference/table-data TableData pretty print explicitly states "empty" for empty tables Add: report/steps Steps input info additional indentation when printed to console Add: matchers/introduction Matchers only print minimal details in case of match, extra details in case of failure Add: matchers/introduction Matchers only print first 5 lines of expected for in progress message to reduce data duplication Add: Failed Test report/introduction#failed-test-summary Summary auto expands failed step and removed duplicated error message from parent step during rendering Add: matchers/introduction Matchers won't print failed matching details twice. Now it only prints during step rendering, and actual assertion message asks to check info above Add: reference/table-data TableData findByKey validation for keys presence and composite key size match Merge: database/introduction Database DatabaseFacade and Database to have consistent import of DB module only Add: database/introduction Database comparison and inserts automatically convert from camelCase to UNDER_SCORE Doc: database/introduction Database Spring Boot database/spring-boot-example Example Add: database/introduction Database pretty print query results in case of failure Add: database/introduction Database instance creation from explicit jdbc url Add: browser/introduction browser implicit browser/test-containers Test Containers support Add: browser/basic-configuration#access-to-base-url browser.getBaseUrlPort Add: matchers/java-beans-and-records#java-beans-equal-table-data Beans And Table comparison pretty prints beans as table Add: matchers/java-beans-and-records#java-bean-equals-map Bean And Map comparison pretty prints actual bean data in case of mismatch Add: reference/table-data TableData new comparison report with colors and better failure highlight Fix: properly render Arrays as actual instead of reference hash Add: list companion to map Add: data/json#parse-map data.json.mapFromString, data/json#parse-list data.json.listFromString, data/json#parse-tabledata data.json.tableFromString, data/json#parse-object data.json.objectFromString Add: renamed aMapOf to map and deprecated former Add: matchers/introduction waitTo on LiveValue support for greaterThan, lessThan kind of comparisons Add: pretty print output of actual value with failure markers in case of a matchers/introduction#failure-output Failed Matcher Add: matchers/introduction waitTo support for supplier Add: limit number of failed/errored tests printed at the end of run Add: configuration/options#consoleOutputCaptureDir consoleOutputCaptureDir for groovy-standalone-runner/introduction Groovy Standalone Runner Add: HTTP/body#form-url-encoded-data http.formDataUrlEncoded Add: data/base64 data.base64 to encode and decode strings Add: report/introduction Report shows first failed step in test summary instead of an exception message Add: Report shows warning icon next to tests with warnings Add: report/steps Steps, Trace, Warnings Java examples