Skip to content

Commit 63442fe

Browse files
committed
undo dumb idea
1 parent 972f269 commit 63442fe

File tree

3 files changed

+11
-71
lines changed

3 files changed

+11
-71
lines changed

Coder Desktop/Coder Desktop/Views/Agents.swift

+4-7
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,20 @@ struct Agents<VPN: VPNService, S: Session>: View {
1313
// Agents List
1414
if vpn.state == .connected {
1515
let items = vpn.menuState.sorted
16-
let visibleOnlineItems = items.prefix(defaultVisibleRows) {
17-
$0.status != .off
18-
}
19-
let visibleItems = viewAll ? items[...] : visibleOnlineItems
16+
let visibleItems = viewAll ? items[...] : items.prefix(defaultVisibleRows)
2017
ForEach(visibleItems, id: \.id) { agent in
2118
MenuItemView(item: agent, baseAccessURL: session.baseAccessURL!)
2219
.padding(.horizontal, Theme.Size.trayMargin)
2320
}
24-
if visibleItems.count == 0 {
25-
Text("No \(items.count > 0 ? "running " : "")workspaces!")
21+
if items.count == 0 {
22+
Text("No workspaces!")
2623
.font(.body)
2724
.foregroundColor(.gray)
2825
.padding(.horizontal, Theme.Size.trayInset)
2926
.padding(.top, 2)
3027
}
3128
// Only show the toggle if there are more items to show
32-
if visibleOnlineItems.count < items.count {
29+
if items.count > defaultVisibleRows {
3330
Toggle(isOn: $viewAll) {
3431
Text(viewAll ? "Show less" : "Show all")
3532
.font(.headline)

Coder Desktop/Coder Desktop/Views/Util.swift

-8
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,3 @@ extension UUID {
3131
self.init(uuid: uuid)
3232
}
3333
}
34-
35-
extension Array {
36-
func prefix(_ maxCount: Int, while predicate: (Element) -> Bool) -> ArraySlice<Element> {
37-
let failureIndex = enumerated().first(where: { !predicate($0.element) })?.offset ?? count
38-
let endIndex = Swift.min(failureIndex, maxCount)
39-
return self[..<endIndex]
40-
}
41-
}

Coder Desktop/Coder DesktopTests/AgentsTests.swift

+7-56
Original file line numberDiff line numberDiff line change
@@ -101,68 +101,19 @@ struct AgentsTests {
101101
}
102102
}
103103

104-
@Test func showAllToggle_noOnlineWorkspaces() async throws {
105-
vpn.state = .connected
106-
let tmpAgents = createMockAgents(count: Theme.defaultVisibleAgents + 1, status: .off)
107-
vpn.menuState = .init(agents: tmpAgents)
108-
109-
try await ViewHosting.host(view) {
110-
try await sut.inspection.inspect { view in
111-
var toggle = try view.find(ViewType.Toggle.self)
112-
var forEach = try view.find(ViewType.ForEach.self)
113-
#expect(throws: Never.self) { try view.find(text: "No running workspaces!") }
114-
#expect(forEach.count == 0)
115-
#expect(try toggle.labelView().text().string() == "Show all")
116-
#expect(try !toggle.isOn())
117-
118-
try toggle.tap()
119-
toggle = try view.find(ViewType.Toggle.self)
120-
forEach = try view.find(ViewType.ForEach.self)
121-
#expect(forEach.count == Theme.defaultVisibleAgents + 1)
122-
#expect(try toggle.labelView().text().string() == "Show less")
123-
124-
try toggle.tap()
125-
toggle = try view.find(ViewType.Toggle.self)
126-
forEach = try view.find(ViewType.ForEach.self)
127-
#expect(try toggle.labelView().text().string() == "Show all")
128-
#expect(forEach.count == 0)
129-
}
130-
}
131-
}
132-
133104
@Test
134-
func showAllToggle_oneOfflineWorkspace() async throws {
105+
func showOfflineWorkspace() async throws {
135106
vpn.state = .connected
136-
vpn.menuState = .init(agents: createMockAgents(count: Theme.defaultVisibleAgents - 2))
137-
let offlineAgent = Agent(
138-
id: UUID(),
139-
name: "dev",
140-
status: .off,
141-
hosts: ["offline.coder"],
142-
wsName: "offlinews",
143-
wsID: UUID()
107+
vpn.menuState = .init(
108+
agents: createMockAgents(count: Theme.defaultVisibleAgents - 1),
109+
workspaces: [UUID(): Workspace(id: UUID(), name: "offline", agents: .init())]
144110
)
145-
vpn.menuState.agents[offlineAgent.id] = offlineAgent
146111

147112
try await ViewHosting.host(view) {
148113
try await sut.inspection.inspect { view in
149-
var toggle = try view.find(ViewType.Toggle.self)
150-
var forEach = try view.find(ViewType.ForEach.self)
151-
#expect(forEach.count == Theme.defaultVisibleAgents - 2)
152-
#expect(try toggle.labelView().text().string() == "Show all")
153-
#expect(try !toggle.isOn())
154-
155-
try toggle.tap()
156-
toggle = try view.find(ViewType.Toggle.self)
157-
forEach = try view.find(ViewType.ForEach.self)
158-
#expect(forEach.count == Theme.defaultVisibleAgents - 1)
159-
#expect(try toggle.labelView().text().string() == "Show less")
160-
161-
try toggle.tap()
162-
toggle = try view.find(ViewType.Toggle.self)
163-
forEach = try view.find(ViewType.ForEach.self)
164-
#expect(try toggle.labelView().text().string() == "Show all")
165-
#expect(forEach.count == Theme.defaultVisibleAgents - 2)
114+
let forEach = try view.find(ViewType.ForEach.self)
115+
#expect(forEach.count == Theme.defaultVisibleAgents)
116+
#expect(throws: Never.self) { try view.find(link: "offline.coder") }
166117
}
167118
}
168119
}

0 commit comments

Comments
 (0)