@@ -19,31 +19,39 @@ struct PushNotificationSettingsFeatureTests {
1919 settings: makePushNotificationSettings ( isEnabled: true , hour: 9 , minute: 0 )
2020 )
2121 let adapter = PushNotificationSettingsStoreTestAdapter ( fetchUseCase: fetchSpy)
22-
2322 await adapter. fetchSettings ( )
24-
2523 #expect( adapter. pushNotificationEnable)
2624 #expect( adapter. pushNotificationHour == 9 )
2725 #expect( adapter. pushNotificationMinute == 0 )
2826 #expect( adapter. sheetPushNotificationTime == adapter. viewPushNotificationTime)
2927 }
3028
29+ @Test ( " fetchSettings는 서버 상태 반영 중 설정 업데이트를 다시 호출하지 않는다 " )
30+ func fetchSettings는_서버_상태_반영_중_설정_업데이트를_다시_호출하지_않는다( ) async {
31+ let fetchSpy = FetchPushSettingsUseCaseSpy (
32+ settings: makePushNotificationSettings ( isEnabled: true , hour: 9 , minute: 0 )
33+ )
34+ let updateSpy = UpdatePushSettingsUseCaseSpy ( )
35+ let adapter = PushNotificationSettingsStoreTestAdapter (
36+ fetchUseCase: fetchSpy,
37+ updateUseCase: updateSpy
38+ )
39+ await adapter. fetchSettings ( )
40+ #expect( updateSpy. executeCallCount == 0 )
41+ }
42+
3143 @Test ( " setPushNotificationEnable은 활성화 상태를 변경한다 " )
3244 func setPushNotificationEnable은_활성화_상태를_변경한다( ) async {
3345 let adapter = PushNotificationSettingsStoreTestAdapter ( )
34-
3546 await adapter. setPushNotificationEnable ( true )
36-
3747 #expect( adapter. pushNotificationEnable)
3848 }
3949
4050 @Test ( " selectPresetTime은 화면과 시트 시간을 함께 변경한다 " )
4151 func selectPresetTime은_화면과_시트_시간을_함께_변경한다( ) async {
4252 let adapter = PushNotificationSettingsStoreTestAdapter ( )
4353 let date = makeDate ( hour: 15 , minute: 0 )
44-
4554 await adapter. selectPresetTime ( date)
46-
4755 #expect( adapter. viewPushNotificationTime == date)
4856 #expect( adapter. sheetPushNotificationTime == date)
4957 #expect( adapter. pushNotificationHour == 15 )
@@ -54,10 +62,8 @@ struct PushNotificationSettingsFeatureTests {
5462 func setShowTimePicker는_현재_화면_시간으로_시트를_연다( ) async {
5563 let adapter = PushNotificationSettingsStoreTestAdapter ( )
5664 let date = makeDate ( hour: 18 , minute: 0 )
57-
5865 await adapter. setPushNotificationTime ( view: date)
5966 await adapter. setShowTimePicker ( true )
60-
6167 #expect( adapter. showTimePicker)
6268 #expect( adapter. sheetPushNotificationTime == date)
6369 }
@@ -111,10 +117,8 @@ struct PushNotificationSettingsFeatureTests {
111117 @Test ( " setSheetHeight는 시트 높이 상태를 변경한다 " )
112118 func setSheetHeight는_시트_높이_상태를_변경한다( ) async {
113119 let adapter = PushNotificationSettingsStoreTestAdapter ( )
114-
115120 await adapter. setShowTimePicker ( true )
116121 await adapter. setSheetHeight ( 240 )
117-
118122 #expect( adapter. sheetHeight == 240 )
119123 }
120124
@@ -345,8 +349,10 @@ private final class FetchPushSettingsUseCaseSpy: FetchPushSettingsUseCase {
345349
346350private final class UpdatePushSettingsUseCaseSpy : UpdatePushSettingsUseCase {
347351 var error : Error ?
352+ private( set) var executeCallCount = 0
348353
349354 func execute( _: PushNotificationSettings ) async throws {
355+ executeCallCount += 1
350356 if let error {
351357 self . error = nil
352358 throw error
@@ -374,12 +380,7 @@ private func makeDate(
374380 minute: Int
375381) -> Date {
376382 let baseDate = Date ( timeIntervalSince1970: 0 )
377- return Calendar . current. date (
378- bySettingHour: hour,
379- minute: minute,
380- second: 0 ,
381- of: baseDate
382- ) ?? baseDate
383+ return Calendar . current. date ( bySettingHour: hour, minute: minute, second: 0 , of: baseDate) ?? baseDate
383384}
384385
385386private func expectedPushNotificationSettingsErrorAlert( ) -> AlertState < Never > {
0 commit comments