File system cleanup
This commit is contained in:
103
CommandNotch/CommandNotchUITests/CommandNotchUITests.swift
Normal file
103
CommandNotch/CommandNotchUITests/CommandNotchUITests.swift
Normal file
@@ -0,0 +1,103 @@
|
||||
import XCTest
|
||||
|
||||
final class CommandNotchUITests: XCTestCase {
|
||||
override func setUpWithError() throws {
|
||||
continueAfterFailure = false
|
||||
}
|
||||
|
||||
func testSettingsWorkspaceRenameFlow() {
|
||||
let app = launchIntoSettings()
|
||||
|
||||
let newWorkspaceButton = app.buttons["settings.workspaces.new"]
|
||||
XCTAssertTrue(newWorkspaceButton.waitForExistence(timeout: 5))
|
||||
newWorkspaceButton.tap()
|
||||
|
||||
let nameField = app.textFields["settings.workspaces.name-field"]
|
||||
XCTAssertTrue(nameField.waitForExistence(timeout: 5))
|
||||
nameField.tap()
|
||||
nameField.typeKey("a", modifierFlags: .command)
|
||||
nameField.typeText(XCUIKeyboardKey.delete.rawValue)
|
||||
nameField.typeText("Docs")
|
||||
|
||||
let saveButton = app.buttons["settings.workspaces.save-name"]
|
||||
XCTAssertTrue(saveButton.exists)
|
||||
saveButton.tap()
|
||||
|
||||
XCTAssertTrue(app.staticTexts["Docs"].waitForExistence(timeout: 5))
|
||||
}
|
||||
|
||||
func testSettingsWorkspaceDeleteFallsBackToMain() {
|
||||
let app = launchIntoSettings()
|
||||
|
||||
let newWorkspaceButton = app.buttons["settings.workspaces.new"]
|
||||
XCTAssertTrue(newWorkspaceButton.waitForExistence(timeout: 5))
|
||||
newWorkspaceButton.tap()
|
||||
|
||||
let nameField = app.textFields["settings.workspaces.name-field"]
|
||||
XCTAssertTrue(nameField.waitForExistence(timeout: 5))
|
||||
nameField.tap()
|
||||
nameField.typeKey("a", modifierFlags: .command)
|
||||
nameField.typeText(XCUIKeyboardKey.delete.rawValue)
|
||||
nameField.typeText("Scratch")
|
||||
|
||||
let saveButton = app.buttons["settings.workspaces.save-name"]
|
||||
XCTAssertTrue(saveButton.exists)
|
||||
saveButton.tap()
|
||||
XCTAssertTrue(app.staticTexts["Scratch"].waitForExistence(timeout: 5))
|
||||
|
||||
let assignCurrentButton = app.buttons["settings.workspaces.assign-current"]
|
||||
XCTAssertTrue(assignCurrentButton.waitForExistence(timeout: 5))
|
||||
assignCurrentButton.tap()
|
||||
|
||||
let deleteButton = app.buttons["settings.workspaces.delete"]
|
||||
XCTAssertTrue(deleteButton.waitForExistence(timeout: 5))
|
||||
deleteButton.tap()
|
||||
|
||||
let confirmDeleteButton = app.sheets.buttons["Delete"]
|
||||
XCTAssertTrue(confirmDeleteButton.waitForExistence(timeout: 5))
|
||||
confirmDeleteButton.tap()
|
||||
|
||||
let mainValuePredicate = NSPredicate(format: "value == %@", "Main")
|
||||
expectation(for: mainValuePredicate, evaluatedWith: nameField)
|
||||
waitForExpectations(timeout: 5)
|
||||
}
|
||||
|
||||
func testOpenNotchLaunchShowsInteractiveControls() {
|
||||
let app = XCUIApplication()
|
||||
app.launchArguments = [
|
||||
"--uitest-regular-activation",
|
||||
"--uitest-open-notch"
|
||||
]
|
||||
app.launch()
|
||||
|
||||
let notch = app.descendants(matching: .any)["notch.container"]
|
||||
XCTAssertTrue(notch.waitForExistence(timeout: 5))
|
||||
|
||||
let newTabButton = app.buttons["New Tab"]
|
||||
XCTAssertTrue(newTabButton.waitForExistence(timeout: 5))
|
||||
|
||||
let settingsButton = app.buttons["Settings"]
|
||||
XCTAssertTrue(settingsButton.waitForExistence(timeout: 5))
|
||||
settingsButton.tap()
|
||||
|
||||
XCTAssertTrue(app.windows["CommandNotch Settings"].waitForExistence(timeout: 5))
|
||||
}
|
||||
|
||||
@discardableResult
|
||||
private func launchIntoSettings() -> XCUIApplication {
|
||||
let app = XCUIApplication()
|
||||
app.launchArguments = [
|
||||
"--uitest-regular-activation",
|
||||
"--uitest-show-settings"
|
||||
]
|
||||
app.launch()
|
||||
|
||||
let settingsWindow = app.windows["CommandNotch Settings"]
|
||||
XCTAssertTrue(settingsWindow.waitForExistence(timeout: 5))
|
||||
|
||||
let workspacesTab = app.descendants(matching: .any)["settings.tab.workspaces"]
|
||||
XCTAssertTrue(workspacesTab.waitForExistence(timeout: 5))
|
||||
workspacesTab.tap()
|
||||
return app
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user