@decocms/parity 0.17.2 → 0.17.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/cli.js +17 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.17.3](https://github.com/decocms/parity/compare/v0.17.2...v0.17.3) (2026-07-28)
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
* **`open-minicart` fallback click when already-open drawer is empty (issue #159).** Sites that use a react-query on-demand cart (query `enabled` only when a cart-intent signal is `true`) never hydrate the drawer when it opens via an add-to-cart toast side-effect — the intent signal is only set on an explicit cart-icon click, so the panel renders empty and `validateCartContainsTitle` finds 0 items. When `cartOpenMethod === "already-open"` and validation returns `found=false`, parity now looks up the `minicartTrigger` and clicks it explicitly (mirroring what the user does), waits for cart hydration, then re-validates. The fallback is skipped entirely when the drawer hydrates normally via the initial validation.
|
|
15
|
+
|
|
10
16
|
## [0.17.0](https://github.com/decocms/parity/compare/v0.16.0...v0.17.0) (2026-07-28)
|
|
11
17
|
|
|
12
18
|
### Added
|
package/dist/cli.js
CHANGED
|
@@ -52089,7 +52089,23 @@ async function flowPurchaseJourney(ctx) {
|
|
|
52089
52089
|
}
|
|
52090
52090
|
let step7Validation;
|
|
52091
52091
|
if (expectedProductTitle && cartOpenMethod !== "failed") {
|
|
52092
|
-
|
|
52092
|
+
let v = await validateCartContainsTitle(page, expectedProductTitle, ctx);
|
|
52093
|
+
if (cartOpenMethod === "already-open" && !v.found) {
|
|
52094
|
+
const triggerSels = selFor(ctx, "minicartTrigger");
|
|
52095
|
+
for (const sel of triggerSels) {
|
|
52096
|
+
const el = page.locator(sel).first();
|
|
52097
|
+
if (await el.count()) {
|
|
52098
|
+
dlog2(ctx, "step 7: already-open drawer empty — force-clicking minicartTrigger (collapsed inside daisyUI drawer-content)");
|
|
52099
|
+
miniHit = { locator: el, selector: sel };
|
|
52100
|
+
await el.click({ force: true, timeout: 3000 }).catch(() => {
|
|
52101
|
+
return;
|
|
52102
|
+
});
|
|
52103
|
+
await waitForCartHydration(page);
|
|
52104
|
+
v = await validateCartContainsTitle(page, expectedProductTitle, ctx);
|
|
52105
|
+
break;
|
|
52106
|
+
}
|
|
52107
|
+
}
|
|
52108
|
+
}
|
|
52093
52109
|
let reasonText;
|
|
52094
52110
|
if (!v.found) {
|
|
52095
52111
|
if (v.observedTitles.length === 0) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decocms/parity",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.4",
|
|
4
4
|
"description": "E2E parity validator for site migrations. Compares prod vs cand and reports UI, functional, SEO, visual, and Web Vitals deltas with an LLM-ranked HTML report.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|