diff options
Diffstat (limited to 'tests/mason-core/process_spec.lua')
| -rw-r--r-- | tests/mason-core/process_spec.lua | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/mason-core/process_spec.lua b/tests/mason-core/process_spec.lua new file mode 100644 index 00000000..f3c00385 --- /dev/null +++ b/tests/mason-core/process_spec.lua @@ -0,0 +1,28 @@ +local spy = require "luassert.spy" +local match = require "luassert.match" +local process = require "mason-core.process" + +describe("process.spawn", function() + -- Unix only + it( + "should spawn command and feed output to sink", + async_test(function() + local stdio = process.in_memory_sink() + local callback = spy.new() + process.spawn("env", { + args = {}, + env = { + "HELLO=world", + "MY_ENV=var", + }, + stdio_sink = stdio.sink, + }, callback) + + assert.wait_for(function() + assert.spy(callback).was_called(1) + assert.spy(callback).was_called_with(true, 0, match.is_number()) + assert.equal(table.concat(stdio.buffers.stdout, ""), "HELLO=world\nMY_ENV=var\n") + end) + end) + ) +end) |
