diff --git a/sample-xml/app/src/test/java/co/nimblehq/sample/xml/ui/screens/xml/HomeFragmentTest.kt b/sample-xml/app/src/test/java/co/nimblehq/sample/xml/ui/screens/home/HomeFragmentTest.kt similarity index 95% rename from sample-xml/app/src/test/java/co/nimblehq/sample/xml/ui/screens/xml/HomeFragmentTest.kt rename to sample-xml/app/src/test/java/co/nimblehq/sample/xml/ui/screens/home/HomeFragmentTest.kt index be897c9c9..bb16ca89b 100644 --- a/sample-xml/app/src/test/java/co/nimblehq/sample/xml/ui/screens/xml/HomeFragmentTest.kt +++ b/sample-xml/app/src/test/java/co/nimblehq/sample/xml/ui/screens/home/HomeFragmentTest.kt @@ -1,4 +1,4 @@ -package co.nimblehq.sample.xml.ui.screens.xml +package co.nimblehq.sample.xml.ui.screens.home import androidx.core.view.isVisible import co.nimblehq.sample.xml.databinding.FragmentHomeBinding @@ -8,8 +8,6 @@ import co.nimblehq.sample.xml.test.getPrivateProperty import co.nimblehq.sample.xml.test.replace import co.nimblehq.sample.xml.ui.BaseFragmentTest import co.nimblehq.sample.xml.ui.base.NavigationEvent -import co.nimblehq.sample.xml.ui.screens.home.HomeFragment -import co.nimblehq.sample.xml.ui.screens.home.HomeViewModel import dagger.hilt.android.testing.HiltAndroidRule import dagger.hilt.android.testing.HiltAndroidTest import io.kotest.matchers.booleans.shouldBeFalse diff --git a/template-xml/app/src/main/java/co/nimblehq/template/xml/extension/NavArgsExt.kt b/template-xml/app/src/main/java/co/nimblehq/template/xml/extension/NavArgsExt.kt new file mode 100644 index 000000000..a023b73f3 --- /dev/null +++ b/template-xml/app/src/main/java/co/nimblehq/template/xml/extension/NavArgsExt.kt @@ -0,0 +1,10 @@ +package co.nimblehq.template.xml.extension + +import androidx.annotation.MainThread +import androidx.fragment.app.Fragment +import androidx.navigation.NavArgs +import androidx.navigation.fragment.navArgs + +@MainThread +inline fun Fragment.provideNavArgs(): Lazy = + OverridableLazy(navArgs()) diff --git a/template-xml/app/src/test/java/co/nimblehq/template/xml/test/NavArgsExt.kt b/template-xml/app/src/test/java/co/nimblehq/template/xml/test/NavArgsExt.kt new file mode 100644 index 000000000..46011a820 --- /dev/null +++ b/template-xml/app/src/test/java/co/nimblehq/template/xml/test/NavArgsExt.kt @@ -0,0 +1,14 @@ +package co.nimblehq.template.xml.test + +import androidx.navigation.NavArgs +import co.nimblehq.template.xml.extension.OverridableLazy +import kotlin.reflect.KProperty1 +import kotlin.reflect.jvm.isAccessible + +fun T.replace( + argumentDelegate: KProperty1, + argument: Arg +) { + argumentDelegate.isAccessible = true + (argumentDelegate.getDelegate(this) as OverridableLazy).implementation = lazy { argument } +} diff --git a/template-xml/app/src/test/java/co/nimblehq/template/xml/ui/screens/home/HomeFragmentTest.kt b/template-xml/app/src/test/java/co/nimblehq/template/xml/ui/screens/home/HomeFragmentTest.kt index 66da1a7c7..3fd44ea54 100644 --- a/template-xml/app/src/test/java/co/nimblehq/template/xml/ui/screens/home/HomeFragmentTest.kt +++ b/template-xml/app/src/test/java/co/nimblehq/template/xml/ui/screens/home/HomeFragmentTest.kt @@ -26,7 +26,7 @@ class HomeFragmentTest : BaseFragmentTest() { } @Test - fun `When initializing fragment, it displays the title correctly`() { + fun `When launching fragment, it displays the title correctly`() { launchFragment() fragment.binding.tvTitle.text.toString() shouldBe fragment.resources.getString(R.string.app_name) }