@@ -19,11 +19,9 @@ class HeadlineCardTest {
1919
2020 @Test
2121 fun testHeadlineCardWithAllElements () {
22- // Arrange & Act
2322 composeTestRule.setContent {
2423 AppThemeSurface {
2524 HeadlineCard (
26- showWidgetTitle = true ,
2725 showTime = true ,
2826 showSource = true ,
2927 time = testTime,
@@ -34,57 +32,21 @@ class HeadlineCardTest {
3432 }
3533 }
3634
37- // Assert all elements exist
38- composeTestRule.onNodeWithTag(" widget_title_row" , useUnmergedTree = true ).assertExists()
39- composeTestRule.onNodeWithTag(" widget_title_icon" , useUnmergedTree = true ).assertExists()
40- composeTestRule.onNodeWithTag(" widget_title_text" , useUnmergedTree = true ).assertExists()
4135 composeTestRule.onNodeWithTag(" time_text" , useUnmergedTree = true ).assertExists()
4236 composeTestRule.onNodeWithTag(" headline_text" , useUnmergedTree = true ).assertExists()
4337 composeTestRule.onNodeWithTag(" source_row" , useUnmergedTree = true ).assertExists()
44- composeTestRule.onNodeWithTag(" source_label" , useUnmergedTree = true ).assertExists()
4538 composeTestRule.onNodeWithTag(" source_text" , useUnmergedTree = true ).assertExists()
4639
47- // Verify text content
4840 composeTestRule.onNodeWithTag(" time_text" , useUnmergedTree = true ).assertTextEquals(testTime)
4941 composeTestRule.onNodeWithTag(" headline_text" , useUnmergedTree = true ).assertTextEquals(testHeadline)
5042 composeTestRule.onNodeWithTag(" source_text" , useUnmergedTree = true ).assertTextEquals(testSource)
5143 }
5244
53- @Test
54- fun testHeadlineCardWithoutWidgetTitle () {
55- // Arrange & Act
56- composeTestRule.setContent {
57- AppThemeSurface {
58- HeadlineCard (
59- showWidgetTitle = false ,
60- showTime = true ,
61- showSource = true ,
62- time = testTime,
63- headline = testHeadline,
64- source = testSource,
65- link = testLink
66- )
67- }
68- }
69-
70- // Assert main elements exist
71- composeTestRule.onNodeWithTag(" time_text" , useUnmergedTree = true ).assertExists()
72- composeTestRule.onNodeWithTag(" headline_text" , useUnmergedTree = true ).assertExists()
73- composeTestRule.onNodeWithTag(" source_row" , useUnmergedTree = true ).assertExists()
74-
75- // Assert widget title elements do not exist
76- composeTestRule.onNodeWithTag(" widget_title_row" , useUnmergedTree = true ).assertDoesNotExist()
77- composeTestRule.onNodeWithTag(" widget_title_icon" , useUnmergedTree = true ).assertDoesNotExist()
78- composeTestRule.onNodeWithTag(" widget_title_text" , useUnmergedTree = true ).assertDoesNotExist()
79- }
80-
8145 @Test
8246 fun testHeadlineCardWithoutTime () {
83- // Arrange & Act
8447 composeTestRule.setContent {
8548 AppThemeSurface {
8649 HeadlineCard (
87- showWidgetTitle = true ,
8850 showTime = false ,
8951 showSource = true ,
9052 time = testTime,
@@ -95,22 +57,18 @@ class HeadlineCardTest {
9557 }
9658 }
9759
98- // Assert main elements exist
99- composeTestRule.onNodeWithTag(" widget_title_row" , useUnmergedTree = true ).assertExists()
10060 composeTestRule.onNodeWithTag(" headline_text" , useUnmergedTree = true ).assertExists()
10161 composeTestRule.onNodeWithTag(" source_row" , useUnmergedTree = true ).assertExists()
62+ composeTestRule.onNodeWithTag(" source_text" , useUnmergedTree = true ).assertExists()
10263
103- // Assert time element does not exist
10464 composeTestRule.onNodeWithTag(" time_text" , useUnmergedTree = true ).assertDoesNotExist()
10565 }
10666
10767 @Test
10868 fun testHeadlineCardWithoutSource () {
109- // Arrange & Act
11069 composeTestRule.setContent {
11170 AppThemeSurface {
11271 HeadlineCard (
113- showWidgetTitle = true ,
11472 showTime = true ,
11573 showSource = false ,
11674 time = testTime,
@@ -121,24 +79,17 @@ class HeadlineCardTest {
12179 }
12280 }
12381
124- // Assert main elements exist
125- composeTestRule.onNodeWithTag(" widget_title_row" , useUnmergedTree = true ).assertExists()
12682 composeTestRule.onNodeWithTag(" time_text" , useUnmergedTree = true ).assertExists()
12783 composeTestRule.onNodeWithTag(" headline_text" , useUnmergedTree = true ).assertExists()
12884
129- // Assert source elements do not exist
130- composeTestRule.onNodeWithTag(" source_row" , useUnmergedTree = true ).assertDoesNotExist()
131- composeTestRule.onNodeWithTag(" source_label" , useUnmergedTree = true ).assertDoesNotExist()
13285 composeTestRule.onNodeWithTag(" source_text" , useUnmergedTree = true ).assertDoesNotExist()
13386 }
13487
13588 @Test
13689 fun testHeadlineCardMinimal () {
137- // Arrange & Act - Only headline shown
13890 composeTestRule.setContent {
13991 AppThemeSurface {
14092 HeadlineCard (
141- showWidgetTitle = false ,
14293 showTime = false ,
14394 showSource = false ,
14495 time = testTime,
@@ -149,55 +100,45 @@ class HeadlineCardTest {
149100 }
150101 }
151102
152- // Assert only essential elements exist
153103 composeTestRule.onNodeWithTag(" headline_text" , useUnmergedTree = true ).assertExists()
154104
155- // Assert optional elements do not exist
156- composeTestRule.onNodeWithTag(" widget_title_row" , useUnmergedTree = true ).assertDoesNotExist()
157105 composeTestRule.onNodeWithTag(" time_text" , useUnmergedTree = true ).assertDoesNotExist()
158106 composeTestRule.onNodeWithTag(" source_row" , useUnmergedTree = true ).assertDoesNotExist()
107+ composeTestRule.onNodeWithTag(" source_text" , useUnmergedTree = true ).assertDoesNotExist()
159108
160- // Verify headline text
161109 composeTestRule.onNodeWithTag(" headline_text" , useUnmergedTree = true ).assertTextEquals(testHeadline)
162110 }
163111
164112 @Test
165113 fun testHeadlineCardWithEmptyTime () {
166- // Arrange & Act - Time is empty string
167114 composeTestRule.setContent {
168115 AppThemeSurface {
169116 HeadlineCard (
170- showWidgetTitle = true ,
171117 showTime = true ,
172118 showSource = true ,
173- time = " " , // Empty time
119+ time = " " ,
174120 headline = testHeadline,
175121 source = testSource,
176122 link = testLink
177123 )
178124 }
179125 }
180126
181- // Assert main elements exist
182- composeTestRule.onNodeWithTag(" widget_title_row" , useUnmergedTree = true ).assertExists()
183127 composeTestRule.onNodeWithTag(" headline_text" , useUnmergedTree = true ).assertExists()
184128 composeTestRule.onNodeWithTag(" source_row" , useUnmergedTree = true ).assertExists()
129+ composeTestRule.onNodeWithTag(" source_text" , useUnmergedTree = true ).assertExists()
185130
186- // Assert time element does not exist when time is empty
187131 composeTestRule.onNodeWithTag(" time_text" , useUnmergedTree = true ).assertDoesNotExist()
188132 }
189133
190134 @Test
191135 fun testHeadlineCardWithLongHeadline () {
192- // Arrange
193136 val longHeadline =
194137 " This is a very long headline that should be truncated because it exceeds the maximum number of lines allowed in the headline card component and should show ellipsis"
195138
196- // Act
197139 composeTestRule.setContent {
198140 AppThemeSurface {
199141 HeadlineCard (
200- showWidgetTitle = true ,
201142 showTime = true ,
202143 showSource = true ,
203144 time = testTime,
@@ -208,35 +149,46 @@ class HeadlineCardTest {
208149 }
209150 }
210151
211- // Assert headline exists and contains the text (may be truncated)
212152 composeTestRule.onNodeWithTag(" headline_text" , useUnmergedTree = true ).assertExists()
213153 }
214154
215155 @Test
216- fun testAllElementsExistInFullConfiguration () {
217- // Arrange & Act
156+ fun testHeadlineCardSmallWithTime () {
218157 composeTestRule.setContent {
219158 AppThemeSurface {
220- HeadlineCard (
221- showWidgetTitle = true ,
159+ HeadlineCardSmall (
222160 showTime = true ,
223- showSource = true ,
224161 time = testTime,
225162 headline = testHeadline,
226- source = testSource,
227163 link = testLink
228164 )
229165 }
230166 }
231167
232- // Assert all tagged elements exist
233- composeTestRule.onNodeWithTag(" widget_title_row" , useUnmergedTree = true ).assertExists()
234- composeTestRule.onNodeWithTag(" widget_title_icon" , useUnmergedTree = true ).assertExists()
235- composeTestRule.onNodeWithTag(" widget_title_text" , useUnmergedTree = true ).assertExists()
236- composeTestRule.onNodeWithTag(" time_text" , useUnmergedTree = true ).assertExists()
237168 composeTestRule.onNodeWithTag(" headline_text" , useUnmergedTree = true ).assertExists()
238169 composeTestRule.onNodeWithTag(" source_row" , useUnmergedTree = true ).assertExists()
239- composeTestRule.onNodeWithTag(" source_label" , useUnmergedTree = true ).assertExists()
240- composeTestRule.onNodeWithTag(" source_text" , useUnmergedTree = true ).assertExists()
170+ composeTestRule.onNodeWithTag(" time_text" , useUnmergedTree = true ).assertExists()
171+
172+ composeTestRule.onNodeWithTag(" time_text" , useUnmergedTree = true ).assertTextEquals(testTime)
173+ composeTestRule.onNodeWithTag(" headline_text" , useUnmergedTree = true ).assertTextEquals(testHeadline)
174+ }
175+
176+ @Test
177+ fun testHeadlineCardSmallWithoutTime () {
178+ composeTestRule.setContent {
179+ AppThemeSurface {
180+ HeadlineCardSmall (
181+ showTime = false ,
182+ time = testTime,
183+ headline = testHeadline,
184+ link = testLink
185+ )
186+ }
187+ }
188+
189+ composeTestRule.onNodeWithTag(" headline_text" , useUnmergedTree = true ).assertExists()
190+
191+ composeTestRule.onNodeWithTag(" time_text" , useUnmergedTree = true ).assertDoesNotExist()
192+ composeTestRule.onNodeWithTag(" source_row" , useUnmergedTree = true ).assertDoesNotExist()
241193 }
242194}
0 commit comments