Skip to content

Commit

Permalink
test(cli): add tests for core/shell_runner module (#612)
Browse files Browse the repository at this point in the history
Signed-off-by: Quan Nguyen <quan@swirldslabs.com>
  • Loading branch information
qnswirlds authored Dec 7, 2023
1 parent 3ec428c commit 74b54be
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions fullstack-network-manager/test/unit/core/shell_runner.test.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { describe, expect, it, jest } from '@jest/globals'
import { ShellRunner } from '../../../src/core/shell_runner.mjs'
import { NewLogger, Logger } from '../../../src/core/logging.mjs'
import { ChildProcess } from 'child_process'
import { Readable } from 'stream'

describe('ShellRunner', () => {
const logger = NewLogger('debug')
const shellRunner = new ShellRunner(logger)
const loggerSpy = jest.spyOn(Logger.prototype, 'debug').mockImplementation()
const childProcessSpy = jest.spyOn(ChildProcess.prototype, 'on')
const readableSpy = jest.spyOn(Readable.prototype, 'on')

it('should run command', async () => {
await shellRunner.run('ls -l')
expect(loggerSpy).toHaveBeenNthCalledWith(1, 'Executing command: \'ls -l\'')
expect(loggerSpy).toHaveBeenNthCalledWith(2,'Finished executing: \'ls -l\'', {
'commandExitCode': expect.any(Number),
'commandExitSignal': null,
'commandOutput': expect.any(Array)
})
expect(readableSpy).toHaveBeenCalledWith('data', expect.anything())
expect(childProcessSpy).toHaveBeenCalledWith('exit', expect.anything())
})

jest.clearAllMocks()
})

0 comments on commit 74b54be

Please sign in to comment.