Files
swift-composable-architectu…/Examples/Integration/IntegrationUITests/Legacy/ForEachBindingTests.swift
Stephen Celis f02fab5000 Allow an alert to present another alert (#3309)
* Allow an alert to present another alert

When we added support for vanilla SwiftUI modifiers, we lost the ability
to present one alert after another because `nil` writes to the alert
bindings unconditionally dismissed the feature, even if the feature was
freshly presented.

This fixes things by suppressing dismissal when the identity of a
presented item has changed.

Fix #3272.

* wip
2024-08-26 15:19:08 -07:00

30 lines
873 B
Swift

import TestCases
import XCTest
final class ForEachBindingTests: BaseIntegrationTests {
@MainActor
override func setUpWithError() throws {
try super.setUpWithError()
self.app.buttons["Legacy"].tap()
app.collectionViews.buttons[TestCase.Legacy.forEachBinding.rawValue].tap()
}
@MainActor
func testExample() async throws {
app.buttons["Remove last"].tap()
XCTAssertFalse(app.textFields["C"].exists)
app.buttons["Remove last"].tap()
XCTAssertFalse(app.textFields["B"].exists)
app.buttons["Remove last"].tap()
XCTAssertFalse(app.textFields["A"].exists)
XCTExpectFailure(
"""
This ideally would not fail, but currently does. See this PR for more details:
https://github.com/pointfreeco/swift-composable-architecture/pull/1845
"""
) {
XCTAssertFalse(app.staticTexts["🛑"].exists)
}
}
}