@provartesting/provardx-cli 1.5.1 → 1.5.2-beta.3
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/lib/mcp/docs/PROVAR_TEST_STEP_REFERENCE.md +256 -78
- package/lib/mcp/prompts/loopPrompts.js +4 -3
- package/lib/mcp/prompts/loopPrompts.js.map +1 -1
- package/lib/mcp/rules/provar_best_practices_rules.json +59 -0
- package/lib/mcp/server.js +2 -1
- package/lib/mcp/server.js.map +1 -1
- package/lib/mcp/tools/antTools.d.ts +20 -0
- package/lib/mcp/tools/antTools.js +45 -3
- package/lib/mcp/tools/antTools.js.map +1 -1
- package/lib/mcp/tools/automationTools.js +44 -15
- package/lib/mcp/tools/automationTools.js.map +1 -1
- package/lib/mcp/tools/bestPracticesEngine.js +300 -9
- package/lib/mcp/tools/bestPracticesEngine.js.map +1 -1
- package/lib/mcp/tools/orgDescribeTools.d.ts +57 -0
- package/lib/mcp/tools/orgDescribeTools.js +329 -0
- package/lib/mcp/tools/orgDescribeTools.js.map +1 -0
- package/lib/mcp/tools/propertiesTools.d.ts +12 -0
- package/lib/mcp/tools/propertiesTools.js +113 -1
- package/lib/mcp/tools/propertiesTools.js.map +1 -1
- package/lib/mcp/tools/rcaTools.d.ts +17 -0
- package/lib/mcp/tools/rcaTools.js +51 -2
- package/lib/mcp/tools/rcaTools.js.map +1 -1
- package/lib/mcp/tools/testCaseGenerate.d.ts +1 -0
- package/lib/mcp/tools/testCaseGenerate.js +275 -12
- package/lib/mcp/tools/testCaseGenerate.js.map +1 -1
- package/lib/mcp/tools/testCaseValidate.d.ts +14 -1
- package/lib/mcp/tools/testCaseValidate.js +67 -21
- package/lib/mcp/tools/testCaseValidate.js.map +1 -1
- package/lib/mcp/tools/uiActionApiIds.d.ts +23 -0
- package/lib/mcp/tools/uiActionApiIds.js +46 -0
- package/lib/mcp/tools/uiActionApiIds.js.map +1 -0
- package/lib/mcp/utils/testCasePlanMode.d.ts +41 -0
- package/lib/mcp/utils/testCasePlanMode.js +208 -0
- package/lib/mcp/utils/testCasePlanMode.js.map +1 -0
- package/lib/mcp/utils/warningCodes.d.ts +10 -0
- package/lib/mcp/utils/warningCodes.js +19 -0
- package/lib/mcp/utils/warningCodes.js.map +1 -0
- package/oclif.manifest.json +1 -1
- package/package.json +2 -1
|
@@ -8,83 +8,90 @@
|
|
|
8
8
|
|
|
9
9
|
## API ID Reference
|
|
10
10
|
|
|
11
|
-
| Step Type
|
|
12
|
-
|
|
|
13
|
-
| **Connection**
|
|
14
|
-
| ApexConnect
|
|
15
|
-
| UiConnect
|
|
16
|
-
| **
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
|
|
|
65
|
-
|
|
|
66
|
-
|
|
|
67
|
-
|
|
|
68
|
-
| **
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
|
|
|
74
|
-
|
|
|
75
|
-
|
|
|
76
|
-
|
|
|
77
|
-
|
|
|
78
|
-
|
|
|
79
|
-
|
|
|
80
|
-
|
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
|
|
|
84
|
-
| **
|
|
85
|
-
|
|
|
86
|
-
|
|
|
87
|
-
|
|
|
11
|
+
| Step Type | API ID |
|
|
12
|
+
| ------------------------------------------------ | ------------------------------------------------------------------------ |
|
|
13
|
+
| **Connection** | |
|
|
14
|
+
| ApexConnect | `com.provar.plugins.forcedotcom.core.testapis.ApexConnect` |
|
|
15
|
+
| UiConnect | `com.provar.plugins.forcedotcom.core.ui.UiConnect` |
|
|
16
|
+
| **MS Dynamics / Power Platform** (Provar 3.0.7+) | |
|
|
17
|
+
| MSDynamics365Connect | `com.provar.plugins.forcedotcom.core.ui.NitroXConnect:ms-dynamics365` |
|
|
18
|
+
| MSDataverseConnect | `com.provar.plugins.forcedotcom.core.ui.NitroXConnect:ms-dataverse` |
|
|
19
|
+
| MSPowerAppConnect | `com.provar.plugins.forcedotcom.core.ui.NitroXConnect:ms-powerapp` |
|
|
20
|
+
| MSPowerPageConnect | `com.provar.plugins.forcedotcom.core.ui.NitroXConnect:ms-powerpage` |
|
|
21
|
+
| **Apex CRUD** | |
|
|
22
|
+
| ApexCreateObject | `com.provar.plugins.forcedotcom.core.testapis.ApexCreateObject` |
|
|
23
|
+
| ApexReadObject | `com.provar.plugins.forcedotcom.core.testapis.ApexReadObject` |
|
|
24
|
+
| ApexUpdateObject | `com.provar.plugins.forcedotcom.core.testapis.ApexUpdateObject` |
|
|
25
|
+
| ApexDeleteObject | `com.provar.plugins.forcedotcom.core.testapis.ApexDeleteObject` |
|
|
26
|
+
| ApexSoqlQuery | `com.provar.plugins.forcedotcom.core.testapis.ApexSoqlQuery` |
|
|
27
|
+
| **Apex Advanced** | |
|
|
28
|
+
| ApexBulk | `com.provar.plugins.forcedotcom.core.testapis.ApexBulk` |
|
|
29
|
+
| ApexExecute | `com.provar.plugins.forcedotcom.core.testapis.ApexExecute` |
|
|
30
|
+
| ApexConvertLead | `com.provar.plugins.forcedotcom.core.testapis.ApexConvertLead` |
|
|
31
|
+
| ApexExtractLayout | `com.provar.plugins.forcedotcom.core.testapis.ApexExtractLayout` |
|
|
32
|
+
| ApexAssertLayout | `com.provar.plugins.forcedotcom.core.testapis.ApexAssertLayout` |
|
|
33
|
+
| ApexApproveWorkItem | `com.provar.plugins.forcedotcom.core.testapis.ApexApproveWorkItem` |
|
|
34
|
+
| ApexSubmitForApproval | `com.provar.plugins.forcedotcom.core.testapis.ApexSubmitForApproval` |
|
|
35
|
+
| ApexLogForCleanup | `com.provar.plugins.forcedotcom.core.testapis.ApexLogForCleanup` |
|
|
36
|
+
| **UI Steps** | |
|
|
37
|
+
| UiWithScreen | `com.provar.plugins.forcedotcom.core.ui.UiWithScreen` |
|
|
38
|
+
| UiDoAction | `com.provar.plugins.forcedotcom.core.ui.UiDoAction` |
|
|
39
|
+
| UiAssert | `com.provar.plugins.forcedotcom.core.ui.UiAssert` |
|
|
40
|
+
| UiRead | `com.provar.plugins.forcedotcom.core.ui.UiRead` |
|
|
41
|
+
| UiFill | `com.provar.plugins.forcedotcom.core.ui.UiFill` |
|
|
42
|
+
| UiWithRow | `com.provar.plugins.forcedotcom.core.ui.UiWithRow` |
|
|
43
|
+
| UiHandleAlert | `com.provar.plugins.forcedotcom.core.ui.UiHandleAlert` |
|
|
44
|
+
| UiNavigate | `com.provar.plugins.forcedotcom.core.ui.UiNavigate` |
|
|
45
|
+
| **Control Flow** | |
|
|
46
|
+
| SetValues | `com.provar.plugins.bundled.apis.control.SetValues` |
|
|
47
|
+
| StepGroup | `com.provar.plugins.bundled.apis.control.StepGroup` |
|
|
48
|
+
| If | `com.provar.plugins.bundled.apis.If` |
|
|
49
|
+
| ForEach | `com.provar.plugins.bundled.apis.control.ForEach` |
|
|
50
|
+
| DoWhile | `com.provar.plugins.bundled.apis.control.DoWhile` |
|
|
51
|
+
| WaitFor | `com.provar.plugins.bundled.apis.control.WaitFor` |
|
|
52
|
+
| TryCatchFinally | `com.provar.plugins.bundled.apis.control.TryCatchFinally` |
|
|
53
|
+
| Switch | `com.provar.plugins.bundled.apis.Switch` |
|
|
54
|
+
| Sleep | `com.provar.plugins.bundled.apis.control.Sleep` |
|
|
55
|
+
| Fail | `com.provar.plugins.bundled.apis.control.Fail` |
|
|
56
|
+
| CallTest | `com.provar.plugins.bundled.apis.control.CallTest` |
|
|
57
|
+
| **Assertions** | |
|
|
58
|
+
| AssertValues | `com.provar.plugins.bundled.apis.AssertValues` |
|
|
59
|
+
| **BDD** | |
|
|
60
|
+
| Given | `com.provar.plugins.bundled.apis.bdd.Given` |
|
|
61
|
+
| When | `com.provar.plugins.bundled.apis.bdd.When` |
|
|
62
|
+
| Then | `com.provar.plugins.bundled.apis.bdd.Then` |
|
|
63
|
+
| And | `com.provar.plugins.bundled.apis.bdd.And` |
|
|
64
|
+
| But | `com.provar.plugins.bundled.apis.bdd.But` |
|
|
65
|
+
| **Design** | |
|
|
66
|
+
| ActualResult | `com.provar.plugins.bundled.apis.control.ActualResult` |
|
|
67
|
+
| DesignStep | `com.provar.plugins.bundled.apis.control.DesignStep` |
|
|
68
|
+
| **Database** | |
|
|
69
|
+
| DbConnect | `com.provar.plugins.bundled.apis.db.DbConnect` |
|
|
70
|
+
| DbRead | `com.provar.plugins.bundled.apis.db.DbRead` |
|
|
71
|
+
| DbInsert | `com.provar.plugins.bundled.apis.db.DbInsert` |
|
|
72
|
+
| DbUpdate | `com.provar.plugins.bundled.apis.db.DbUpdate` |
|
|
73
|
+
| DbDelete | `com.provar.plugins.bundled.apis.db.DbDelete` |
|
|
74
|
+
| SqlQuery | `com.provar.plugins.bundled.apis.db.SqlQuery` |
|
|
75
|
+
| **Web Service** | |
|
|
76
|
+
| WebConnect | `com.provar.plugins.bundled.apis.restservice.WebConnect` |
|
|
77
|
+
| RestRequest | `com.provar.plugins.bundled.apis.restservice.RestRequest` |
|
|
78
|
+
| SoapRequest | `com.provar.plugins.bundled.apis.restservice.SoapRequest` |
|
|
79
|
+
| **Messaging** | |
|
|
80
|
+
| PublishMessage | `com.provar.plugins.bundled.apis.messaging.PublishMessage` |
|
|
81
|
+
| Subscribe | `com.provar.plugins.bundled.apis.messaging.Subscribe` |
|
|
82
|
+
| ReceiveMessage | `com.provar.plugins.bundled.apis.messaging.ReceiveMessage` |
|
|
83
|
+
| SendMessage | `com.provar.plugins.bundled.apis.messaging.SendMessage` |
|
|
84
|
+
| **Utility** | |
|
|
85
|
+
| ListCompare | `com.provar.plugins.bundled.apis.list.ListCompare` |
|
|
86
|
+
| Match | `com.provar.plugins.bundled.apis.string.Match` |
|
|
87
|
+
| Read | `com.provar.plugins.bundled.apis.io.Read` |
|
|
88
|
+
| Write | `com.provar.plugins.bundled.apis.io.Write` |
|
|
89
|
+
| Split | `com.provar.plugins.bundled.apis.string.Split` |
|
|
90
|
+
| Replace | `com.provar.plugins.bundled.apis.string.Replace` |
|
|
91
|
+
| **ProvarAI / Labs** | |
|
|
92
|
+
| GenerateTestData | `com.provar.plugins.forcedotcom.core.testapis.generate.GenerateTestData` |
|
|
93
|
+
| GenerateTestCase | `com.provar.plugins.forcedotcom.core.testapis.GenerateTestCase` |
|
|
94
|
+
| PageObjectCleaner | `com.provar.plugins.bundled.apis.provarlabs.PageObjectCleaner` |
|
|
88
95
|
|
|
89
96
|
---
|
|
90
97
|
|
|
@@ -200,7 +207,7 @@ Opens a browser-only UI session. Use this when you have a separate ApexConnect f
|
|
|
200
207
|
|
|
201
208
|
## UI Steps
|
|
202
209
|
|
|
203
|
-
UI steps must always be nested inside a `UiWithScreen` block. Never place `UiDoAction`
|
|
210
|
+
UI steps must always be nested inside a `UiWithScreen` block. Never place any of the 7 UI action types (`UiDoAction`, `UiAssert`, `UiRead`, `UiFill`, `UiNavigate`, `UiWithRow`, `UiHandleAlert`) directly in the top-level `<steps>` list — they must descend from a `UiWithScreen` or `UiWithRow` ancestor through a `<clause name="substeps">` path. Validator rule **UI-NEST-STRUCT-001** fires once per offending step.
|
|
204
211
|
|
|
205
212
|
### UiWithScreen
|
|
206
213
|
|
|
@@ -568,6 +575,70 @@ Verifies field values or element state on the current screen. Must always includ
|
|
|
568
575
|
|
|
569
576
|
**Valid `comparisonType` values:** `EqualTo` | `NotEqualTo` | `Contains` | `NotContains` | `StartsWith` | `EndsWith` | `None`
|
|
570
577
|
|
|
578
|
+
### UiRead
|
|
579
|
+
|
|
580
|
+
Reads the current value of a field or element on the screen and binds it to a result variable so subsequent steps can reference it. Useful for capturing IDs from the URL bar, the value of a calculated field after Save, or any visible text whose value depends on prior screen state.
|
|
581
|
+
|
|
582
|
+
> The `locator` argument must use `class="uiLocator"` (validator rule **UI-LOCATOR-001**). In `provar_testcase_generate` the `locator` attribute is converted automatically.
|
|
583
|
+
|
|
584
|
+
```xml
|
|
585
|
+
<apiCall apiId="com.provar.plugins.forcedotcom.core.ui.UiRead"
|
|
586
|
+
name="UiRead" testItemId="9"
|
|
587
|
+
title="Read the Account Id">
|
|
588
|
+
<arguments>
|
|
589
|
+
<argument id="locator">
|
|
590
|
+
<value class="uiLocator" uri="sf:ui:locator?name=Id&binding=sf%3Aui%3Abinding%3Aobject%3Fobject%3DAccount%26field%3DId"/>
|
|
591
|
+
</argument>
|
|
592
|
+
<argument id="resultName">
|
|
593
|
+
<value class="value" valueClass="string">AccountId</value>
|
|
594
|
+
</argument>
|
|
595
|
+
<argument id="resultScope">
|
|
596
|
+
<value class="value" valueClass="string">Test</value>
|
|
597
|
+
</argument>
|
|
598
|
+
</arguments>
|
|
599
|
+
</apiCall>
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
**Locator URI format:** `sf:ui:locator?name=FIELD_NAME&binding=...` — the URL-encoded `binding` parameter is required for Salesforce field references.
|
|
603
|
+
|
|
604
|
+
### UiFill
|
|
605
|
+
|
|
606
|
+
Fills multiple fields on a form in a single step using a list of field-value pairs. Equivalent to a sequence of `UiDoAction` (`set`) calls but more compact when populating many fields at once.
|
|
607
|
+
|
|
608
|
+
> The `locator` argument must use `class="uiLocator"` (validator rule **UI-LOCATOR-001**). In `provar_testcase_generate` the `locator` attribute is converted automatically.
|
|
609
|
+
>
|
|
610
|
+
> **Best practice (rule UI-FILL-VERIFY-001):** follow each `UiFill` with a `UiAssert` to verify the fields actually accepted the values.
|
|
611
|
+
|
|
612
|
+
```xml
|
|
613
|
+
<apiCall apiId="com.provar.plugins.forcedotcom.core.ui.UiFill"
|
|
614
|
+
name="UiFill" testItemId="11"
|
|
615
|
+
title="Fill required Lead fields">
|
|
616
|
+
<arguments>
|
|
617
|
+
<argument id="locator">
|
|
618
|
+
<value class="uiLocator" uri="sf:ui:locator?name=LeadForm"/>
|
|
619
|
+
</argument>
|
|
620
|
+
<argument id="fieldValues">
|
|
621
|
+
<value class="valueList" mutable="Mutable">
|
|
622
|
+
<namedValues>
|
|
623
|
+
<namedValue name="LastName">
|
|
624
|
+
<value class="value" valueClass="string">Provar_TestLead</value>
|
|
625
|
+
</namedValue>
|
|
626
|
+
<namedValue name="Company">
|
|
627
|
+
<value class="value" valueClass="string">Provar Test Company</value>
|
|
628
|
+
</namedValue>
|
|
629
|
+
</namedValues>
|
|
630
|
+
</value>
|
|
631
|
+
</argument>
|
|
632
|
+
<argument id="captureBefore">
|
|
633
|
+
<value class="value" valueClass="string">false</value>
|
|
634
|
+
</argument>
|
|
635
|
+
<argument id="captureAfter">
|
|
636
|
+
<value class="value" valueClass="string">false</value>
|
|
637
|
+
</argument>
|
|
638
|
+
</arguments>
|
|
639
|
+
</apiCall>
|
|
640
|
+
```
|
|
641
|
+
|
|
571
642
|
### UiWithRow
|
|
572
643
|
|
|
573
644
|
Targets a specific row in a related list or table. Substeps inside the clause operate in the row context (locators can use `rowLocator` parameter for scoping).
|
|
@@ -822,6 +893,113 @@ Runs a SOQL query and stores results as a list variable. Always include `Id` and
|
|
|
822
893
|
|
|
823
894
|
---
|
|
824
895
|
|
|
896
|
+
## Microsoft Dynamics & Power Platform Steps (Provar 3.0.7+)
|
|
897
|
+
|
|
898
|
+
Four `NitroXConnect:ms-*` connection-step variants ship in Provar 3.0.7 for the Microsoft Dynamics 365 and Microsoft Power Platform product family. All four share a common apiId base (`com.provar.plugins.forcedotcom.core.ui.NitroXConnect`) and differ only in the suffix after the colon.
|
|
899
|
+
|
|
900
|
+
| Shorthand | Fully-qualified apiId | Product |
|
|
901
|
+
| -------------------- | ------------------------------- | ------------------------ |
|
|
902
|
+
| MSDynamics365Connect | `…NitroXConnect:ms-dynamics365` | Dynamics 365 (CRM/ERP) |
|
|
903
|
+
| MSDataverseConnect | `…NitroXConnect:ms-dataverse` | Dataverse (data backend) |
|
|
904
|
+
| MSPowerAppConnect | `…NitroXConnect:ms-powerapp` | Power Apps |
|
|
905
|
+
| MSPowerPageConnect | `…NitroXConnect:ms-powerpage` | Power Pages |
|
|
906
|
+
|
|
907
|
+
> **First-class generation:** all four shorthand names auto-expand via `provar_testcase_generate` to the fully-qualified runtime ID. Validation (`API-UNKNOWN-001`) recognises every variant.
|
|
908
|
+
|
|
909
|
+
### Shared arguments (all four variants)
|
|
910
|
+
|
|
911
|
+
| Argument | Required | Notes |
|
|
912
|
+
| --------------------- | -------- | ------------------------------------------------- |
|
|
913
|
+
| `connectionName` | yes | Reference to a UI connection configured in Provar |
|
|
914
|
+
| `resultName` | yes | Identifier for the connection result variable |
|
|
915
|
+
| `resultScope` | yes | `Test` / `Global` / `Folder` |
|
|
916
|
+
| `reuseConnectionName` | no | Reuse an existing browser session |
|
|
917
|
+
| `privateBrowsingMode` | no | Enable private/incognito mode |
|
|
918
|
+
| `webBrowser` | no | Override default browser |
|
|
919
|
+
|
|
920
|
+
### Variant-specific arguments
|
|
921
|
+
|
|
922
|
+
| Variant | Variant-specific args |
|
|
923
|
+
| ---------------- | ------------------------------ |
|
|
924
|
+
| `ms-dynamics365` | `appName` |
|
|
925
|
+
| `ms-dataverse` | _(none)_ |
|
|
926
|
+
| `ms-powerapp` | `powerAppName` |
|
|
927
|
+
| `ms-powerpage` | `environment`, `powerPageName` |
|
|
928
|
+
|
|
929
|
+
### Validation rules
|
|
930
|
+
|
|
931
|
+
- **`UI-NITROX-CONNECT-ARGS-001`** (critical) — rejects ApexConnect-only args (`autoCleanup`, `lightningMode`, `alreadyOpenBehaviour`, `closeAllPrimaryTabs`, `enableObjectIdLogging`, `quickUiLogin`, `uiApplicationName`, `cleanupConnectionName`) and rejects cross-variant args (e.g. `powerAppName` on `:ms-dynamics365`).
|
|
932
|
+
- **`UI-NITROX-VARIANT-ARG-001`** (minor) — flags missing or empty variant-specific args **unless** they are declared as runtime-bound parameters under `<generatedParameters>` (the data-driven test pattern, see below).
|
|
933
|
+
|
|
934
|
+
### Data-driven pattern (runtime-bound parameters)
|
|
935
|
+
|
|
936
|
+
When a variant-specific arg is left empty intentionally — because the value is supplied at runtime by a test plan or data table — declare it as a parameter in a sibling `<generatedParameters>` block. `UI-NITROX-VARIANT-ARG-001` recognises this pattern and stays silent.
|
|
937
|
+
|
|
938
|
+
```xml
|
|
939
|
+
<apiCall apiId="…NitroXConnect:ms-powerpage" name="NitroXConnect" testItemId="4"
|
|
940
|
+
title="MS Power Page Connect">
|
|
941
|
+
<arguments>
|
|
942
|
+
<argument id="connectionName"><value class="value" valueClass="string">UiConnection</value></argument>
|
|
943
|
+
<argument id="resultName"><value class="value" valueClass="string">MSPowerPageConnection</value></argument>
|
|
944
|
+
<argument id="resultScope"><value class="value" valueClass="string">Test</value></argument>
|
|
945
|
+
<argument id="environment"/>
|
|
946
|
+
<argument id="powerPageName"/>
|
|
947
|
+
</arguments>
|
|
948
|
+
<generatedParameters>
|
|
949
|
+
<apiParam group="ui" name="environment" title="Environment">
|
|
950
|
+
<type><textType/></type>
|
|
951
|
+
</apiParam>
|
|
952
|
+
<apiParam group="ui" name="powerPageName" title="Power Page Name">
|
|
953
|
+
<type><textType/></type>
|
|
954
|
+
</apiParam>
|
|
955
|
+
</generatedParameters>
|
|
956
|
+
</apiCall>
|
|
957
|
+
```
|
|
958
|
+
|
|
959
|
+
### Example: MSDynamics365Connect (literal args)
|
|
960
|
+
|
|
961
|
+
```xml
|
|
962
|
+
<apiCall apiId="com.provar.plugins.forcedotcom.core.ui.NitroXConnect:ms-dynamics365"
|
|
963
|
+
name="NitroXConnect" testItemId="1" title="MS Dynamics 365 Connect: (UiConnection)">
|
|
964
|
+
<arguments>
|
|
965
|
+
<argument id="connectionName"><value class="value" valueClass="string">UiConnection</value></argument>
|
|
966
|
+
<argument id="resultName"><value class="value" valueClass="string">MSDynamics365Connection</value></argument>
|
|
967
|
+
<argument id="resultScope"><value class="value" valueClass="string">Test</value></argument>
|
|
968
|
+
<argument id="appName"><value class="value" valueClass="string">Sales Hub</value></argument>
|
|
969
|
+
</arguments>
|
|
970
|
+
</apiCall>
|
|
971
|
+
```
|
|
972
|
+
|
|
973
|
+
### Example: MSDataverseConnect (no variant args)
|
|
974
|
+
|
|
975
|
+
```xml
|
|
976
|
+
<apiCall apiId="com.provar.plugins.forcedotcom.core.ui.NitroXConnect:ms-dataverse"
|
|
977
|
+
name="NitroXConnect" testItemId="2" title="MS Dataverse Connect: (UiConnection)">
|
|
978
|
+
<arguments>
|
|
979
|
+
<argument id="connectionName"><value class="value" valueClass="string">UiConnection</value></argument>
|
|
980
|
+
<argument id="resultName"><value class="value" valueClass="string">MSDataverseConnection</value></argument>
|
|
981
|
+
<argument id="resultScope"><value class="value" valueClass="string">Test</value></argument>
|
|
982
|
+
</arguments>
|
|
983
|
+
<generatedParameters/>
|
|
984
|
+
</apiCall>
|
|
985
|
+
```
|
|
986
|
+
|
|
987
|
+
### Example: MSPowerAppConnect
|
|
988
|
+
|
|
989
|
+
```xml
|
|
990
|
+
<apiCall apiId="com.provar.plugins.forcedotcom.core.ui.NitroXConnect:ms-powerapp"
|
|
991
|
+
name="NitroXConnect" testItemId="3" title="MS Power App Connect: (UiConnection)">
|
|
992
|
+
<arguments>
|
|
993
|
+
<argument id="connectionName"><value class="value" valueClass="string">UiConnection</value></argument>
|
|
994
|
+
<argument id="resultName"><value class="value" valueClass="string">MSPowerAppConnection</value></argument>
|
|
995
|
+
<argument id="resultScope"><value class="value" valueClass="string">Test</value></argument>
|
|
996
|
+
<argument id="powerAppName"><value class="value" valueClass="string">MyCanvasApp</value></argument>
|
|
997
|
+
</arguments>
|
|
998
|
+
</apiCall>
|
|
999
|
+
```
|
|
1000
|
+
|
|
1001
|
+
---
|
|
1002
|
+
|
|
825
1003
|
## Control Flow
|
|
826
1004
|
|
|
827
1005
|
### SetValues
|
|
@@ -52,8 +52,9 @@ Follow these steps in order:
|
|
|
52
52
|
formats, then continue.
|
|
53
53
|
|
|
54
54
|
3. **Map acceptance criteria to steps** — for each acceptance criterion, identify the corresponding Provar
|
|
55
|
-
step type: field fills → UiDoAction (set)
|
|
56
|
-
|
|
55
|
+
step type: field fills → UiDoAction (set) for one field at a time, or UiFill for multiple fields at once;
|
|
56
|
+
button clicks → UiDoAction (action); field checks → UiAssert; reading a value from the screen into a
|
|
57
|
+
variable → UiRead; API data setup → ApexCreateObject; API verification → ApexReadObject.
|
|
57
58
|
|
|
58
59
|
4. **Generate the test case** — produce a valid Provar XML test case that tests the story's acceptance
|
|
59
60
|
criteria. Base the structure entirely on the corpus examples. Follow these rules:
|
|
@@ -218,7 +219,7 @@ Follow these steps in order:
|
|
|
218
219
|
**Structure**
|
|
219
220
|
- [ ] Does the first UiWithScreen use navigate="Always" or "IfNecessary"?
|
|
220
221
|
- [ ] Do Edit/View UiWithScreen steps with navigate="Always" include sfUiTargetObjectId?
|
|
221
|
-
- [ ] Are all UiDoAction and
|
|
222
|
+
- [ ] Are all UiDoAction, UiAssert, UiRead, UiFill, UiNavigate, UiWithRow, and UiHandleAlert steps inside UiWithScreen substeps clauses?
|
|
222
223
|
|
|
223
224
|
**Unmapped steps**
|
|
224
225
|
- [ ] Are there any \`<!-- TODO: -->\` comments indicating steps that couldn't be automated?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loopPrompts.js","sourceRoot":"","sources":["../../../src/mcp/prompts/loopPrompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,iFAAiF;AAEjF,SAAS,WAAW,CAAC,WAA+B;IAClD,OAAO,WAAW;QAChB,CAAC,CAAC,+BAA+B,WAAW,EAAE;QAC9C,CAAC,CAAC,oFAAoF,CAAC;AAC3F,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,MAAM,CACX,sBAAsB,EACtB,mNAAmN,EACnN;QACE,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CACP,0QAA0Q,CAC3Q;QACH,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,6GAA6G,CAC9G;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,sGAAsG,CACvG;QACH,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,6GAA6G,CAC9G;KACJ,EACD,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACjD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"loopPrompts.js","sourceRoot":"","sources":["../../../src/mcp/prompts/loopPrompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -588,6 +588,36 @@
|
|
|
588
588
|
},
|
|
589
589
|
"source": "Provar API Reference: UiConnect vs ApexConnect"
|
|
590
590
|
},
|
|
591
|
+
{
|
|
592
|
+
"id": "UI-NITROX-CONNECT-ARGS-001",
|
|
593
|
+
"category": "ConnectionsAndEnvironments",
|
|
594
|
+
"name": "NitroX MS connect step has invalid arguments",
|
|
595
|
+
"description": "NitroXConnect:ms-* steps share a common argument set (connectionName, reuseConnectionName, privateBrowsingMode, resultName, resultScope, webBrowser) plus variant-specific args: ms-dynamics365 → appName; ms-powerapp → powerAppName; ms-powerpage → environment, powerPageName; ms-dataverse → none. NitroX MS variants do NOT support ApexConnect-only args (autoCleanup, lightningMode, alreadyOpenBehaviour, etc.) or arguments from sibling variants (e.g. powerAppName on ms-dynamics365).",
|
|
596
|
+
"appliesTo": ["Step"],
|
|
597
|
+
"severity": "critical",
|
|
598
|
+
"weight": 10,
|
|
599
|
+
"recommendation": "Remove invalid arguments from the NitroX MS connect step. Cross-variant args (e.g. powerAppName on ms-dynamics365) usually indicate the wrong apiId variant — verify which Microsoft product the step targets and update the apiId suffix accordingly.",
|
|
600
|
+
"check": {
|
|
601
|
+
"type": "nitroxConnectInvalidArgs",
|
|
602
|
+
"target": "step"
|
|
603
|
+
},
|
|
604
|
+
"source": "Provar 3.0.7 API Reference: NitroXConnect Microsoft variants"
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"id": "UI-NITROX-VARIANT-ARG-001",
|
|
608
|
+
"category": "ConnectionsAndEnvironments",
|
|
609
|
+
"name": "NitroX MS connect step missing variant-specific argument",
|
|
610
|
+
"description": "Variants ms-dynamics365 (appName), ms-powerapp (powerAppName), and ms-powerpage (environment, powerPageName) each have variant-specific arguments. They may be left empty when declared as runtime-bound parameters via <generatedParameters><apiParam name=\"...\"/> (the data-driven test pattern). Otherwise they should be populated to avoid runtime null binding.",
|
|
611
|
+
"appliesTo": ["Step"],
|
|
612
|
+
"severity": "minor",
|
|
613
|
+
"weight": 2,
|
|
614
|
+
"recommendation": "Either populate the argument with a literal/variable value, or declare it as a runtime parameter under <generatedParameters> for data-driven tests.",
|
|
615
|
+
"check": {
|
|
616
|
+
"type": "nitroxVariantArgRequired",
|
|
617
|
+
"target": "step"
|
|
618
|
+
},
|
|
619
|
+
"source": "Provar 3.0.7 API Reference: NitroXConnect Microsoft variants"
|
|
620
|
+
},
|
|
591
621
|
{
|
|
592
622
|
"id": "APEX-AUTOCLEANUP-001",
|
|
593
623
|
"category": "ConnectionsAndEnvironments",
|
|
@@ -2899,6 +2929,35 @@
|
|
|
2899
2929
|
},
|
|
2900
2930
|
"notes": "Provar internally stores dates as epoch timestamps (milliseconds since 1970-01-01). When valueClass='date' is used, Provar expects a numeric epoch value. String dates cause XML parsing/loading failures. All valid corpus examples use epoch timestamps with valueClass='date': 1637798400000, 1513209600000, etc.",
|
|
2901
2931
|
"source": "Corpus analysis: All valueClass='date' values are epoch timestamps; string dates cause Provar IDE load failures"
|
|
2932
|
+
},
|
|
2933
|
+
{
|
|
2934
|
+
"id": "UI-NEST-STRUCT-001",
|
|
2935
|
+
"category": "XMLSchema",
|
|
2936
|
+
"name": "UI action steps must be nested inside a UiWithScreen substeps clause",
|
|
2937
|
+
"description": "UiDoAction, UiAssert, UiRead, UiFill, UiNavigate, UiWithRow, and UiHandleAlert steps must descend from a UiWithScreen or UiWithRow ancestor through a <clause name=\"substeps\"> path. Control-flow wrappers (IfThen, ForEach, DoWhile, WaitFor, Switch) between the screen ancestor and the UI action are allowed. Steps inside <clause name=\"hidden\"> are exempt. When emitted flat (e.g. as siblings of UiWithScreen in the root <steps>), Provar IDE cannot bind them to a screen context and they will not render correctly.",
|
|
2938
|
+
"appliesTo": ["Step"],
|
|
2939
|
+
"severity": "major",
|
|
2940
|
+
"weight": 7,
|
|
2941
|
+
"recommendation": "Wrap each UI action inside a parent UiWithScreen using this structure:\n\n <apiCall apiId=\"com.provar.plugins.forcedotcom.core.ui.UiWithScreen\" ...>\n <arguments>...</arguments>\n <clauses>\n <clause name=\"substeps\" testItemId=\"...\">\n <steps>\n <apiCall apiId=\"...UiDoAction\" .../>\n <apiCall apiId=\"...UiWithRow\" ...> ... </apiCall>\n </steps>\n </clause>\n </clauses>\n </apiCall>\n\nUiWithRow may contain its own <clauses><clause name=\"substeps\"> with further UI actions inside. Control-flow wrappers (IfThen, ForEach, DoWhile, WaitFor) between the screen ancestor and the UI action are allowed; <clause name=\"hidden\"> is exempt (disabled/settings blocks).",
|
|
2942
|
+
"check": {
|
|
2943
|
+
"type": "uiActionNestingStructure",
|
|
2944
|
+
"target": "step",
|
|
2945
|
+
"uiActionApiIds": [
|
|
2946
|
+
"com.provar.plugins.forcedotcom.core.ui.UiDoAction",
|
|
2947
|
+
"com.provar.plugins.forcedotcom.core.ui.UiAssert",
|
|
2948
|
+
"com.provar.plugins.forcedotcom.core.ui.UiRead",
|
|
2949
|
+
"com.provar.plugins.forcedotcom.core.ui.UiFill",
|
|
2950
|
+
"com.provar.plugins.forcedotcom.core.ui.UiNavigate",
|
|
2951
|
+
"com.provar.plugins.forcedotcom.core.ui.UiWithRow",
|
|
2952
|
+
"com.provar.plugins.forcedotcom.core.ui.UiHandleAlert"
|
|
2953
|
+
],
|
|
2954
|
+
"screenContainerApiIds": [
|
|
2955
|
+
"com.provar.plugins.forcedotcom.core.ui.UiWithScreen",
|
|
2956
|
+
"com.provar.plugins.forcedotcom.core.ui.UiWithRow"
|
|
2957
|
+
]
|
|
2958
|
+
},
|
|
2959
|
+
"notes": "Mirrors QH UiActionNestingStructureValidator (lambda/src/validator/best_practices_engine.py). Emits one violation per offending step so that (rule_id, test_item_id) de-dups against the API. UiWithRow plays a dual role: itself a UI action that must be nested, and a container whose substeps clause satisfies the rule for its descendants.",
|
|
2960
|
+
"source": "Field observation: flat-emitted UI actions (sibling of UiWithScreen) fail to render in Provar IDE despite scoring 100/94 in earlier local validation"
|
|
2902
2961
|
}
|
|
2903
2962
|
]
|
|
2904
2963
|
}
|
package/lib/mcp/server.js
CHANGED
|
@@ -32,6 +32,7 @@ import { registerAllTestPlanTools } from './tools/testPlanTools.js';
|
|
|
32
32
|
import { registerAllNitroXTools } from './tools/nitroXTools.js';
|
|
33
33
|
import { registerAllTestCaseStepTools } from './tools/testCaseStepTools.js';
|
|
34
34
|
import { registerAllConnectionTools } from './tools/connectionTools.js';
|
|
35
|
+
import { registerAllOrgDescribeTools } from './tools/orgDescribeTools.js';
|
|
35
36
|
import { registerAllPrompts } from './prompts/index.js';
|
|
36
37
|
import { createDepthGuardState, wrapWithDepthGuard, } from './utils/tokenMeta.js';
|
|
37
38
|
import { desc } from './tools/descHelper.js';
|
|
@@ -56,7 +57,7 @@ const TOOL_GROUPS = {
|
|
|
56
57
|
registerAllTestCaseStepTools,
|
|
57
58
|
registerAllTestPlanTools,
|
|
58
59
|
],
|
|
59
|
-
inspect: [registerProjectInspect],
|
|
60
|
+
inspect: [registerProjectInspect, registerAllOrgDescribeTools],
|
|
60
61
|
connection: [registerAllConnectionTools],
|
|
61
62
|
rca: [registerAllRcaTools],
|
|
62
63
|
};
|
package/lib/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,cAAc,GAAY,WAAW,CAAC,oBAAoB,CAAyB,CAAC,OAAO,CAAC;AAClG,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GAGnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C,iFAAiF;AACjF,6EAA6E;AAC7E,MAAM,WAAW,GAA6E;IAC5F,MAAM,EAAE,CAAC,sBAAsB,CAAC;IAChC,UAAU,EAAE,CAAC,0BAA0B,CAAC;IACxC,UAAU,EAAE,CAAC,0BAA0B,EAAE,6BAA6B,EAAE,sBAAsB,CAAC;IAC/F,UAAU,EAAE;QACV,+BAA+B;QAC/B,mBAAmB;QACnB,0BAA0B;QAC1B,wBAAwB;QACxB,yBAAyB;QACzB,wBAAwB;QACxB,0BAA0B;KAC3B;IACD,SAAS,EAAE;QACT,wBAAwB;QACxB,0BAA0B;QAC1B,4BAA4B;QAC5B,wBAAwB;KACzB;IACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,15 +18,35 @@ export interface AntValidationResult {
|
|
|
18
18
|
}
|
|
19
19
|
/** Pure function — exported for unit testing */
|
|
20
20
|
export declare function validateAntXml(xmlContent: string): AntValidationResult;
|
|
21
|
+
export type JUnitErrorCategory = 'INFRASTRUCTURE' | 'ASSERTION' | 'LOCATOR' | 'TIMEOUT' | 'OTHER';
|
|
21
22
|
export interface JUnitStepResult {
|
|
22
23
|
testItemId: string;
|
|
23
24
|
title: string;
|
|
24
25
|
status: 'pass' | 'fail' | 'skip';
|
|
25
26
|
errorMessage?: string;
|
|
27
|
+
error_category?: JUnitErrorCategory;
|
|
28
|
+
retryable?: boolean;
|
|
26
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Classify a failure message into a coarse-grained category used for retry decisions.
|
|
32
|
+
* Mirrors the classifier in rcaTools.ts (PDX-490) so a downstream consumer sees the
|
|
33
|
+
* same labelling whether they consume `provar_automation_testrun.steps[]` or
|
|
34
|
+
* `provar_testrun_rca.failures[]`.
|
|
35
|
+
*
|
|
36
|
+
* Returns `undefined` when no pattern matches.
|
|
37
|
+
*/
|
|
38
|
+
export declare function classifyStepErrorCategory(errorText: string): JUnitErrorCategory | undefined;
|
|
39
|
+
/** Only transient categories (INFRASTRUCTURE, TIMEOUT) are retryable. */
|
|
40
|
+
export declare function isStepRetryable(category: JUnitErrorCategory | undefined): boolean | undefined;
|
|
27
41
|
export interface JUnitParseResult {
|
|
28
42
|
steps: JUnitStepResult[];
|
|
29
43
|
warning?: string;
|
|
44
|
+
/**
|
|
45
|
+
* True iff at least one JUnit XML file was located AND parsed without throwing.
|
|
46
|
+
* Distinguishes "we have data and the test selector matched zero cases" (legit RUN-001 signal)
|
|
47
|
+
* from "we have no data because nothing parsed" (insufficient info — must stay silent).
|
|
48
|
+
*/
|
|
49
|
+
parsedAny: boolean;
|
|
30
50
|
}
|
|
31
51
|
/**
|
|
32
52
|
* Scan a Provar results directory for JUnit XML files and return structured step results.
|