Skip to content

Commit 5c2ebda

Browse files
committed
MC-4892 : Convert CreateTaxRuleEntityTest to MFTF
1 parent 97b1838 commit 5c2ebda

12 files changed

+577
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminDeleteTaxRule">
12+
<arguments>
13+
<argument name="taxRuleCode" type="string" />
14+
</arguments>
15+
<amOnPage url="{{AdminTaxRuleGridPage.url}}" stepKey="goToTaxRuleGridPage"/>
16+
<click selector="{{AdminDataGridHeaderSection.clearFilters}}" stepKey="clickClearFilters"/>
17+
<fillField selector="{{AdminTaxRuleGridSection.code}}" userInput="{{taxRuleCode}}" stepKey="fillTaxRuleCode"/>
18+
<click selector="{{AdminTaxRuleGridSection.search}}" stepKey="clickSearch"/>
19+
<waitForPageLoad stepKey="waitForTaxRuleSearch" />
20+
<click selector="{{AdminTaxRuleGridSection.nthRow('1')}}" stepKey="clickFirstRow"/>
21+
<waitForPageLoad stepKey="waitForPageLoad" />
22+
<click selector="{{AdminTaxRuleFormSection.deleteRule}}" stepKey="clickDeleteRule"/>
23+
<click selector="{{AdminTaxRuleFormSection.ok}}" stepKey="clickOk"/>
24+
</actionGroup>
25+
</actionGroups>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
10+
<entity name="defaultTaxClass" type="taxClass">
11+
<data key="class_name" unique="suffix">Tax Class </data>
12+
</entity>
13+
<entity name="customerTaxClass" type="taxClass">
14+
<data key="class_name" unique="suffix">Customer Tax Class </data>
15+
<data key="class_type">CUSTOMER</data>
16+
</entity>
17+
<entity name="productTaxClass" type="taxClass">
18+
<data key="class_name" unique="suffix">Product Tax Class </data>
19+
<data key="class_type">PRODUCT</data>
20+
</entity>
21+
<entity name="retailCustomerTaxClass">
22+
<data key="class_name">Retail Customer</data>
23+
<data key="class_type">CUSTOMER</data>
24+
</entity>
25+
<entity name="taxableGoodsTaxClass">
26+
<data key="class_name">Taxable Goods</data>
27+
<data key="class_type">PRODUCT</data>
28+
</entity>
29+
</entities>

app/code/Magento/Tax/Test/Mftf/Data/TaxRateData.xml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,27 @@
1818
<data key="zip_is_range">0</data>
1919
<data key="rate">10</data>
2020
</entity>
21+
<entity name="US_CA_Rate_1" type="taxRate">
22+
<data key="id">1</data>
23+
<data key="code">US-CA-*-Rate 1</data>
24+
<data key="tax_country_id">US</data>
25+
<data key="tax_postcode">*</data>
26+
<data key="rate">8.2500</data>
27+
</entity>
28+
<entity name="US_NY_Rate_1" type="taxRate">
29+
<data key="code">US-NY-*-Rate 1</data>
30+
<data key="tax_country_id">US</data>
31+
<data key="tax_postcode">*</data>
32+
<data key="rate">8.3750</data>
33+
<data key="id">2</data>
34+
</entity>
35+
<entity name="taxRate_US_NY_8_1" type="taxRate">
36+
<data key="code" unique="suffix">US-NY-*-</data>
37+
<data key="tax_country_id">US</data>
38+
<data key="tax_region_id">43</data>
39+
<data key="tax_postcode">*</data>
40+
<data key="rate">8.1</data>
41+
</entity>
2142
<entity name="taxRateCustomRateUS" type="taxRate">
2243
<data key="code" unique="suffix">Tax Rate </data>
2344
<data key="tax_country_id">US</data>

