webpipe-js 2.0.45 → 2.0.46

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/dist/index.cjs CHANGED
@@ -1648,37 +1648,42 @@ function printTypeResolver(resolver) {
1648
1648
  return lines.join("\n");
1649
1649
  }
1650
1650
  function printMock(mock, indent = " ") {
1651
- const target = mock.target.replace(/\.(.*?)$/, " $1");
1651
+ const target = mock.target.replace(/^(query|mutation)\.(.*)$/, "$1 $2");
1652
1652
  return `${indent}with mock ${target} returning \`${mock.returnValue}\``;
1653
1653
  }
1654
1654
  function printCondition(condition, indent = " ") {
1655
1655
  const condType = condition.conditionType.toLowerCase();
1656
+ const formatConditionValue = (val) => {
1657
+ if (val.startsWith("`") || val.startsWith('"')) return val;
1658
+ const isBareTemplate = /^\{\{[^}]+\}\}$/.test(val);
1659
+ if (isBareTemplate) return val;
1660
+ const hasTemplateVars = /\{\{[^}]+\}\}/.test(val);
1661
+ if (hasTemplateVars) return `"${val}"`;
1662
+ if (val.includes("\n") || val.includes("{") && val.includes("}") || val.includes("[") && val.includes("]")) {
1663
+ return `\`${val}\``;
1664
+ }
1665
+ if (val.includes(" ") || val.includes(",")) return `"${val}"`;
1666
+ return val;
1667
+ };
1656
1668
  if (condition.isCallAssertion && condition.callTarget) {
1657
1669
  const [callType, callName] = condition.callTarget.split(".");
1658
- const value2 = condition.value.startsWith("`") ? condition.value : condition.value.includes("\n") || condition.value.includes("{") || condition.value.includes("[") ? `\`${condition.value}\`` : condition.value;
1659
- return `${indent}${condType} call ${callType} ${callName} ${condition.comparison} ${value2}`;
1670
+ return `${indent}${condType} call ${callType} ${callName} ${condition.comparison} ${formatConditionValue(condition.value)}`;
1660
1671
  }
1661
1672
  if (condition.field === "selector" && condition.selector && condition.domAssert) {
1662
1673
  const selector = condition.selector;
1663
- const formatValue = (val) => {
1664
- if (val.startsWith("`") || val.startsWith('"')) return val;
1665
- if (val.includes("\n") || val.includes("{") || val.includes("[")) return `\`${val}\``;
1666
- return `"${val}"`;
1667
- };
1668
1674
  if (condition.domAssert.kind === "Exists") {
1669
1675
  const operation = condition.comparison === "exists" ? "exists" : "does not exist";
1670
1676
  return `${indent}${condType} selector \`${selector}\` ${operation}`;
1671
1677
  } else if (condition.domAssert.kind === "Text") {
1672
- return `${indent}${condType} selector \`${selector}\` text ${condition.comparison} ${formatValue(condition.value)}`;
1678
+ return `${indent}${condType} selector \`${selector}\` text ${condition.comparison} ${formatConditionValue(condition.value)}`;
1673
1679
  } else if (condition.domAssert.kind === "Count") {
1674
1680
  return `${indent}${condType} selector \`${selector}\` count ${condition.comparison} ${condition.value}`;
1675
1681
  } else if (condition.domAssert.kind === "Attribute") {
1676
- return `${indent}${condType} selector \`${selector}\` attribute "${condition.domAssert.name}" ${condition.comparison} ${formatValue(condition.value)}`;
1682
+ return `${indent}${condType} selector \`${selector}\` attribute "${condition.domAssert.name}" ${condition.comparison} ${formatConditionValue(condition.value)}`;
1677
1683
  }
1678
1684
  }
1679
1685
  const fieldPart = condition.headerName ? `${condition.field} "${condition.headerName}"` : condition.jqExpr ? `${condition.field} \`${condition.jqExpr}\`` : condition.field;
1680
- const value = condition.value.startsWith("`") ? condition.value : condition.value.includes("\n") || condition.value.includes("{") || condition.value.includes("[") ? `\`${condition.value}\`` : condition.value;
1681
- return `${indent}${condType} ${fieldPart} ${condition.comparison} ${value}`;
1686
+ return `${indent}${condType} ${fieldPart} ${condition.comparison} ${formatConditionValue(condition.value)}`;
1682
1687
  }
