@testable import AppBundle import Common import XCTest @MainActor final class SplitCommandTest: XCTestCase { override func setUp() async throws { setUpWorkspacesForTests() } func testSplit() async { let root = Workspace.get(byName: name).rootTilingContainer.apply { assertEquals(TestWindow.new(id: 1, parent: $0).focusWindow(), true) TestWindow.new(id: 2, parent: $0) } await parseCommand("split vertical").cmdOrDie.run(.defaultEnv, .emptyStdin) assertEquals(root.layoutDescription, .h_tiles([ .v_tiles([ .window(1), ]), .window(2), ])) } func testSplitOppositeOrientation() async { let root = Workspace.get(byName: name).rootTilingContainer.apply { assertEquals(TestWindow.new(id: 1, parent: $0).focusWindow(), true) TestWindow.new(id: 2, parent: $0) } await parseCommand("split opposite").cmdOrDie.run(.defaultEnv, .emptyStdin) assertEquals(root.layoutDescription, .h_tiles([ .v_tiles([ .window(1), ]), .window(2), ])) } func testChangeOrientation() async { let root = Workspace.get(byName: name).rootTilingContainer.apply { TilingContainer.newVTiles(parent: $0, adaptiveWeight: 1).apply { assertEquals(TestWindow.new(id: 1, parent: $0).focusWindow(), true) } TestWindow.new(id: 2, parent: $0) } await parseCommand("split horizontal").cmdOrDie.run(.defaultEnv, .emptyStdin) assertEquals(root.layoutDescription, .h_tiles([ .h_tiles([ .window(1), ]), .window(2), ])) } func testToggleOrientation() async { let root = Workspace.get(byName: name).rootTilingContainer.apply { TilingContainer.newVTiles(parent: $0, adaptiveWeight: 1).apply { assertEquals(TestWindow.new(id: 1, parent: $0).focusWindow(), true) } TestWindow.new(id: 2, parent: $0) } await parseCommand("split opposite").cmdOrDie.run(.defaultEnv, .emptyStdin) assertEquals(root.layoutDescription, .h_tiles([ .h_tiles([ .window(1), ]), .window(2), ])) } }