app/code/Magento/Tax/Test/Mftf/Data/TaxRuleData.xml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,52 @@
2323
</array>
2424
<data key="calculate_subtotal">true</data>
2525
</entity>
26+
<entity name="taxRuleWithCustomPriorityPosition" type="taxRule">
27+
<data key="code" unique="suffix">TaxRule</data>
28+
<data key="position">1</data>
29+
<data key="priority">1</data>
30+
<array key="customer_tax_class_ids">
31+
<item>3</item>
32+
</array>
33+
<array key="product_tax_class_ids">
34+
<item>2</item>
35+
</array>
36+
<array key="tax_rate_ids">
37+
<item>1</item>
38+
<item>2</item>
39+
</array>
40+
<data key="calculate_subtotal">true</data>
41+
</entity>
42+
<entity name="taxRuleWithCustomPriority" type="taxRule">
43+
<data key="code" unique="suffix">TaxRule</data>
44+
<data key="position">0</data>
45+
<data key="priority">1</data>
46+
<array key="customer_tax_class_ids">
47+
<item>3</item>
48+
</array>
49+
<array key="product_tax_class_ids">
50+
<item>2</item>
51+
</array>
52+
<array key="tax_rate_ids">
53+
<item>1</item>
54+
<item>2</item>
55+
</array>
56+
<data key="calculate_subtotal">true</data>
57+
</entity>
58+
<entity name="taxRuleWithCustomPosition" type="taxRule">
59+
<data key="code" unique="suffix">TaxRule</data>
60+
<data key="position">1</data>
61+
<data key="priority">0</data>
62+
<array key="customer_tax_class_ids">
63+
<item>3</item>
64+
</array>
65+
<array key="product_tax_class_ids">
66+
<item>2</item>
67+
</array>
68+
<array key="tax_rate_ids">
69+
<item>1</item>
70+
<item>2</item>
71+
</array>
72+
<data key="calculate_subtotal">true</data>
73+
</entity>
2674
</entities>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<operations xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataOperation.xsd">
10+
<operation name="CreateTaxClass" dataType="taxClass" type="create" auth="adminOauth" url="/V1/taxClasses" method="POST" returnRegex="/\d+/">
11+
<contentType>application/json</contentType>
12+
<object dataType="taxClass" key="taxClass">
13+
<field key="id">integer</field>
14+
<field key="class_id">integer</field>
15+
<field key="class_name" required="true">string</field>
16+
<field key="class_type">string</field>
17+
</object>
18+
</operation>
19+
<operation name="GetTaxClass" dataType="taxClass" type="get" auth="adminOauth" url="/V1/taxClasses/{return}" method="GET">
20+
<contentType>application/json</contentType>
21+
</operation>
22+
<operation name="DeleteTaxClass" dataType="taxClass" type="delete" auth="adminOauth" url="/V1/taxClasses/{return}" method="DELETE">
23+
<contentType>application/json</contentType>
24+
</operation>
25+
</operations>

app/code/Magento/Tax/Test/Mftf/Section/AdminTaxRuleFormSection.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,19 @@
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1111
<section name="AdminTaxRuleFormSection">
1212
<element name="taxIdentifier" type="input" selector="input.admin__control-text admin__action-multiselect-search"/>
13+
<element name="code" type="input" selector="#code"/>
14+
<element name="taxRateSearch" type="input" selector="input[data-role='advanced-select-text']"/>
15+
<element name="taxRateSelected" type="input" selector="//span[contains(., '{{taxRateCode}}') and preceding-sibling::input[contains(@class, 'mselect-checked')]]" parameterized="true" />
16+
<element name="taxRateOption" type="multiselect" selector="//*[@data-ui-id='tax-rate-form-fieldset-element-form-field-tax-rate']//span[.='{{taxRateCode}}']" parameterized="true" />
17+
<element name="save" type="button" selector="#save"/>
18+
<element name="deleteRule" type="button" selector="#delete" />
19+
<element name="ok" type="button" selector="button.action-primary.action-accept" timeout="30"/>
20+
<element name="additionalSettings" type="button" selector="#details-summarybase_fieldset"/>
21+
<element name="customerTaxClassOption" type="checkbox" selector="//*[@id='tax_customer_class']/..//span[.='{{taxCustomerClass}}']" parameterized="true"/>
22+
<element name="productTaxClassOption" type="checkbox" selector="//*[@id='tax_product_class']/..//span[.='{{taxProductClass}}']" parameterized="true"/>
23+
<element name="customerTaxClassSelected" type="checkbox" selector="//*[@id='tax_customer_class']/..//span[.='{{taxCustomerClass}}' and preceding-sibling::input[contains(@class, 'mselect-checked')]]" parameterized="true"/>
24+
<element name="productTaxClassSelected" type="checkbox" selector="//*[@id='tax_product_class']/..//span[.='{{taxProductClass}}' and preceding-sibling::input[contains(@class, 'mselect-checked')]]" parameterized="true"/>
25+
<element name="priority" type="text" selector="#priority"/>
26+
<element name="sortOrder" type="text" selector="#position"/>
1327
</section>
1428
</sections>

