UNPKG

@case-contract-testing/case

Version:

Next-generation contract testing suite

304 lines (203 loc) 26.6 kB
# Changelog All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines. ## [0.7.0](https://github.com/case-contract-testing/case/compare/v0.6.2...v0.7.0) (2023-04-07) ### ⚠ BREAKING CHANGES * Rename the verifier options triggers.verifiers to triggers.testResponses and triggers.errorVerifiers to triggers.testErrorResponses for consistency with the runExample DSL * Rename `contract.verifyContract` to `contract.runVerification` for consistency * Verification now supports reading contracts from a directory, to allow contract download from a broker. The interface to `verifyContract` has now changed - use contractFilename or contractDirectory instead of passing the raw contract. * Change the default to not publish contracts if not in CI. Set the new config option `publish: true` or `publish: "ALWAYS"` if you need the old behaviour of always publishing * All matcher and mock types are now prefixed with `case:`. This change allows extensions without naming clashes, but means any contracts prior to this version must be regenerated. ### Features * Add ability to publish verification results ([cc2b7c2](https://github.com/case-contract-testing/case/commit/cc2b7c287b4e08607cced24d1f6db1eb2d9cc1b1)) * Change the default to not publish contracts if not in CI. Set the new config option `publish: true` or `publish: "ALWAYS"` if you need the old behaviour of always publishing ([9ab6ca9](https://github.com/case-contract-testing/case/commit/9ab6ca9ad6319c8f0e9e6271849b835a56ed6799)) * Print broker response messages ([093d896](https://github.com/case-contract-testing/case/commit/093d896a0871e2a7d7ff913e7387453cd643b295)) * Verification now supports reading contracts from a directory, to allow contract download from a broker. The interface to `verifyContract` has now changed - use contractFilename or contractDirectory instead of passing the raw contract. ([e0b9fbb](https://github.com/case-contract-testing/case/commit/e0b9fbb441ab393bcfeb9fb987b424b698411514)) * When saving contracts, create contract directory if it doesn't already exist ([72f8edb](https://github.com/case-contract-testing/case/commit/72f8edbb3ebb7f38833109f12878edbfaa2549b6)) ### Bug Fixes * Correct parsing of Broker response messages ([f625168](https://github.com/case-contract-testing/case/commit/f6251687be2ae9ed9f8ba25981da1447754a55a9)) * Empty triggers.testResponses and triggers.testErrorResponses blocks are no longer required ([4a2d6e6](https://github.com/case-contract-testing/case/commit/4a2d6e67e7ac787cfbd2aaccd21a404435dcd354)) * Extend Jest's timeout during contract definition as well as verification ([db998a6](https://github.com/case-contract-testing/case/commit/db998a6b5fab44c6727bed4dc50cf2485434289d)) * Improve debug message when the trigger fails ([098050a](https://github.com/case-contract-testing/case/commit/098050ae6942638ddbac9c380e4237b84fe48007)) * Improve error message when publish is misconfigured ([fc0fb1e](https://github.com/case-contract-testing/case/commit/fc0fb1ef45e468c686630dfe8dd4c932410eb1bb)) ### Code Refactoring * All matcher and mock types are now prefixed with `case:`. This change allows extensions without naming clashes, but means any contracts prior to this version must be regenerated. ([945808b](https://github.com/case-contract-testing/case/commit/945808bba0f425b1defbeb766b7d2671baeea8d5)) * Rename `contract.verifyContract` to `contract.runVerification` for consistency ([b739ceb](https://github.com/case-contract-testing/case/commit/b739cebea5cbf7c232768fa17204c63854043a74)) * Rename the verifier options triggers.verifiers to triggers.testResponses and triggers.errorVerifiers to triggers.testErrorResponses for consistency with the runExample DSL ([a6fe848](https://github.com/case-contract-testing/case/commit/a6fe848cf0020b0aa0e7f4bd97aeab4ebd7540a1)) ## [0.6.2](https://github.com/case-contract-testing/case/compare/v0.6.1...v0.6.2) (2023-03-28) ### Features * Add stringifiedJson and encodedStringBase64 matchers ([5e992e7](https://github.com/case-contract-testing/case/commit/5e992e71bb34bba317b368a2f0f1b67b47798fc9)) * Use the advanced broker publishing endpoint instead of the old one ([070aee8](https://github.com/case-contract-testing/case/commit/070aee8d8426430dabb06efd8a01ef69e10b9841)) ### Miscellaneous Chores * release 0.6.2 ([de6504e](https://github.com/case-contract-testing/case/commit/de6504e8021a17a0b09259efb183cdc83cfe3ca3)) ## [0.6.1](https://github.com/case-contract-testing/case/compare/v0.6.0...v0.6.1) (2023-03-27) ### Bug Fixes * Tidy up boundary layer to improve importing in JSii ([6604996](https://github.com/case-contract-testing/case/commit/66049962d81556997a94ce0c5304e7061c752d9f)) ### Miscellaneous Chores * release 0.6.1 ([d34ee95](https://github.com/case-contract-testing/case/commit/d34ee95ee53765f4184076fde1b32720d5f5db3b)) ## [0.6.0](https://github.com/case-contract-testing/case/compare/v0.5.1...v0.6.0) (2023-03-26) ### ⚠ BREAKING CHANGES * Verification no longer throws an error if verification fails. The intended use is to use `can-i-deploy` to gate deployments. If you need failure (eg during development), set `throwOnFail: true` in the options. ### Features * Verification no longer throws an error if verification fails. The intended use is to use `can-i-deploy` to gate deployments. If you need failure (eg during development), set `throwOnFail: true` in the options. ([ee33690](https://github.com/case-contract-testing/case/commit/ee336900c6ff14cd6fcc7530c2175ea75e0b9978)) ### Bug Fixes * Add location information to title of the errors, improving readability ([1f740d9](https://github.com/case-contract-testing/case/commit/1f740d911b59344e77b5d02792b4f45031bf2dc1)) * Correct location string in the suffix matcher during describe (was incorrectly "prefix") ([a52efca](https://github.com/case-contract-testing/case/commit/a52efcad47d637020d916b4674d61990b6942043)) * Improve formatting of the thrown error when the assertions fail ([3a50dad](https://github.com/case-contract-testing/case/commit/3a50dad7b8ecadda8726a8c713fc66609e7cd3fb)) * Rename 'Test' -> 'Example' in the location tag printed in errors ([e8bddf6](https://github.com/case-contract-testing/case/commit/e8bddf68df08ffd1dc046d61bbaf0f0189b929ed)) * Substantially reduce the verbosity of the location hint in errors (unless logLevel is maintainerDebug or lower) ([63f3413](https://github.com/case-contract-testing/case/commit/63f3413f9023e9dc9694840c00ed5e9413716387)) ## [0.5.1](https://github.com/TimothyJones/case/compare/v0.5.0...v0.5.1) (2023-03-21) ### Features * **jest:** Use contract consumerName and providerName in describe block during contract validation ([9763035](https://github.com/TimothyJones/case/commit/9763035c24ea816f07e1ffe11648a6090e51e52e)) ### Bug Fixes * Remove an empty describe block present during contract verification in Jest ([e01070e](https://github.com/TimothyJones/case/commit/e01070e70d0c9720b30b289901756a7162b80492)) ### Miscellaneous Chores * release 0.5.1 ([4ee5bcb](https://github.com/TimothyJones/case/commit/4ee5bcb37e6dbca84b05f9a769e736fd0600f84e)) ## [0.5.0](https://github.com/TimothyJones/case/compare/v0.4.0...v0.5.0) (2023-03-21) ### ⚠ BREAKING CHANGES * Remove misnamed exports of CaseContract and CaseVerifier. Use the intended classes ContractDefiner and ContractVerifier instead * Rename VerifiyCaseJestCallback -> VerifyCaseJestCallback, fixing a typo in the name ### Features * Add ability to override config on a per-test level using an optional config parameter for runExample() and runRejectingExample() ([d3fe7de](https://github.com/TimothyJones/case/commit/d3fe7dedced31ad2bfc383a61ab254c56ade88ba)) * Add bearerToken() matcher for ease of auth headers; and a stringStateVariable() matcher for use when you know a variable is a string ([f9fa501](https://github.com/TimothyJones/case/commit/f9fa501f1b1783992181ee5cf54369502ab77050)) * Add download-contracts binary which can download contracts from a broker ([7c73360](https://github.com/TimothyJones/case/commit/7c7336091524c6d45f20e3b4ef1bf5599b2de382)) * Add uriEncodedString() matcher for URI encoded strings ([de7bdea](https://github.com/TimothyJones/case/commit/de7bdea6285aad973e94bdc2577616eb599898fe)) * **docs:** Defining contract documentation now written ([ab894ff](https://github.com/TimothyJones/case/commit/ab894ff9f7781c597851ba953262aeb1d81d2c0a)) * Expose config to test reponse functions during contract definition ([d237618](https://github.com/TimothyJones/case/commit/d237618449bfe1c55f2d1a7503a34a18015bd296)) * Support the Open Source Pact Broker by adding basic auth. Also added a basicAuth() matcher ([997c3ab](https://github.com/TimothyJones/case/commit/997c3abe8017fc67edca43b78f4ce06ac156b155)) ### Bug Fixes * Correct typo in httpStatus human-readable string (httpStaus -> httpStatus) ([70e44af](https://github.com/TimothyJones/case/commit/70e44af3d75d416eb4bae81b70552b844431b2fb)) * Don't try to publish a contract if there's no CI token set; instead just print a warning ([564aa6e](https://github.com/TimothyJones/case/commit/564aa6e2cbd88c7a15b1469b4cf029bd24c2e529)) * Fix a bug where it was possible to have a failed test ignored instead of leading to failure to write the contract ([757ebf8](https://github.com/TimothyJones/case/commit/757ebf87fa2f43ac402baa0c7297b5263ce09d52)) * Increase timeout for verifications in Jest to 30 seconds ([ce800c2](https://github.com/TimothyJones/case/commit/ce800c21ad95c566465eb5d81e5350a38ebb4bdf)) * Loosen type restriction when using variables from Config objects ([f8918d9](https://github.com/TimothyJones/case/commit/f8918d9f77c7c91cb8f5ab836e7a8ad3566c010e)) * Remove hack to match Pact file format as it is now not necessary ([30ddd7f](https://github.com/TimothyJones/case/commit/30ddd7f62c0c1815fe48d7a8a3f3812660e121de)) * Remove misnamed exports of CaseContract and CaseVerifier. Use the intended classes ContractDefiner and ContractVerifier instead ([5cd77aa](https://github.com/TimothyJones/case/commit/5cd77aaf6ad90b931c84ae282024079964da9832)) * Rename VerifiyCaseJestCallback -> VerifyCaseJestCallback, fixing a typo in the name ([d69c4b2](https://github.com/TimothyJones/case/commit/d69c4b258e2d2b3d140c567a5b605072a194eaf0)) ## [0.4.0](https://github.com/TimothyJones/case/compare/v0.3.0...v0.4.0) (2023-03-17) ### ⚠ BREAKING CHANGES * Rename ContractFile type ContractData ### Features * Add case version metadata to contract file ([479c27b](https://github.com/TimothyJones/case/commit/479c27bd73d260dc5813d61bc71c7bd7e0fcce88)) ### Code Refactoring * Rename ContractFile type ContractData ([0329b6c](https://github.com/TimothyJones/case/commit/0329b6c62c9e9f691721426c4fae1aa2e85d4d64)) ## [0.3.0](https://github.com/TimothyJones/case/compare/v0.2.0...v0.3.0) (2023-03-07) ### ⚠ BREAKING CHANGES * Change the automatic description of variables from ${varName} to {{varName}} * **jest:** Add verifyContract helper; rename caseContractWith to defineContract for consistency ### Features * Add ability to pass common config (statehandlers and triggers) to the contract at initialisation ([e30fe34](https://github.com/TimothyJones/case/commit/e30fe34063caccdc84ba156bab68fa9b3fc1849d)) * **jest:** Add verifyContract helper; rename caseContractWith to defineContract for consistency ([a035fc7](https://github.com/TimothyJones/case/commit/a035fc7e916f6663782d5f76e0a9e22c6d5510a5)) * Support query strings in http tests ([0909b4c](https://github.com/TimothyJones/case/commit/0909b4c795f6210671330ab05ccbc4ec55a80c25)) ### Bug Fixes * Change the automatic description of variables from ${varName} to {{varName}} ([eecab14](https://github.com/TimothyJones/case/commit/eecab14d02e7397b1affb3c107076b106b2cacc1)) * Print name of error instead of 'EXECUTION ERROR' when an execution error happens ([30610e5](https://github.com/TimothyJones/case/commit/30610e57a6a6aa67d0a9d532bd78e1ba9d3d802f)) ## [0.2.0](https://github.com/TimothyJones/case/compare/v0.1.0...v0.2.0) (2023-03-06) ### ⚠ BREAKING CHANGES * Remove info log level as it was never needed ### Features * Add ability to specifiy exact contract filename ([7ccf8de](https://github.com/TimothyJones/case/commit/7ccf8deda08772bea6ebc184227eb13c896e592b)) * Add deepMaintainerDebug log level ([673c3c2](https://github.com/TimothyJones/case/commit/673c3c2b418ac99d95a762be6b0f28d68609e9a2)) * Add native broker client ([465cf44](https://github.com/TimothyJones/case/commit/465cf44656cf5264bd5814804c4a853bff480b3e)) * Allow files to be uploaded to Pact Brokers ([4879b35](https://github.com/TimothyJones/case/commit/4879b354ef4e9a0e784126a63626eff9af8ec5b5)) * Extract Jest DSL for writing contracts ([a56bb1e](https://github.com/TimothyJones/case/commit/a56bb1e38512ce990b1cd5f812edd3d8c7af5f80)) ### Bug Fixes * Add Jest as a peer-dependency ([a48e861](https://github.com/TimothyJones/case/commit/a48e8614c3bfe5ca3611f42e9e403aaf32e7af91)) * Connect state variables to the config object that handlers receive ([76e4e49](https://github.com/TimothyJones/case/commit/76e4e49e5d7c4422ecdce2782ea7cadb939f5293)) * Don't log the config in the contract file ([4cf3922](https://github.com/TimothyJones/case/commit/4cf39228408208a87a0ff95cc6bb8faed55506a0)) * Ensure that version number in logs is always correct ([672301f](https://github.com/TimothyJones/case/commit/672301f4435c2e6f7a20e47f6fb7d5c0161f80e0)) * ensure the Assertable promise isn't left open if a trigger function fails ([7a6270d](https://github.com/TimothyJones/case/commit/7a6270dbc1c1198b0a5001d74b6ddd7004285370)) * Expose typescript types in compiled package ([0ad7502](https://github.com/TimothyJones/case/commit/0ad7502689bfe011ec50da784c15e5af119a857b)) * Remove info log level as it was never needed ([b6801b6](https://github.com/TimothyJones/case/commit/b6801b6b777d409c5d05308749557930dabcdcf8)) * Substantially improve error message when the verification of a trigger return object fails ([085df9b](https://github.com/TimothyJones/case/commit/085df9bdf68ddd833662f8031dfdefcca8b90eb4)) * upgrade axios from 1.3.1 to 1.3.2 ([c98b4a6](https://github.com/TimothyJones/case/commit/c98b4a6a9299c3e89fbe0e18b9787e146efde935)) * upgrade pretty-format from 29.3.1 to 29.4.1 ([951696e](https://github.com/TimothyJones/case/commit/951696e1f03d4b9d23ebd12dc22180b47925ba21)) ## [0.1.0](https://github.com/TimothyJones/case/compare/v0.0.2...v0.1.0) (2023-02-14) ### ⚠ BREAKING CHANGES * Replace interaction in contract file property names with mock * Change the name of the http interactions to make behaviour clearer ### Features * Add 'none' logLevel ([3cc6976](https://github.com/TimothyJones/case/commit/3cc6976b9bb805b53141168eb7b8cc0a4a29dd1a)) * Add ability for matchers to describe themselves, bringing in a substantially improved autoname ([3027c6c](https://github.com/TimothyJones/case/commit/3027c6c768d3b192ed7fe4391658714b48dd7a79)) * Add ability to get variables from provider state ([96b71c7](https://github.com/TimothyJones/case/commit/96b71c7969f3f99a188d0bf1f51730ec05dd37b6)) * Add ability to match headers ([e29da44](https://github.com/TimothyJones/case/commit/e29da4400178d3742eb54bc3ca8bf7a5ccc26779)) * Add logLevel matcher allowing fine grained control over logging ([e9e5c24](https://github.com/TimothyJones/case/commit/e9e5c24cf719907d9e9cf0f05924d4f070eecfaf)) * Add provider driven contract creation ([ba2d8a2](https://github.com/TimothyJones/case/commit/ba2d8a2b6bdea8ccbe9ca710a9e810c46dbb687b)) * Add stringPrefix and stringSuffix matchers ([824a69b](https://github.com/TimothyJones/case/commit/824a69bdd7f03ab56e46f304ad7ba4933ec555ba)) * Add trigger map for client verification ([163c10b](https://github.com/TimothyJones/case/commit/163c10be3069ffe944305bf2baabb28618f4447d)) * Added an option to control whether or not results are printed ([73a6b70](https://github.com/TimothyJones/case/commit/73a6b704eeca4f7abb962fcd28fbc87885b7f8cf)) ### Bug Fixes * Correct typo in error message ([9af1b04](https://github.com/TimothyJones/case/commit/9af1b04fd6cb291b0a6f3e678f1c417dd80b2b5e)) * Ensure that failure messages are printed if configuration errors happen during verification ([ed027ec](https://github.com/TimothyJones/case/commit/ed027ec604436e2086af0843b9ffefd2cf26235c)) * Improve formatting of http status describe ([60a8b1c](https://github.com/TimothyJones/case/commit/60a8b1c21294a9f8bc07e09c3ee65ca88a42ca0a)) * Prettify the contract file when writing so it is easier to read by humans ([98ca5c7](https://github.com/TimothyJones/case/commit/98ca5c7820fe2ac7331c9fdd549c71005badf286)) * Remove unnecessary getMatcher in mock setup, which makes mock setup significantly more flexible ([8688368](https://github.com/TimothyJones/case/commit/86883682ea9fb0acb204f71493ac49604bf354f9)) * Stop useing replaceAll (again) so that it compiles on node14 (again) ([f3686d1](https://github.com/TimothyJones/case/commit/f3686d113b3649c8932e2dca268d0cef7c9d9bac)) * Substantially improve formatting of names ([83767df](https://github.com/TimothyJones/case/commit/83767df52a447048df626f0e606a6e8eeccbe8f4)) * Use keep-alive false for http tests, avoiding any issues from repeated requests ([d876308](https://github.com/TimothyJones/case/commit/d876308824f778f70f53fee8668b1296cc43188e)) * Widen type for http request and responses ([23317d0](https://github.com/TimothyJones/case/commit/23317d0fc8748237004f3023fcb164780dd9f66b)) * Change the name of the http interactions to make behaviour clearer ([9b43ad9](https://github.com/TimothyJones/case/commit/9b43ad9ce0f58a399118429c4a034cae43c6e3ae)) * Replace interaction in contract file property names with mock ([0b46a29](https://github.com/TimothyJones/case/commit/0b46a29061446dbdbe30ddd73ba26caf8c46dabc)) ### [0.0.2](https://github.com/TimothyJones/case/compare/v0.0.1...v0.0.2) (2023-01-11) ### Features * Add `and` matcher ([6462e20](https://github.com/TimothyJones/case/commit/6462e208ac1433a9cc1133df448326a083ae58b9)) * Add ability to match arrays by shape ([15d2b43](https://github.com/TimothyJones/case/commit/15d2b439be8bc7e527374a8c256b7b594b621397)) * Add ability to specify contract dir by config ([1720fa6](https://github.com/TimothyJones/case/commit/1720fa6a9583271cc0c2dff6008d588003e11f7a)) * Add ability to strip matchers from responses ([6a01b80](https://github.com/TimothyJones/case/commit/6a01b80455f89bc8cf1e52312d54aeda98ef4015)) * Add ability to verify responses ([b736461](https://github.com/TimothyJones/case/commit/b7364615a06e3513859d77e79029edcd91431c4e)) * Add ability to write contract file ([4f7601b](https://github.com/TimothyJones/case/commit/4f7601bbf071b96352e4f4dfeac0261cd8c5917b)) * Add an array length matcher ([8359ca9](https://github.com/TimothyJones/case/commit/8359ca918d40eccfb0cbc2b72da6a7853b4200a9)) * Add arrayContains matcher ([e3d8f4d](https://github.com/TimothyJones/case/commit/e3d8f4d6618a1f295fb94bdf019a283c8969c71a)) * Add arrayEachItemMatches matcher ([9acc621](https://github.com/TimothyJones/case/commit/9acc621d0c5545992724831b530d401ab2098271)) * Add arrayStartsWith matcher ([6563924](https://github.com/TimothyJones/case/commit/6563924c76e92dc7aa0f7cc90386b2266919e2ac)) * Add boolean matcher ([2af6c36](https://github.com/TimothyJones/case/commit/2af6c367e7ba34287f86062c4156cbe393f853f0)) * Add classes for contracts, allowing configuration and multiple contracts ([4371909](https://github.com/TimothyJones/case/commit/437190957c37ed0247767b0e561b0b26928e3785)) * Add clear printing of results ([4f0c3aa](https://github.com/TimothyJones/case/commit/4f0c3aa6ec06ce582f069f9133ffe8ff64217d26)) * Add config types to make configuration easier ([142ddc4](https://github.com/TimothyJones/case/commit/142ddc4e5c0acc89339af02f1384e7486477d658)) * Add eachKeyLike matcher ([87ce5fc](https://github.com/TimothyJones/case/commit/87ce5fccad84efffd18a475aa4f67613e26ca7b7)) * Add exact matchers for primitives ([0407fba](https://github.com/TimothyJones/case/commit/0407fbada1bad89a75437a7cbc20ff7868c930d2)) * Add http matching ([a03493a](https://github.com/TimothyJones/case/commit/a03493adbf1ef4f820ccee128892d85df77307a8)) * Add http status matcher ([3d3c82e](https://github.com/TimothyJones/case/commit/3d3c82e49a4d3a1ac2b53ebf7f76ec7fa42a878e)) * Add initial skeleton and two json matchers ([7c6db2a](https://github.com/TimothyJones/case/commit/7c6db2aeaa80255b1cf5e415a1e245f1e7e70781)) * Add initial structure for http matching ([e475eeb](https://github.com/TimothyJones/case/commit/e475eeb34f475909ff4932e5ec903b53800b14aa)) * Add integer matcher ([c4d67a4](https://github.com/TimothyJones/case/commit/c4d67a4429cf25a45b7ca959cfc121206002616f)) * Add location information to errors ([8f17e8e](https://github.com/TimothyJones/case/commit/8f17e8e3e7ea8ec86b718993a25310fdb401312b)) * Add logger ([3c62a74](https://github.com/TimothyJones/case/commit/3c62a74a06bba890ce3a7ad22856d26f58fde97c)) * Add named (lookupable) matchers ([e1e0b82](https://github.com/TimothyJones/case/commit/e1e0b82a44cd2f94f05524ecfa9babc06065d1ae)) * Add object each value like ([bec4544](https://github.com/TimothyJones/case/commit/bec4544ad59f01f8994ea5325ec374eada9e7db3)) * Add object shape matcher ([aa74576](https://github.com/TimothyJones/case/commit/aa7457612e393e7e9d2d68ed0475c25a05a110d7)) * Add preverification of matcher / example combinations to checkMatch pathway ([711bfe7](https://github.com/TimothyJones/case/commit/711bfe7829ef415c7c6eddee460013dd56d684ac)) * Add provider states, and test with the contract written by the http request tests ([459b68a](https://github.com/TimothyJones/case/commit/459b68af3a66fc43de8fdd4c0e54f42a34b464c3)) * Add self-verification to all interactions ([affc4bb](https://github.com/TimothyJones/case/commit/affc4bb01e59dcc8418f78a9ec31664d8a1e8093)) * Add shapedLike matcher ([d62998b](https://github.com/TimothyJones/case/commit/d62998b86890371a5908e28be19b139866a313b4)) * Add skeleton for states ([3674b69](https://github.com/TimothyJones/case/commit/3674b69ec0e8934f1eba62bafc20bb05113b31b4)) * Add sketch of http get matcher ([d192f9d](https://github.com/TimothyJones/case/commit/d192f9d7592fdf557a45d337dc096d2d534e6b20)) * Add string includes matcher ([3b99f86](https://github.com/TimothyJones/case/commit/3b99f860bfd788d3ac92d8e306a0e17a0d519132)) * Add stripMatchers to dsl ([4660879](https://github.com/TimothyJones/case/commit/46608792de12051302136d58df221e5f4d938605)) * Check lookup matchers for raw equality ([0ef4a62](https://github.com/TimothyJones/case/commit/0ef4a6269c0079bbf1c265001e0c2da250ae3da8)) * Introduce cascading exact matcher ([b5051ee](https://github.com/TimothyJones/case/commit/b5051ee1b1b948e0f986891e0f3a40e49c1937d1)) ### Bug Fixes * Add ability to give log level to start and end contract ([19d70c4](https://github.com/TimothyJones/case/commit/19d70c49d1deee5fd9ff164cc063ba3ec07b4d25)) * Add location to logger output ([68ec2a6](https://github.com/TimothyJones/case/commit/68ec2a615e1267f0e7e45f2b0c8ba3ed08ecc7d8)) * Add log statements to the verification flow ([b45d642](https://github.com/TimothyJones/case/commit/b45d6421731912e46084d182c098c619e1d3c898)) * Add missing resolvesTo fields for remaining leaf matchers ([5d029f9](https://github.com/TimothyJones/case/commit/5d029f9c9f9488e9658fc9ede48a196975b0a0dd)) * Add test ids to logs ([8ed722b](https://github.com/TimothyJones/case/commit/8ed722b67157c2fc27cb1f05fbdb50a21b10e849)) * Add timestamp to logger and generally improve logging format ([15b81b6](https://github.com/TimothyJones/case/commit/15b81b6a3b1eb33239f92bdd738c57c4b7a619ca)) * Clarify type system for HTTP requests ([395b1ad](https://github.com/TimothyJones/case/commit/395b1adf59ef0177e6154b922e2ee5de0ee13ff6)) * Correct double location in some http contexts ([a924cab](https://github.com/TimothyJones/case/commit/a924cab02c13c12d1a0ba0f3474f2be79fc1a064)) * Correct issue with Date formats crashing on earlier versions of node ([6d5d08d](https://github.com/TimothyJones/case/commit/6d5d08deeda7fe4eadf159ade4c85bd9ff0e47dd)) * Correct newline handling in test output ([968c760](https://github.com/TimothyJones/case/commit/968c760c28770f9ce3d155e13db8aea61eede523)) * Generate test indexes at the top level of the contract instead of assuming 0 ([756bc93](https://github.com/TimothyJones/case/commit/756bc934136c18107b86e88c94786b346e2aa374)) * Improve formatting of location strings in logger and errors ([e4c8ce8](https://github.com/TimothyJones/case/commit/e4c8ce8ab3f6142b236206a334a5d57406cfc0db)) * Improve formatting of result titles ([eb03d57](https://github.com/TimothyJones/case/commit/eb03d570c2cc443639d6145afd96a9d7bd3811a0)) * Improve logger output ([9fb4f5d](https://github.com/TimothyJones/case/commit/9fb4f5ddc3b7302dbd1a67a58e7595fbc5c391c6)) * Improve logger output with colours ([e9c6735](https://github.com/TimothyJones/case/commit/e9c67358f3149d43f7a08353cb403deeedb2bc22)) * Improve state handler errors, and run state handlers sequentially ([30df87a](https://github.com/TimothyJones/case/commit/30df87a3731d51f6f73e6adc57a0c7c7cd262fd2)) * Improve warning message ([58eee00](https://github.com/TimothyJones/case/commit/58eee0073486f82f786ecee3768129373cae0c43)) * Make text for the maintainer-debug label black ([f6ec22f](https://github.com/TimothyJones/case/commit/f6ec22f5cbc778c6082e8d4ceeec6c7ac0ec5d28)) * No longer hard code baseUrl in http interaction ([6617a55](https://github.com/TimothyJones/case/commit/6617a554351c5552624366477d9225b7642352f6)) * prevent location context from putting a '.' before a ':' ([5fbee95](https://github.com/TimothyJones/case/commit/5fbee95b7b6771b7ce6be293b004537b9fae660c)) * Print the request destination when it fails verification ([dc10014](https://github.com/TimothyJones/case/commit/dc1001417a636e4affaad5f04fcc3911a719b59c)) * Slightly improve formatting of success message ([624b424](https://github.com/TimothyJones/case/commit/624b42446c32005c3bc295b004a9935a8f1cf6dc)) * Substantially improve rendering of actual values when it is not primitive ([42161cc](https://github.com/TimothyJones/case/commit/42161ccb32ed57556efdce0de913000d982501ef)) * Use random port for http tests, and improve test output ([8ca075c](https://github.com/TimothyJones/case/commit/8ca075ca9fab6129ece78bac7f47075e3fd8fba8)) * Use replace instead of replaceAll for node 14 ([713db9d](https://github.com/TimothyJones/case/commit/713db9d0bf1b51f326e3739bb9193755033b74df))