Skip to content

Commit c0255ee

Browse files
authored
MQE-1861: Suite precondition failure when using <createData> with <re… (#744)
* MQE-1861: Suite precondition failure when using <createData> with <requiredEntity> * MQE-1861: Suite precondition failure when using <createData> with <requiredEntity> Added verification test
1 parent edb5c49 commit c0255ee

File tree

5 files changed

+43
-15
lines changed

5 files changed

+43
-15
lines changed

Diff for: dev/tests/verification/Resources/functionalSuiteHooks.txt

+24-5
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,33 @@ class functionalSuiteHooks extends \Codeception\GroupObject
5353
$webDriver->_initializeSession();
5454
}
5555
$webDriver->amOnPage("some.url"); // stepKey: before
56-
$createFields['someKey'] = "dataHere";
56+
$createOneFields['someKey'] = "dataHere";
5757
PersistedObjectHandler::getInstance()->createEntity(
58-
"create",
58+
"createOne",
5959
"suite",
60-
"createThis",
61-
$createFields
60+
"createEntityOne",
61+
[],
62+
$createOneFields
6263
);
63-
$webDriver->click(PersistedObjectHandler::getInstance()->retrieveEntityField('create', 'data', 'suite')); // stepKey: clickWithData
64+
PersistedObjectHandler::getInstance()->createEntity(
65+
"createTwo",
66+
"suite",
67+
"createEntityTwo",
68+
["createEntityOne"]
69+
);
70+
PersistedObjectHandler::getInstance()->createEntity(
71+
"createThree",
72+
"suite",
73+
"createEntityThree",
74+
[]
75+
);
76+
PersistedObjectHandler::getInstance()->createEntity(
77+
"createFour",
78+
"suite",
79+
"createEntityFour",
80+
["createEntityTwo", "createEntityThree"]
81+
);
82+
$webDriver->click(PersistedObjectHandler::getInstance()->retrieveEntityField('createTwo', 'data', 'suite')); // stepKey: clickWithData
6483
print("Entering Action Group [AC] actionGroupWithTwoArguments");
6584
$webDriver->see("John", msq("uniqueData") . "John"); // stepKey: seeFirstNameAC
6685
print("Exiting Action Group [AC] actionGroupWithTwoArguments");

Diff for: dev/tests/verification/Resources/functionalSuiteWithComments.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ class functionalSuiteWithComments extends \Codeception\GroupObject
5959
"create",
6060
"suite",
6161
"createThis",
62-
$createFields
62+
[],
63+
$createFields
6364
);
6465
print("<click stepKey=\"comment with element\" userInput=\"helloworld\"/>");
6566
$webDriver->click(PersistedObjectHandler::getInstance()->retrieveEntityField('create', 'data', 'suite')); // stepKey: clickWithData

Diff for: dev/tests/verification/TestModule/Suite/functionalSuiteHooks.xml

+10-2
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,18 @@
1313
</include>
1414
<before>
1515
<amOnPage url="some.url" stepKey="before"/>
16-
<createData entity="createThis" stepKey="create">
16+
<createData entity="createEntityOne" stepKey="createOne">
1717
<field key="someKey">dataHere</field>
1818
</createData>
19-
<click stepKey="clickWithData" userInput="$create.data$"/>
19+
<createData entity="createEntityTwo" stepKey="createTwo">
20+
<requiredEntity createDataKey="createEntityOne"/>
21+
</createData>
22+
<createData entity="createEntityThree" stepKey="createThree"/>
23+
<createData entity="createEntityFour" stepKey="createFour">
24+
<requiredEntity createDataKey="createEntityTwo"/>
25+
<requiredEntity createDataKey="createEntityThree"/>
26+
</createData>
27+
<click stepKey="clickWithData" userInput="$createTwo.data$"/>
2028
<actionGroup ref="actionGroupWithTwoArguments" stepKey="AC">
2129
<argument name="somePerson" value="simpleData"/>
2230
<argument name="anotherPerson" value="uniqueData"/>

Diff for: src/Magento/FunctionalTestingFramework/Suite/Generators/GroupClassGenerator.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -225,16 +225,16 @@ private function buildPersistenceMustacheArray($action, $entityArray)
225225
$action->getCustomActionAttributes()[TestGenerator::REQUIRED_ENTITY_REFERENCE];
226226

227227
// append entries for any required entities to this entry
228-
if (array_key_exists('requiredEntities', $action->getCustomActionAttributes())) {
229-
$entityArray[self::REQUIRED_ENTITY_KEY] =
230-
$this->buildReqEntitiesMustacheArray($action->getCustomActionAttributes());
228+
$requiredEntities = $this->buildReqEntitiesMustacheArray($action->getCustomActionAttributes());
229+
if (!array_key_exists(-1, $requiredEntities)) {
230+
$entityArray[self::REQUIRED_ENTITY_KEY] = $requiredEntities;
231231
}
232232

233233
// append entries for customFields if specified by the user.
234234
if (array_key_exists('customFields', $action->getCustomActionAttributes())) {
235235
$entityArray['customFields'] = $action->getStepKey() . 'Fields';
236236
}
237-
237+
238238
return $entityArray;
239239
}
240240

Diff for: src/Magento/FunctionalTestingFramework/Suite/views/partials/testActions.mustache

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ if ($webDriver->webDriver != null) {
1313
PersistedObjectHandler::getInstance()->createEntity(
1414
"{{stepKey}}",
1515
"suite",
16-
"{{entityName}}"{{#requiredEntities}},
17-
[$this->{{entityName}}{{^last}}, {{/last}}]{{/requiredEntities}}{{#customFields}},
18-
${{customFields}}{{/customFields}}
16+
"{{entityName}}",
17+
[{{#requiredEntities}}"{{entityName}}"{{^last}}, {{/last}}{{/requiredEntities}}]{{#customFields}},
18+
${{customFields}}{{/customFields}}
1919
);
2020
{{/createData}}
2121
{{#deleteData}}

0 commit comments

Comments
 (0)