app/code/Magento/Tax/Test/Mftf/Section/AdminTaxRuleGridSection.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1111
<section name="AdminTaxRuleGridSection">
1212
<element name="add" type="button" selector="#add" timeout="30"/>
13+
<element name="code" type="input" selector="#taxRuleGrid_filter_code"/>
14+
<element name="taxRate" type="input" selector="#taxRuleGrid_filter_tax_rates_codes"/>
15+
<element name="search" type="button" selector=".admin__filter-actions button[data-action='grid-filter-apply']"/>
16+
<element name="nthRow" type="block" selector="tr[data-role='row']:nth-of-type({{var}})" parameterized="true" timeout="30"/>
17+
<element name="successMessage" type="text" selector="#messages"/>
1318
</section>
1419
</sections>
1520

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="AdminCreateDefaultsTaxRule">
12+
<annotations>
13+
<stories value="Create tax rule"/>
14+
<title value="Create tax rule, defaults"/>
15+
<description value="Test log in to Create Tax Rule and Create Defaults Tax Rule"/>
16+
<testCaseId value="MC-5323"/>
17+
<severity value="CRITICAL"/>
18+
<group value="tax"/>
19+
<group value="mtf_migrated"/>
20+
</annotations>
21+
<before>
22+
<createData entity="defaultTaxRate" stepKey="initialTaxRate"/>
23+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
24+
</before>
25+
<after>
26+
<actionGroup ref="AdminDeleteTaxRule" stepKey="deleteTaxRule">
27+
<argument name="taxRuleCode" value="{{SimpleTaxRule.code}}" />
28+
</actionGroup>
29+
<deleteData stepKey="deleteTaxRate" createDataKey="initialTaxRate" />
30+
</after>
31+
32+
<amOnPage url="{{AdminTaxRuleGridPage.url}}" stepKey="goToTaxRuleIndex1"/>
33+
<click selector="{{AdminTaxRuleGridSection.add}}" stepKey="clickAddNewTaxRuleButton"/>
34+
<waitForPageLoad stepKey="waitForTaxRuleIndex1"/>
35+
<!-- Create a tax rule with defaults -->
36+
<fillField selector="{{AdminTaxRuleFormSection.code}}" userInput="{{SimpleTaxRule.code}}" stepKey="fillTaxRuleCode1"/>
37+
<fillField selector="{{AdminTaxRuleFormSection.taxRateSearch}}" userInput="$$initialTaxRate.code$$" stepKey="fillTaxRateSearch"/>
38+
<wait stepKey="waitForSearch" time="5" />
39+
<click selector="{{AdminTaxRuleFormSection.taxRateOption($$initialTaxRate.code$$)}}" stepKey="selectNeededItem" />
40+
<click selector="{{AdminTaxRuleFormSection.save}}" stepKey="saveTaxRule" />
41+
<waitForPageLoad stepKey="waitForTaxRuleSaved" />
42+
<!-- Verify we see success message -->
43+
<see selector="{{AdminTaxRuleGridSection.successMessage}}" userInput="You saved the tax rule." stepKey="assertTaxRuleSuccessMessage" />
44+
45+
<!-- Verify we see created tax rule with defaults(from the above step) on the tax rule grid page -->
46+
<click selector="{{AdminDataGridHeaderSection.clearFilters}}" stepKey="clickClearFilters2"/>
47+
<fillField selector="{{AdminTaxRuleGridSection.code}}" userInput="{{SimpleTaxRule.code}}" stepKey="fillTaxRuleCode2"/>
48+
<click selector="{{AdminTaxRuleGridSection.search}}" stepKey="clickSearch2"/>
49+
<waitForPageLoad stepKey="waitForTaxRuleSearch" />
50+
<click selector="{{AdminTaxRuleGridSection.nthRow('1')}}" stepKey="clickFirstRow2"/>
51+
52+
<!-- Verify we see created tax rule with defaults on the tax rule form page -->
53+
<seeInField selector="{{AdminTaxRuleFormSection.code}}" userInput="{{SimpleTaxRule.code}}" stepKey="seeInTaxRuleField" />
54+
<seeElement selector="{{AdminTaxRuleFormSection.taxRateSelected($$initialTaxRate.code$$)}}" stepKey="seeTaxRateSelected" />
55+
</test>
56+
</tests>

0 commit comments

Comments
 (0)