forked from CodeEditApp/CodeEdit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTasksMenuUITests.swift
91 lines (75 loc) Β· 3.29 KB
/
TasksMenuUITests.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//
// ActivityViewerTasksMenuTests.swift
// CodeEditUITests
//
// Created by Khan Winter on 1/3/25.
//
import XCTest
final class ActivityViewerTasksMenuTests: XCTestCase {
// After all tests in this group
override static func tearDown() {
do {
try cleanUpTempProjectPaths()
} catch {
print("Failed to clean up test temp directories.")
print(error)
}
}
var app: XCUIApplication!
var window: XCUIElement!
@MainActor
override func setUp() async throws {
(app, _) = try App.launchWithTempDir()
window = Query.getWindow(app)
XCTAssertTrue(window.exists, "Window not found")
}
func testTaskMenu() {
let viewer = window.groups["Activity Viewer"]
XCTAssertNotNil(viewer, "No Activity Viewer")
let taskDropdown = viewer.buttons["Active Task"]
XCTAssertTrue(taskDropdown.waitForExistence(timeout: 2.0), "No Task Dropdown")
XCTAssertEqual(taskDropdown.value as? String, "Create Tasks", "Incorrect empty tasks label")
taskDropdown.click()
XCTAssertGreaterThan(app.popovers.count, 0, "Popover didn't show up")
}
func testNewTask() {
let viewer = window.groups["Activity Viewer"]
let taskDropdown = viewer.buttons["Active Task"]
taskDropdown.click()
let popover = app.popovers.firstMatch
XCTAssertTrue(popover.exists, "Popover did not appear on click")
let addTaskListOption = popover.buttons["Add Task..."]
XCTAssertTrue(addTaskListOption.exists, "No add task option in dropdown")
addTaskListOption.click()
let workspaceSettingsWindow = window.sheets["Workspace Settings"]
XCTAssertTrue(workspaceSettingsWindow.waitForExistence(timeout: 1.0), "Workspace settings did not appear")
let addTaskButton = workspaceSettingsWindow.buttons["Add Task..."]
XCTAssertTrue(addTaskButton.exists, "No add task button")
addTaskButton.click()
// Enter in task information
let newSheet = workspaceSettingsWindow.sheets.firstMatch
XCTAssertTrue(newSheet.waitForExistence(timeout: 1.0), "New task sheet did not appear")
let taskName = newSheet.textFields["Task Name"]
XCTAssertTrue(taskName.exists)
taskName.click()
taskName.typeText("New Test Task")
XCTAssertEqual(taskName.value as? String, "New Test Task", "Name did not enter in")
let taskCommand = newSheet.textFields["Task Command"]
XCTAssertTrue(taskCommand.exists)
taskCommand.click()
taskCommand.typeText("echo \"Hello World\"")
XCTAssertEqual(taskCommand.value as? String, "echo \"Hello World\"", "Command did not enter in")
let saveButton = newSheet.buttons["Save"]
XCTAssertTrue(saveButton.exists)
saveButton.click()
workspaceSettingsWindow.buttons["Done"].click()
XCTAssertFalse(
workspaceSettingsWindow.waitForNonExistence(timeout: 1.0),
"Workspace Settings should have dismissed"
)
// Ensure the new task was added as an option
XCTAssertEqual(taskDropdown.value as? String, "New Test Task")
taskDropdown.click()
XCTAssertTrue(popover.buttons["New Test Task"].exists, "New task was not added to the task list.")
}
}