fix(content): 전체 탭 grid 폭을 주입한다
This commit is contained in:
@@ -119,6 +119,10 @@ class ContentMainFragmentSourceTest {
|
||||
assertTrue(source.contains("CONTENT_ALL_GRID_SPAN_COUNT"))
|
||||
assertTrue(source.contains("GridLayoutManager(requireContext(), CONTENT_ALL_GRID_SPAN_COUNT)"))
|
||||
assertTrue(source.contains("addContentGridItemSpacing(CONTENT_ALL_GRID_SPAN_COUNT)"))
|
||||
assertTrue(source.contains("import androidx.core.view.doOnLayout"))
|
||||
assertTrue(source.contains("doOnLayout { updateAllTabGridItemWidth() }"))
|
||||
assertTrue(source.contains("private fun updateAllTabGridItemWidth()"))
|
||||
assertTrue(source.contains("binding.rvContentAllItems.calculateContentGridItemWidthPx(CONTENT_ALL_GRID_SPAN_COUNT)"))
|
||||
assertTrue(source.contains("MainContentAllType.AUDIO"))
|
||||
assertTrue(source.contains("MainContentAllType.SERIES"))
|
||||
assertTrue(source.contains("MainContentAllType.ORIGINAL"))
|
||||
@@ -358,6 +362,56 @@ class ContentMainFragmentSourceTest {
|
||||
assertEquals(null, banner(link = "mailto:test@example.com").toContentBannerRoute())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `content 전체 탭 adapter는 fixed Small card width 대신 grid item width를 사용한다`() {
|
||||
val fragment = projectFile(
|
||||
"app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ContentMainFragment.kt"
|
||||
).readText()
|
||||
val audioAdapter = projectFile(
|
||||
"app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ui/ContentAllAudioCardAdapter.kt"
|
||||
).readText()
|
||||
val seriesAdapter = projectFile(
|
||||
"app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ui/ContentAllSeriesCardAdapter.kt"
|
||||
).readText()
|
||||
val layoutParams = projectFile(
|
||||
"app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ui/ContentRecyclerItemLayoutParams.kt"
|
||||
).readText()
|
||||
val audioCard = projectFile(
|
||||
"app/src/main/java/kr/co/vividnext/sodalive/v2/widget/AudioContentCardView.kt"
|
||||
).readText()
|
||||
val seriesCard = projectFile(
|
||||
"app/src/main/java/kr/co/vividnext/sodalive/v2/widget/SeriesContentCardView.kt"
|
||||
).readText()
|
||||
|
||||
assertFalse(audioAdapter.contains("setSize(AudioContentCardSize.Small)"))
|
||||
assertFalse(seriesAdapter.contains("setSize(SeriesContentCardSize.Small)"))
|
||||
assertFalse(audioAdapter.contains("holder.itemView.parent as? RecyclerView"))
|
||||
assertFalse(seriesAdapter.contains("holder.itemView.parent as? RecyclerView"))
|
||||
assertSourceContains(audioAdapter, "private var gridItemWidthPx: Int = 0")
|
||||
assertSourceContains(seriesAdapter, "private var gridItemWidthPx: Int = 0")
|
||||
assertSourceContains(audioAdapter, "fun setGridItemWidthPx(widthPx: Int)")
|
||||
assertSourceContains(seriesAdapter, "fun setGridItemWidthPx(widthPx: Int)")
|
||||
assertSourceContains(audioAdapter, "if (widthPx <= 0 || gridItemWidthPx == widthPx) return")
|
||||
assertSourceContains(seriesAdapter, "if (widthPx <= 0 || gridItemWidthPx == widthPx) return")
|
||||
assertSourceContains(fragment, "private fun updateAllTabGridItemWidth()")
|
||||
assertSourceContains(fragment, "binding.rvContentAllItems.calculateContentGridItemWidthPx(CONTENT_ALL_GRID_SPAN_COUNT)")
|
||||
assertSourceContains(fragment, "contentAllAudioCardAdapter.setGridItemWidthPx(widthPx)")
|
||||
assertSourceContains(fragment, "contentAllSeriesCardAdapter.setGridItemWidthPx(widthPx)")
|
||||
assertSourceContains(fragment, "doOnLayout { updateAllTabGridItemWidth() }")
|
||||
assertTrue(
|
||||
"전체 탭 content bind는 item submit 전에 최신 grid width를 adapter에 주입해야 한다.",
|
||||
fragment.indexOf("updateAllTabGridItemWidth()") <
|
||||
fragment.indexOf("contentAllSeriesCardAdapter.submitItems(state.seriesItems)")
|
||||
)
|
||||
assertSourceContains(audioAdapter, "setGridItemWidthPx(gridItemWidthPx)")
|
||||
assertSourceContains(seriesAdapter, "setGridItemWidthPx(gridItemWidthPx)")
|
||||
assertSourceContains(layoutParams, "measuredWidth - paddingLeft - paddingRight")
|
||||
assertSourceContains(layoutParams, "GRID_ITEM_GAP_DP.dpToPx() * (spanCount - 1)")
|
||||
assertSourceContains(audioCard, "fun setGridItemWidthPx(widthPx: Int)")
|
||||
assertSourceContains(seriesCard, "fun setGridItemWidthPx(widthPx: Int)")
|
||||
assertSourceContains(seriesCard, "172f / 122f")
|
||||
}
|
||||
|
||||
private fun banner(
|
||||
eventItem: EventItem? = null,
|
||||
creatorId: Long? = null,
|
||||
|
||||
Reference in New Issue
Block a user