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 위에 보존한다.