Skip to content

Commit ed09ff1

Browse files
authored
Merge pull request #10660 from woocommerce/test/fix-create-order-ui-test
[UI Test] - Re-enable Create Order test
2 parents b3bc3e9 + fbccac8 commit ed09ff1

File tree

3 files changed

+24
-19
lines changed

3 files changed

+24
-19
lines changed

WooCommerce/src/androidTest/kotlin/com/woocommerce/android/e2e/helpers/util/Screen.kt

+19
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom
2323
import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed
2424
import androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA
2525
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
26+
import androidx.test.espresso.matcher.ViewMatchers.isEnabled
2627
import androidx.test.espresso.matcher.ViewMatchers.isNotChecked
2728
import androidx.test.espresso.matcher.ViewMatchers.withClassName
2829
import androidx.test.espresso.matcher.ViewMatchers.withId
@@ -96,6 +97,16 @@ open class Screen {
9697
}
9798
}
9899

100+
private fun isElementEnabled(element: Int): Boolean {
101+
return try {
102+
onView(withId(element))
103+
.check(matches(isEnabled()))
104+
true
105+
} catch (e: Throwable) {
106+
false
107+
}
108+
}
109+
99110
private fun isElementNotDisplayed(element: Int): Boolean {
100111
return try {
101112
onView(withId(element))
@@ -307,6 +318,14 @@ open class Screen {
307318
idleFor(1000) // allow for transitions
308319
}
309320

321+
fun waitForElementToBeEnabled(elementID: Int) {
322+
waitForConditionToBeTrue(
323+
Supplier<Boolean> {
324+
isElementEnabled(elementID)
325+
}
326+
)
327+
}
328+
310329
fun waitForElementToBeDisplayed(elementID: Int) {
311330
waitForConditionToBeTrue(
312331
Supplier<Boolean> {

WooCommerce/src/androidTest/kotlin/com/woocommerce/android/e2e/screens/orders/UnifiedOrderScreen.kt

+4-13
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ import com.woocommerce.android.R
1414
import com.woocommerce.android.e2e.helpers.util.NestedScrollViewExtension
1515
import com.woocommerce.android.e2e.helpers.util.Screen
1616
import org.hamcrest.CoreMatchers.endsWith
17-
import org.hamcrest.Matchers
1817
import org.hamcrest.core.AllOf.allOf
1918

2019
class UnifiedOrderScreen : Screen(R.id.order_creation_root) {
2120
fun createOrder(): SingleOrderScreen {
22-
clickOn(R.id.menu_create)
21+
waitForElementToBeEnabled(R.id.menu_create)
22+
Espresso.onView(withId(R.id.menu_create)).perform(click())
2323
return SingleOrderScreen()
2424
}
2525

@@ -60,18 +60,9 @@ class UnifiedOrderScreen : Screen(R.id.order_creation_root) {
6060
return this
6161
}
6262

63-
fun editCustomerNote(note: String): UnifiedOrderScreen {
64-
waitForElementToBeDisplayedWithoutFailure(R.id.notes_section)
65-
scrollTo(R.id.notes_section)
63+
fun addCustomerNote(note: String): UnifiedOrderScreen {
64+
Espresso.onView(withText(R.string.order_creation_add_customer_note)).perform(click())
6665

67-
val editNoteButton = Espresso.onView(
68-
Matchers.allOf(
69-
isDescendantOfA(withId(R.id.notes_section)),
70-
withId(R.id.edit_button)
71-
)
72-
)
73-
74-
clickOn(editNoteButton)
7566
typeTextInto(R.id.customerOrderNote_editor, note)
7667
clickOn(R.id.menu_done)
7768
return this

WooCommerce/src/androidTest/kotlin/com/woocommerce/android/e2e/tests/ui/OrdersUITest.kt

+1-6
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import dagger.hilt.android.testing.HiltAndroidRule
1818
import dagger.hilt.android.testing.HiltAndroidTest
1919
import org.json.JSONObject
2020
import org.junit.Before
21-
import org.junit.Ignore
2221
import org.junit.Rule
2322
import org.junit.Test
2423

@@ -48,11 +47,9 @@ class OrdersUITest : TestBase() {
4847
TabNavComponent().gotoOrdersScreen()
4948
}
5049

51-
@Ignore
5250
@Test
5351
fun e2eCreateOrderTest() {
5452
val note = "Just a placeholder text"
55-
val status = "Processing"
5653
val ordersJSONArray = MocksReader().readOrderToArray()
5754

5855
for (orderJSON in ordersJSONArray.iterator()) {
@@ -63,12 +60,10 @@ class OrdersUITest : TestBase() {
6360
OrderListScreen()
6461
.createFABTap()
6562
.assertNewOrderScreen()
66-
.updateOrderStatus(status)
63+
.addCustomerNote(note)
6764
.addProductTap()
6865
.assertProductsSelectorScreen(composeTestRule)
6966
.selectProduct(composeTestRule, orderData.productName)
70-
.editCustomerNote(note)
71-
.addShipping()
7267
.createOrder()
7368
.assertSingleOrderScreenWithProduct(orderData)
7469
.goBackToOrdersScreen()

0 commit comments

Comments
 (0)