diff --git a/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentSourceTest.kt b/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentSourceTest.kt new file mode 100644 index 00000000..2876692e --- /dev/null +++ b/app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentSourceTest.kt @@ -0,0 +1,41 @@ +package kr.co.vividnext.sodalive.v2.main.home + +import android.app.Application +import org.junit.Assert.assertTrue +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.annotation.Config +import java.io.File + +@RunWith(RobolectricTestRunner::class) +@Config(application = Application::class) +class HomeMainFragmentSourceTest { + + @Test + fun `홈 FIRST 오디오 섹션 타이틀은 chevron만 표시하고 전체보기 이동은 연결하지 않는다`() { + val source = projectFile( + "app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt" + ).readText() + + assertTrue(source.contains("binding.viewHomeFirstAudioTitle.setTitle(")) + assertTrue( + "FIRST audio title must show the section chevron in Phase 2.", + source.contains( + "binding.viewHomeFirstAudioTitle.setTitle(\n" + + " R.string.home_recommendation_section_first_audio_contents,\n" + + " showMore = true" + ) + ) + assertTrue( + "Phase 2 must not connect FIRST audio overview navigation yet.", + !source.contains("binding.viewHomeFirstAudioTitle.ivSectionTitleChevron.setOnClickListener") + ) + } + + private fun projectFile(relativePath: String): File { + val candidates = listOf(File(relativePath), File("../$relativePath")) + return candidates.firstOrNull { it.exists() } + ?: error("Project file not found: $relativePath") + } +}