diff options
| author | William Boman <william@redwill.se> | 2025-02-16 17:07:22 +0100 |
|---|---|---|
| committer | William Boman <william@redwill.se> | 2025-02-19 12:15:49 +0100 |
| commit | 5063ba98dc220a754caf68e510fb192755b1bdf0 (patch) | |
| tree | 174abf2bd4339e3ea1db3652610469f3f09e24b2 /tests/mason-core/spawn_spec.lua | |
| parent | feat(context): add ctx:fetch() (diff) | |
| download | mason-5063ba98dc220a754caf68e510fb192755b1bdf0.tar mason-5063ba98dc220a754caf68e510fb192755b1bdf0.tar.gz mason-5063ba98dc220a754caf68e510fb192755b1bdf0.tar.bz2 mason-5063ba98dc220a754caf68e510fb192755b1bdf0.tar.lz mason-5063ba98dc220a754caf68e510fb192755b1bdf0.tar.xz mason-5063ba98dc220a754caf68e510fb192755b1bdf0.tar.zst mason-5063ba98dc220a754caf68e510fb192755b1bdf0.zip | |
refactor: turn StdioSink into a proper class
Diffstat (limited to 'tests/mason-core/spawn_spec.lua')
| -rw-r--r-- | tests/mason-core/spawn_spec.lua | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/tests/mason-core/spawn_spec.lua b/tests/mason-core/spawn_spec.lua index a1432294..9fc91200 100644 --- a/tests/mason-core/spawn_spec.lua +++ b/tests/mason-core/spawn_spec.lua @@ -26,16 +26,19 @@ describe("async spawn", function() end) it("should use provided stdio_sink", function() - local stdio = process.in_memory_sink() + local stdout = spy.new() + local stdio = process.StdioSink:new { + stdout = stdout, + } local result = a.run_blocking(spawn.env, { env_raw = { "FOO=bar" }, - stdio_sink = stdio.sink, + stdio_sink = stdio, }) assert.is_true(result:is_success()) - assert.equals(nil, result:get_or_nil().stdout) - assert.equals(nil, result:get_or_nil().stderr) - assert.equals("FOO=bar\n", table.concat(stdio.buffers.stdout, "")) - assert.equals("", table.concat(stdio.buffers.stderr, "")) + assert.equals(nil, result:get_or_nil()) + -- Not 100 %guaranteed it's only called once because output is always buffered, but it's extremely likely + assert.spy(stdout).was_called(1) + assert.spy(stdout).was_called_with "FOO=bar\n" end) it("should pass command arguments", function() @@ -68,10 +71,7 @@ describe("async spawn", function() assert.spy(process.spawn).was_called_with( "bash", match.tbl_containing { - stdio_sink = match.tbl_containing { - stdout = match.is_function(), - stderr = match.is_function(), - }, + stdio_sink = match.instanceof(process.BufferedSink), env = match.list_containing "VAR=world", args = match.tbl_containing { "-c", @@ -134,7 +134,7 @@ describe("async spawn", function() it("should format failure message", function() stub(process, "spawn", function(cmd, opts, callback) - opts.stdio_sink.stderr(("This is an error message for %s!"):format(cmd)) + opts.stdio_sink:stderr(("This is an error message for %s!"):format(cmd)) callback(false, 127) end) |
