From 1f7d59be3636b6ea962316e8dc09712dd3ed2b9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=BC=ED=98=81?= Date: Thu, 27 Aug 2026 17:33:48 +0900 Subject: [PATCH] =?UTF-8?q?fix(test):=20=EC=95=A0=ED=94=84=ED=84=B0?= =?UTF-8?q?=EB=85=B8=ED=8A=B8=20=ED=8E=B8=EC=A7=91=20=EB=9D=BC=EC=9A=B0?= =?UTF-8?q?=ED=8A=B8=20fixture=EB=A5=BC=20=EB=B3=B5=EA=B5=AC=ED=95=9C?= =?UTF-8?q?=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../afternote_fe/AfternoteAuthorAndroidTest.kt | 7 ++++--- .../AfternoteAuthorExtendedAndroidTest.kt | 7 ++++++- ...noteAuthorImplementedCoverageAndroidTest.kt | 18 ++++++++++++++---- .../afternote/afternote_fe/test/TestFakes.kt | 13 +++++++++++++ 4 files changed, 37 insertions(+), 8 deletions(-) diff --git a/app/src/androidTest/java/com/afternote/afternote_fe/AfternoteAuthorAndroidTest.kt b/app/src/androidTest/java/com/afternote/afternote_fe/AfternoteAuthorAndroidTest.kt index 99b822a42a..f8e7e32019 100644 --- a/app/src/androidTest/java/com/afternote/afternote_fe/AfternoteAuthorAndroidTest.kt +++ b/app/src/androidTest/java/com/afternote/afternote_fe/AfternoteAuthorAndroidTest.kt @@ -15,6 +15,7 @@ import androidx.paging.PagingData import androidx.test.ext.junit.runners.AndroidJUnit4 import com.afternote.afternote_fe.test.FailureArtifactRule import com.afternote.afternote_fe.test.FakeErrorReporter +import com.afternote.afternote_fe.test.afternoteEditorSavedStateHandle import com.afternote.afternote_fe.test.appTestUserRepository import com.afternote.core.ui.theme.AfternoteTheme import com.afternote.feature.afternote.domain.AfternoteType @@ -58,7 +59,7 @@ class AfternoteAuthorAndroidTest { @Test fun missingReceiver_blocksSaveAndExposesValidationSemantics() { val repository = FakeAfternoteRepository() - val viewModel = viewModel(repository, SavedStateHandle()) + val viewModel = viewModel(repository, afternoteEditorSavedStateHandle(AfternoteType.SOCIAL_NETWORK)) composeRule.setContent { val uiState by viewModel.uiState.collectAsStateWithLifecycle() AfternoteTheme { @@ -90,7 +91,7 @@ class AfternoteAuthorAndroidTest { val repository = FakeAfternoteRepository() repository.createSocialResults.addLast(Result.failure(IllegalStateException("offline"))) repository.createSocialResults.addLast(Result.success(42L)) - val viewModel = viewModel(repository, SavedStateHandle()) + val viewModel = viewModel(repository, afternoteEditorSavedStateHandle(AfternoteType.SOCIAL_NETWORK)) composeRule.setContent { val uiState by viewModel.uiState.collectAsStateWithLifecycle() AfternoteTheme { Text(uiState.savedId?.toString().orEmpty()) } @@ -121,7 +122,7 @@ class AfternoteAuthorAndroidTest { @Test fun savedState_recreatesTypeReceiverAndProcessingForm() { - val handle = SavedStateHandle() + val handle = afternoteEditorSavedStateHandle(AfternoteType.GALLERY_AND_FILES) val first = viewModel(FakeAfternoteRepository(), handle) composeRule.setContent { AfternoteTheme {} } composeRule.runOnIdle { diff --git a/app/src/androidTest/java/com/afternote/afternote_fe/AfternoteAuthorExtendedAndroidTest.kt b/app/src/androidTest/java/com/afternote/afternote_fe/AfternoteAuthorExtendedAndroidTest.kt index b515456033..2a511e5bcb 100644 --- a/app/src/androidTest/java/com/afternote/afternote_fe/AfternoteAuthorExtendedAndroidTest.kt +++ b/app/src/androidTest/java/com/afternote/afternote_fe/AfternoteAuthorExtendedAndroidTest.kt @@ -42,6 +42,7 @@ import androidx.paging.PagingState import androidx.test.ext.junit.runners.AndroidJUnit4 import com.afternote.afternote_fe.test.FailureArtifactRule import com.afternote.afternote_fe.test.FakeErrorReporter +import com.afternote.afternote_fe.test.afternoteEditorSavedStateHandle import com.afternote.afternote_fe.test.appTestUserRepository import com.afternote.core.ui.theme.AfternoteTheme import com.afternote.feature.afternote.domain.AfternoteType @@ -525,7 +526,11 @@ private fun editorViewModel( itemId: Long, ): AfternoteEditorViewModel = AfternoteEditorViewModel( - savedStateHandle = SavedStateHandle(mapOf("itemId" to itemId)), + savedStateHandle = + afternoteEditorSavedStateHandle( + initialType = AfternoteType.SOCIAL_NETWORK, + itemId = itemId, + ), userRepository = appTestUserRepository(), afternoteRepository = repository, memorialThumbnailUploadRepository = diff --git a/app/src/androidTest/java/com/afternote/afternote_fe/AfternoteAuthorImplementedCoverageAndroidTest.kt b/app/src/androidTest/java/com/afternote/afternote_fe/AfternoteAuthorImplementedCoverageAndroidTest.kt index 4cef575d97..b22811d563 100644 --- a/app/src/androidTest/java/com/afternote/afternote_fe/AfternoteAuthorImplementedCoverageAndroidTest.kt +++ b/app/src/androidTest/java/com/afternote/afternote_fe/AfternoteAuthorImplementedCoverageAndroidTest.kt @@ -12,6 +12,7 @@ import androidx.paging.PagingData import androidx.test.ext.junit.runners.AndroidJUnit4 import com.afternote.afternote_fe.test.FailureArtifactRule import com.afternote.afternote_fe.test.FakeErrorReporter +import com.afternote.afternote_fe.test.afternoteEditorSavedStateHandle import com.afternote.afternote_fe.test.appTestUserRepository import com.afternote.core.ui.theme.AfternoteTheme import com.afternote.feature.afternote.domain.AfternoteType @@ -58,7 +59,11 @@ class AfternoteAuthorImplementedCoverageAndroidTest { @Test fun gallerySave_routesTrimmedGalleryPayloadToOnlyGalleryEndpoint() { val repository = ImplementedCoverageAfternoteRepository() - val viewModel = implementedCoverageViewModel(repository) + val viewModel = + implementedCoverageViewModel( + repository = repository, + savedStateHandle = afternoteEditorSavedStateHandle(AfternoteType.GALLERY_AND_FILES), + ) collectSaveState(viewModel) composeRule.runOnIdle { @@ -99,7 +104,11 @@ class AfternoteAuthorImplementedCoverageAndroidTest { @Test fun businessSave_routesCredentialsAndActionsToBusinessEndpoint() { val repository = ImplementedCoverageAfternoteRepository() - val viewModel = implementedCoverageViewModel(repository) + val viewModel = + implementedCoverageViewModel( + repository = repository, + savedStateHandle = afternoteEditorSavedStateHandle(AfternoteType.BUSINESS), + ) collectSaveState(viewModel) composeRule.runOnIdle { @@ -149,6 +158,7 @@ class AfternoteAuthorImplementedCoverageAndroidTest { val viewModel = implementedCoverageViewModel( repository = repository, + savedStateHandle = afternoteEditorSavedStateHandle(AfternoteType.MEMORIAL), videoInputs = videoInputs, photoInputs = photoInputs, ) @@ -225,7 +235,7 @@ class AfternoteAuthorImplementedCoverageAndroidTest { @Test fun memorialMediaAndPlaylist_recreateFromSavedStateWithoutLosingSelection() { - val handle = SavedStateHandle() + val handle = afternoteEditorSavedStateHandle(AfternoteType.MEMORIAL) val first = implementedCoverageViewModel(ImplementedCoverageAfternoteRepository(), handle) composeRule.setContent { AfternoteTheme {} } @@ -301,7 +311,7 @@ private class ImplementedCoverageAfternoteRepository : AfternoteRepository { private fun implementedCoverageViewModel( repository: ImplementedCoverageAfternoteRepository, - savedStateHandle: SavedStateHandle = SavedStateHandle(), + savedStateHandle: SavedStateHandle, videoInputs: MutableList = mutableListOf(), photoInputs: MutableList = mutableListOf(), ): AfternoteEditorViewModel = diff --git a/app/src/androidTest/java/com/afternote/afternote_fe/test/TestFakes.kt b/app/src/androidTest/java/com/afternote/afternote_fe/test/TestFakes.kt index 1fbc88cd9a..da784e04bd 100644 --- a/app/src/androidTest/java/com/afternote/afternote_fe/test/TestFakes.kt +++ b/app/src/androidTest/java/com/afternote/afternote_fe/test/TestFakes.kt @@ -1,5 +1,6 @@ package com.afternote.afternote_fe.test +import androidx.lifecycle.SavedStateHandle import com.afternote.core.common.reporting.ErrorReporter import com.afternote.core.domain.testing.FakeAuthRepository import com.afternote.core.domain.testing.FakeUserRepository @@ -7,6 +8,18 @@ import com.afternote.core.model.user.Receiver import com.afternote.core.model.user.User import com.afternote.core.model.user.UserConnectedAccount import com.afternote.core.model.user.UserPushSetting +import com.afternote.feature.afternote.domain.AfternoteType + +fun afternoteEditorSavedStateHandle( + initialType: AfternoteType, + itemId: Long? = null, +): SavedStateHandle = + SavedStateHandle( + buildMap { + put("initialType", initialType) + itemId?.let { put("itemId", it) } + }, + ) /** * 기존 app androidTest 공용 Auth fake 의 기본 허용 범위를 정본 fixture 위에 보존한다.