import InlineSnapshotTesting import TestCases import XCTest final class iOS16_17_NewPresentsOldTests: BaseIntegrationTests { @MainActor override func setUp() { super.setUp() self.app.buttons["iOS 16 + 17"].tap() self.app.buttons["New presents old"].tap() self.clearLogs() // SnapshotTesting.isRecording = true } @MainActor func testBasics() { self.app.buttons["Increment"].tap() XCTAssertEqual(self.app.staticTexts["1"].exists, true) self.assertLogs { """ NewPresentsOldTestCase.body PresentationStoreOf.deinit PresentationStoreOf.init ViewPresentationStoreOf.deinit ViewPresentationStoreOf.init """ } } @MainActor func testPresentChild_NotObservingChildCount() { self.app.buttons["Present child"].tap() self.assertLogs { """ BasicsView.body NewPresentsOldTestCase.body PresentationStoreOf.deinit PresentationStoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.init ViewPresentationStoreOf.deinit ViewPresentationStoreOf.init ViewStoreOf.deinit ViewStoreOf.init ViewStoreOf.init ViewStoreOf.deinit ViewStoreOf.init ViewStoreOf.init WithViewStoreOf.body WithViewStoreOf.body """ } } @MainActor func testDismissChild_NotObservingChildCount() { self.app.buttons["Present child"].tap() self.clearLogs() self.app.buttons["Dismiss"].tap() self.assertLogs { """ BasicsView.body BasicsView.body NewPresentsOldTestCase.body NewPresentsOldTestCase.body PresentationStoreOf.deinit PresentationStoreOf.deinit PresentationStoreOf.init PresentationStoreOf.init StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.init ViewPresentationStoreOf.deinit ViewPresentationStoreOf.deinit ViewPresentationStoreOf.init ViewPresentationStoreOf.init ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init WithViewStoreOf.body WithViewStoreOf.body WithViewStoreOf.body WithViewStoreOf.body WithViewStoreOf.body """ } } @MainActor func testObserveChildCount() { self.app.buttons["Toggle observe child count"].tap() XCTAssertEqual(self.app.staticTexts["Child count: N/A"].exists, true) self.assertLogs { """ NewPresentsOldTestCase.body PresentationStoreOf.deinit PresentationStoreOf.init ViewPresentationStoreOf.deinit ViewPresentationStoreOf.init """ } } @MainActor func testPresentChild_ObservingChildCount() { self.app.buttons["Toggle observe child count"].tap() self.clearLogs() self.app.buttons["Present child"].tap() XCTAssertEqual(self.app.staticTexts["0"].exists, true) XCTAssertEqual(self.app.staticTexts["Child count: 0"].exists, true) self.assertLogs { """ BasicsView.body NewPresentsOldTestCase.body PresentationStoreOf.deinit PresentationStoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.init ViewPresentationStoreOf.deinit ViewPresentationStoreOf.init ViewStoreOf.deinit ViewStoreOf.init ViewStoreOf.init ViewStoreOf.deinit ViewStoreOf.init ViewStoreOf.init WithViewStoreOf.body WithViewStoreOf.body """ } } @MainActor func testIncrementChild_ObservingChildCount() { self.app.buttons["Toggle observe child count"].tap() self.app.buttons["Present child"].tap() self.clearLogs() self.app.buttons.matching(identifier: "Increment").element(boundBy: 0).tap() XCTAssertEqual(self.app.staticTexts["1"].exists, true) XCTAssertEqual(self.app.staticTexts["Child count: 1"].exists, true) self.assertLogs { """ BasicsView.body NewPresentsOldTestCase.body PresentationStoreOf.init StoreOf.deinit StoreOf.deinit StoreOf.init StoreOf.init StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.init StoreOf.init StoreOf.init StoreOf.init ViewPresentationStoreOf.init ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.init ViewStoreOf.init ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init WithViewStoreOf.body WithViewStoreOf.body WithViewStoreOf.body """ } } @MainActor func testDismissChild_ObservingChildCount() { self.app.buttons["Toggle observe child count"].tap() self.app.buttons["Present child"].tap() self.clearLogs() self.app.buttons["Dismiss"].tap() self.assertLogs { """ BasicsView.body BasicsView.body NewPresentsOldTestCase.body NewPresentsOldTestCase.body PresentationStoreOf.deinit PresentationStoreOf.deinit PresentationStoreOf.init PresentationStoreOf.init StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.deinit StoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.init StoreOf.init ViewPresentationStoreOf.deinit ViewPresentationStoreOf.deinit ViewPresentationStoreOf.init ViewPresentationStoreOf.init ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.deinit ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init ViewStoreOf.init WithViewStoreOf.body WithViewStoreOf.body WithViewStoreOf.body WithViewStoreOf.body WithViewStoreOf.body """ } } @MainActor func testDeinit() { self.app.buttons["Toggle observe child count"].tap() self.app.buttons["Present child"].tap() self.app.buttons.matching(identifier: "Increment").element(boundBy: 0).tap() self.app.buttons["Dismiss"].tap() self.clearLogs() self.app.buttons["iOS 16 + 17"].tap() self.assertLogs { """ PresentationStoreOf.deinit ViewPresentationStoreOf.deinit """ } } }