1683
1688
  function printTest(test) {
1684
1689
  const lines = [];
package/dist/index.mjs CHANGED
@@ -1595,37 +1595,42 @@ function printTypeResolver(resolver) {
1595
1595
  return lines.join("\n");
1596
1596
  }
1597
1597
  function printMock(mock, indent = " ") {
1598
- const target = mock.target.replace(/\.(.*?)$/, " $1");
1598
+ const target = mock.target.replace(/^(query|mutation)\.(.*)$/, "$1 $2");
1599
1599
  return `${indent}with mock ${target} returning \`${mock.returnValue}\``;
1600
1600
  }
1601
1601
  function printCondition(condition, indent = " ") {
1602
1602
  const condType = condition.conditionType.toLowerCase();
1603
+ const formatConditionValue = (val) => {
1604
+ if (val.startsWith("`") || val.startsWith('"')) return val;
1605
+ const isBareTemplate = /^\{\{[^}]+\}\}$/.test(val);
1606
+ if (isBareTemplate) return val;
1607
+ const hasTemplateVars = /\{\{[^}]+\}\}/.test(val);
1608
+ if (hasTemplateVars) return `"${val}"`;
1609
+ if (val.includes("\n") || val.includes("{") && val.includes("}") || val.includes("[") && val.includes("]")) {
1610
+ return `\`${val}\``;
1611
+ }
1612
+ if (val.includes(" ") || val.includes(",")) return `"${val}"`;
1613
+ return val;
1614
+ };
1603
1615
  if (condition.isCallAssertion && condition.callTarget) {
1604
1616
  const [callType, callName] = condition.callTarget.split(".");
1605
- const value2 = condition.value.startsWith("`") ? condition.value : condition.value.includes("\n") || condition.value.includes("{") || condition.value.includes("[") ? `\`${condition.value}\`` : condition.value;
1606
- return `${indent}${condType} call ${callType} ${callName} ${condition.comparison} ${value2}`;
1617
+ return `${indent}${condType} call ${callType} ${callName} ${condition.comparison} ${formatConditionValue(condition.value)}`;
1607
1618
  }
1608
1619
  if (condition.field === "selector" && condition.selector && condition.domAssert) {
1609
1620
  const selector = condition.selector;
1610
- const formatValue = (val) => {
1611
- if (val.startsWith("`") || val.startsWith('"')) return val;
1612
- if (val.includes("\n") || val.includes("{") || val.includes("[")) return `\`${val}\``;
1613
- return `"${val}"`;
1614
- };
1615
1621
  if (condition.domAssert.kind === "Exists") {
1616
1622
  const operation = condition.comparison === "exists" ? "exists" : "does not exist";
1617
1623
  return `${indent}${condType} selector \`${selector}\` ${operation}`;
1618
1624
  } else if (condition.domAssert.kind === "Text") {
1619
- return `${indent}${condType} selector \`${selector}\` text ${condition.comparison} ${formatValue(condition.value)}`;
1625
+ return `${indent}${condType} selector \`${selector}\` text ${condition.comparison} ${formatConditionValue(condition.value)}`;
1620
1626
  } else if (condition.domAssert.kind === "Count") {
1621
1627
  return `${indent}${condType} selector \`${selector}\` count ${condition.comparison} ${condition.value}`;
1622
1628
  } else if (condition.domAssert.kind === "Attribute") {
1623
- return `${indent}${condType} selector \`${selector}\` attribute "${condition.domAssert.name}" ${condition.comparison} ${formatValue(condition.value)}`;
1629
+ return `${indent}${condType} selector \`${selector}\` attribute "${condition.domAssert.name}" ${condition.comparison} ${formatConditionValue(condition.value)}`;
1624
1630
  }
1625
1631
  }
1626
1632
  const fieldPart = condition.headerName ? `${condition.field} "${condition.headerName}"` : condition.jqExpr ? `${condition.field} \`${condition.jqExpr}\`` : condition.field;
1627
- const value = condition.value.startsWith("`") ? condition.value : condition.value.includes("\n") || condition.value.includes("{") || condition.value.includes("[") ? `\`${condition.value}\`` : condition.value;
1628
- return `${indent}${condType} ${fieldPart} ${condition.comparison} ${value}`;
1633
+ return `${indent}${condType} ${fieldPart} ${condition.comparison} ${formatConditionValue(condition.value)}`;
1629
1634
  }
1630
1635
  function printTest(test) {
1631
1636
  const lines = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webpipe-js",
3
- "version": "2.0.45",
3
+ "version": "2.0.46",
4
4
  "description": "Web Pipe parser",
5
5
  "license": "ISC",
6
6
  "author": "William Cotton",