Successfully overwrote file: /home/Messier82/projects/service-book/app/src/androidTest/java/com/yorvana/regression/attachments/AttachmentRealOsRegressionTest.kt. Here is the updated code: package com.yorvana.regression.attachments import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.hasClickAction import androidx.compose.ui.test.hasText import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollTo import androidx.compose.ui.test.performTextInput import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.UiDevice import com.google.common.truth.Truth.assertThat import com.yorvana.MainActivity import com.yorvana.R import com.yorvana.testsupport.Camera import com.yorvana.testsupport.ExternalViewer.assertLaunchOrSkipUi import com.yorvana.testsupport.FixtureAssetsRule import com.yorvana.testsupport.SystemPicker import com.yorvana.testsupport.VaultFixture import com.yorvana.testsupport.app import com.yorvana.testsupport.awaitTagVisible ... import com.yorvana.testsupport.seedAttachmentFile import com.yorvana.testsupport.seedRecord import com.yorvana.testsupport.seedVehicle import com.yorvana.testsupport.tiers.RegressionFull import com.yorvana.ui.TestTags import kotlinx.coroutines.flow.first import kotlinx.coroutines.runBlocking import org.junit.After import org.junit.Before import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith ... .keys .any { it.endsWith(".jpg") } } composeRule.onNodeWithTag(TestTags.SAVE_BUTTON).performClick() composeRule.killAndRelaunch() openVehicle("Camera Car") val recordId = runBlocking { composeRule .app() .vaultStorage .listRecordIds(vehicle.id) .getOrThrow() .single() } openRecord(recordId) assertThat( VaultFixture .active() .snapshot() .keys ... openVehicle("Remove Attachment Car") openRecord(record.id) composeRule.onNodeWithContentDescription(composeRule.activity.getString(R.string.record_edit)).performClick() composeRule.awaitText(composeRule.activity.getString(R.string.record_edit)) composeRule.onNodeWithTag(TestTags.removeAttachment("delete-me.txt")).performScrollTo().performClick() composeRule.awaitTagVisible(TestTags.CONFIRM_DELETE_BUTTON) composeRule.onNodeWithTag(TestTags.CONFIRM_DELETE_BUTTON).performClick() composeRule.onNodeWithTag(TestTags.SAVE_BUTTON).performClick() assertThat(VaultFixture.active().exists("vehicles/${vehicle.id}/records/${record.id}/delete-me.txt")).isFalse() ... composeRule.onNodeWithTag(TestTags.SETTINGS_VAULT_CHANGE_BUTTON).performClick() SystemPicker.createAndPickFolder(device, "Yorvana R-A06 ${System.currentTimeMillis()}") composeRule.awaitText(composeRule.activity.getString(R.string.settings_vault_move_title), timeoutMillis = 20_000) composeRule.onNodeWithTag(TestTags.SETTINGS_VAULT_MOVE_ACTION).performClick() composeRule.awaitText(composeRule.activity.getString(R.string.settings_vault_changed_success), substring = true) composeRule.onNodeWithText(composeRule.activity.getString(R.string.action_ok)).performClick() composeRule.activityRule.scenario.onActivity { it.onBackPressedDispatcher.onBackPressed() } composeRule.awaitText("Move Attachment Car") openVehicle("Move Attachment Car") openRecord(record.id) ... private fun fillMinimalRecord( odometer: String, performer: String, ) { composeRule.onNodeWithTag(TestTags.RECORD_ODOMETER_FIELD).performTextInput(odometer) composeRule.onNodeWithTag(TestTags.RECORD_PERFORMER_FIELD).performTextInput(performer) } private fun assertExternalViewIntentLaunches(block: () -> Unit) { assertLaunchOrSkipUi(composeRule.activity, block) } }