make name the core block info
This commit is contained in:
@@ -20,9 +20,11 @@ import Testing
|
||||
let blocks = try PHBlock.load(from: """
|
||||
[[block]]
|
||||
command = "printf a"
|
||||
name = "a"
|
||||
|
||||
[[block]]
|
||||
command = "printf b"
|
||||
name = "b"
|
||||
""")
|
||||
|
||||
let config = try PHConfig.load()
|
||||
|
||||
@@ -16,6 +16,7 @@ import Testing
|
||||
|
||||
[[block]]
|
||||
command = "echo world"
|
||||
name = "world"
|
||||
"""
|
||||
|
||||
let blocks = try PHBlock.load(from: toml)
|
||||
@@ -25,7 +26,7 @@ import Testing
|
||||
#expect(blocks[0].name == "greeting")
|
||||
#expect(blocks[0].refresh == 5.0)
|
||||
#expect(blocks[0].label == nil)
|
||||
#expect(blocks[1].name == nil)
|
||||
#expect(blocks[1].name == "world")
|
||||
#expect(blocks[1].refresh == nil)
|
||||
}
|
||||
|
||||
@@ -73,11 +74,28 @@ private func makeBlocksConfigDir() throws -> URL {
|
||||
|
||||
// MARK: - Compute
|
||||
|
||||
@MainActor
|
||||
@Test func computeSeesBlockEnvironment() async throws {
|
||||
// The `[env]` section (overlaid by `BarController`) must reach the script's
|
||||
// process environment — this is the wiring the `env` config documents.
|
||||
let block = try PHBlock.load(from: """
|
||||
[[block]]
|
||||
name = "env"
|
||||
command = "echo $PHBAR_TEST_VAR"
|
||||
""")[0]
|
||||
block.environment = PHEnvironment(variables: ["PHBAR_TEST_VAR": "panini"])
|
||||
|
||||
let output = await block.compute()
|
||||
|
||||
#expect(output == "panini")
|
||||
}
|
||||
|
||||
@MainActor
|
||||
@Test func computeReturnsCommandStdout() async throws {
|
||||
let blocks = try PHBlock.load(from: """
|
||||
[[block]]
|
||||
command = "printf panini"
|
||||
name = "panini"
|
||||
""")
|
||||
|
||||
let output = await blocks[0].compute()
|
||||
@@ -95,6 +113,7 @@ private func makeBlocksConfigDir() throws -> URL {
|
||||
let blocks = try PHBlock.load(from: """
|
||||
[[block]]
|
||||
command = "pwd"
|
||||
name = "pwd"
|
||||
""")
|
||||
|
||||
let output = await blocks[0].compute()
|
||||
@@ -112,6 +131,7 @@ private func makeBlocksConfigDir() throws -> URL {
|
||||
let block = try PHBlock.load(from: """
|
||||
[[block]]
|
||||
command = "printf panini"
|
||||
name = "panini"
|
||||
""")[0]
|
||||
|
||||
#expect(block.label == nil)
|
||||
@@ -126,6 +146,7 @@ private func makeBlocksConfigDir() throws -> URL {
|
||||
let block = try PHBlock.load(from: """
|
||||
[[block]]
|
||||
command = "printf hi"
|
||||
name = "hi"
|
||||
""")[0]
|
||||
|
||||
block.startAutoRefresh()
|
||||
@@ -149,6 +170,7 @@ private func makeBlocksConfigDir() throws -> URL {
|
||||
let toml = """
|
||||
[[block]]
|
||||
command = "n=$(cat \(path) 2>/dev/null || echo 0); n=$((n+1)); echo $n > \(path); echo $n"
|
||||
name = "counter"
|
||||
refresh = 0.05
|
||||
"""
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ private final class FakeEventSource: PHEventSource {
|
||||
let toml = """
|
||||
[[block]]
|
||||
command = "echo hi"
|
||||
name = "a"
|
||||
events = ["volume", "network", "appearance", "power", "mpd"]
|
||||
"""
|
||||
|
||||
@@ -47,6 +48,7 @@ private final class FakeEventSource: PHEventSource {
|
||||
let blocks = try PHBlock.load(from: """
|
||||
[[block]]
|
||||
command = "echo hi"
|
||||
name = "b"
|
||||
events = ["totally_made_up"]
|
||||
""")
|
||||
|
||||
@@ -58,6 +60,7 @@ private final class FakeEventSource: PHEventSource {
|
||||
let blocks = try PHBlock.load(from: """
|
||||
[[block]]
|
||||
command = "echo hi"
|
||||
name = "c"
|
||||
""")
|
||||
|
||||
#expect(blocks[0].events == nil)
|
||||
@@ -161,6 +164,7 @@ private final class FakeEventSource: PHEventSource {
|
||||
let block = try PHBlock.load(from: """
|
||||
[[block]]
|
||||
command = "n=$(cat \(path) 2>/dev/null || echo 0); n=$((n+1)); echo $n > \(path); echo $n"
|
||||
name = "d"
|
||||
events = ["volume"]
|
||||
""")[0]
|
||||
block.registry = registry
|
||||
@@ -197,6 +201,7 @@ private final class FakeEventSource: PHEventSource {
|
||||
let block = try PHBlock.load(from: """
|
||||
[[block]]
|
||||
command = "n=$(cat \(path) 2>/dev/null || echo 0); n=$((n+1)); echo $n > \(path); echo $n"
|
||||
name = "e"
|
||||
refresh = 0.2
|
||||
events = ["volume"]
|
||||
""")[0]
|
||||
|
||||
@@ -109,7 +109,7 @@ private struct DimensionWrapper: Decodable {
|
||||
styles: nil
|
||||
)
|
||||
let config = PHConfig(theme: "default", window: "default", blocks: nil, env: nil, monitors: nil)
|
||||
let blocks = try PHBlock.load(from: "[[block]]\ncommand = \"echo x\"")
|
||||
let blocks = try PHBlock.load(from: "[[block]]\nname = \"x\"\ncommand = \"echo x\"")
|
||||
let controller = BarController(config: config, screen: screen, theme: theme, blocks: blocks, debug: false)
|
||||
|
||||
let frame = BarWindow.computeFrame(from: controller)
|
||||
@@ -128,7 +128,7 @@ private struct DimensionWrapper: Decodable {
|
||||
styles: nil
|
||||
)
|
||||
let config = PHConfig(theme: "default", window: "abs", blocks: nil, env: nil, monitors: nil)
|
||||
let blocks = try PHBlock.load(from: "[[block]]\ncommand = \"echo x\"")
|
||||
let blocks = try PHBlock.load(from: "[[block]]\nname = \"x\"\ncommand = \"echo x\"")
|
||||
let controller = BarController(config: config, screen: screen, theme: theme, blocks: blocks, debug: false)
|
||||
|
||||
let frame = BarWindow.computeFrame(from: controller)
|
||||
@@ -155,7 +155,7 @@ private struct DimensionWrapper: Decodable {
|
||||
styles: nil
|
||||
)
|
||||
let config = PHConfig(theme: "default", window: "inset", blocks: nil, env: nil, monitors: nil)
|
||||
let blocks = try PHBlock.load(from: "[[block]]\ncommand = \"echo x\"")
|
||||
let blocks = try PHBlock.load(from: "[[block]]\nname = \"x\"\ncommand = \"echo x\"")
|
||||
let controller = BarController(config: config, screen: screen, theme: theme, blocks: blocks, debug: false)
|
||||
|
||||
let frame = BarWindow.computeFrame(from: controller)
|
||||
|
||||
Reference in New Issue
Block a user