package com.example.orders import androidx.test.espresso.IdlingPolicies import androidx.test.espresso.Espresso.onView import androidx.test.espresso.action.ViewActions.click import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText import java.util.concurrent.TimeUnit import org.junit.After import org.junit.Before import org.junit.Test private const val NORMAL_SUITE_IDLE_SECONDS = 15L private const val SLOW_ORDER_IDLE_SECONDS = 45L class OrderStatusTest { @Before fun setIdlingTimeouts() { IdlingPolicies.setMasterPolicyTimeout( SLOW_ORDER_IDLE_SECONDS, TimeUnit.SECONDS ) IdlingPolicies.setIdlingResourceTimeout( SLOW_ORDER_IDLE_SECONDS, TimeUnit.SECONDS ) } @After fun restoreIdlingTimeouts() { IdlingPolicies.setMasterPolicyTimeout( NORMAL_SUITE_IDLE_SECONDS, TimeUnit.SECONDS ) IdlingPolicies.setIdlingResourceTimeout( NORMAL_SUITE_IDLE_SECONDS, TimeUnit.SECONDS ) } @Test fun refreshShowsReadyStatus() { onView(withId(R.id.refreshButton)).perform(click()) onView(withId(R.id.status)) .check(matches(withText("Ready"))) } }