diff --git a/app/src/androidTest/kotlin/gq/kirmanak/mealient/BaseTestCase.kt b/app/src/androidTest/kotlin/gq/kirmanak/mealient/BaseTestCase.kt new file mode 100644 index 0000000..7025845 --- /dev/null +++ b/app/src/androidTest/kotlin/gq/kirmanak/mealient/BaseTestCase.kt @@ -0,0 +1,33 @@ +package gq.kirmanak.mealient + +import androidx.test.ext.junit.rules.activityScenarioRule +import com.kaspersky.kaspresso.testcases.api.testcase.TestCase +import dagger.hilt.android.testing.HiltAndroidRule +import gq.kirmanak.mealient.ui.activity.MainActivity +import okhttp3.mockwebserver.MockWebServer +import org.junit.After +import org.junit.Before +import org.junit.Rule + +abstract class BaseTestCase : TestCase() { + + @get:Rule(order = 0) + var hiltRule = HiltAndroidRule(this) + + @get:Rule(order = 1) + val mainActivityRule = activityScenarioRule() + + lateinit var mockWebServer: MockWebServer + + @Before + open fun setUp() { + mockWebServer = MockWebServer() + mockWebServer.start() + } + + @After + fun tearDown() { + mockWebServer.shutdown() + } + +} \ No newline at end of file diff --git a/app/src/androidTest/kotlin/gq/kirmanak/mealient/FirstSetUpTest.kt b/app/src/androidTest/kotlin/gq/kirmanak/mealient/FirstSetUpTest.kt index ff3d93e..8cf7100 100644 --- a/app/src/androidTest/kotlin/gq/kirmanak/mealient/FirstSetUpTest.kt +++ b/app/src/androidTest/kotlin/gq/kirmanak/mealient/FirstSetUpTest.kt @@ -1,38 +1,23 @@ package gq.kirmanak.mealient -import androidx.test.ext.junit.rules.activityScenarioRule -import com.kaspersky.kaspresso.testcases.api.testcase.TestCase -import dagger.hilt.android.testing.HiltAndroidRule import dagger.hilt.android.testing.HiltAndroidTest import gq.kirmanak.mealient.screen.BaseUrlScreen import gq.kirmanak.mealient.screen.DisclaimerScreen import gq.kirmanak.mealient.screen.RecipesListScreen -import gq.kirmanak.mealient.ui.activity.MainActivity -import okhttp3.mockwebserver.MockWebServer -import org.junit.Rule import org.junit.Test @HiltAndroidTest -class FirstSetUpTest : TestCase() { +class FirstSetUpTest : BaseTestCase() { - @get:Rule(order = 0) - var hiltRule = HiltAndroidRule(this) - - @get:Rule(order = 1) - val mainActivityRule = activityScenarioRule() - - private lateinit var mockWebServer: MockWebServer - - @Test - fun test() = before { - mockWebServer = MockWebServer() + override fun setUp() { + super.setUp() mockWebServer.dispatch { url, _ -> if (url == "/api/app/about") versionV1Response else notFoundResponse } - mockWebServer.start() - }.after { - mockWebServer.shutdown() - }.run { + } + + @Test + fun test() = run { step("Ensure button is disabled") { DisclaimerScreen { okayButton {