Files
Reflect/Tests iOS/EntryDeleteTests.swift

52 lines
1.4 KiB
Swift

//
// EntryDeleteTests.swift
// Tests iOS
//
// Entry deletion tests.
//
import XCTest
final class EntryDeleteTests: BaseUITestCase {
override var seedFixture: String? { "single_mood" }
/// TC-025: Delete a mood entry from the detail sheet.
func testDeleteEntry_FromDetail() {
// Wait for entry to appear
let firstEntry = app.firstEntryRow
guard firstEntry.waitForExistence(timeout: 8) else {
XCTFail("No entry row found from seeded data")
return
}
firstEntry.tap()
let detailScreen = EntryDetailScreen(app: app)
detailScreen.assertVisible()
captureScreenshot(name: "entry_detail_before_delete")
// Delete the entry
detailScreen.deleteEntry()
// Detail should dismiss after delete
detailScreen.assertDismissed()
// The entry should no longer be visible (or empty state should show)
// Give UI time to update
let moodHeader = app.element(UITestID.Day.moodHeader)
let noDataText = app.element(UITestID.Day.emptyStateNoData)
let headerReappeared = moodHeader.waitForExistence(timeout: 5)
let noDataAppeared = noDataText.waitForExistence(timeout: 2)
XCTAssertTrue(
headerReappeared || noDataAppeared,
"After deleting the only entry, mood header or empty state should appear"
)
captureScreenshot(name: "entry_deleted")
}
}