import XCTest final class TableOfContentsTests: XCTestCase { private let app = XCUIApplication() override func setUpWithError() throws { continueAfterFailure = false } func testTocButtonExists() { app.launchAndOpenSampleBook(bookTitleQuery: "宝山辽墓材料与释读") app.waitForReader() app.showReaderChromeIfNeeded(requiredButtonIDs: [IDs.readerToc]) let tocButton = app.buttons[IDs.readerToc] XCTAssertTrue(tocButton.waitForExistence(timeout: 5), "目录按钮未出现") } func testTocButtonTappable() { app.launchAndOpenSampleBook(bookTitleQuery: "宝山辽墓材料与释读") app.waitForReader() app.showReaderChromeIfNeeded(requiredButtonIDs: [IDs.readerToc]) let tocButton = app.buttons[IDs.readerToc] XCTAssertTrue(tocButton.waitForExistence(timeout: 5)) XCTAssertTrue(tocButton.isEnabled, "目录按钮不可点击") tocButton.tap() let tocPanel = app.tables[IDs.readerTocTable] XCTAssertTrue(tocPanel.waitForExistence(timeout: 5), "目录面板未出现") XCTAssertTrue(app.navigationBars[IDs.readerTocNavBar].waitForExistence(timeout: 2), "目录导航栏未暴露") } }