mirror of https://github.com/actions/toolkit
54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
![]() |
import {Command} from '../src/exec-command-wrapper'
|
||
|
import * as io from '@actions/io'
|
||
|
|
||
|
const IS_LINUX = process.platform === 'linux'
|
||
|
|
||
|
describe('Command', () => {
|
||
|
it('creates a command object', async () => {
|
||
|
if (IS_LINUX) {
|
||
|
const toolpath = await io.which('echo', true)
|
||
|
const command = new Command(`"${toolpath}"`, ['hello'])
|
||
|
expect(command).toBeDefined()
|
||
|
expect(command).toBeInstanceOf(Command)
|
||
|
}
|
||
|
})
|
||
|
|
||
|
it('runs a command with non-zero exit code', async () => {
|
||
|
if (IS_LINUX) {
|
||
|
const nonExistentDir = 'non-existent-dir'
|
||
|
const toolpath = await io.which('ls', true)
|
||
|
const args = ['-l', nonExistentDir]
|
||
|
const command = new Command(`"${toolpath}"`, args)
|
||
|
|
||
|
let failed = false
|
||
|
|
||
|
await command.execute().catch(err => {
|
||
|
failed = true
|
||
|
expect(err.message).toContain(
|
||
|
`The process '${toolpath}' failed with exit code `
|
||
|
)
|
||
|
})
|
||
|
|
||
|
expect(failed).toBe(true)
|
||
|
}
|
||
|
})
|
||
|
|
||
|
it('runs a command with zero exit code', async () => {
|
||
|
if (IS_LINUX) {
|
||
|
const toolpath = await io.which('echo', true)
|
||
|
const command = new Command(`"${toolpath}"`, ['hello'])
|
||
|
const result = await command.execute()
|
||
|
expect(result).toEqual('hello')
|
||
|
}
|
||
|
})
|
||
|
|
||
|
it('runs a command with empty output', async () => {
|
||
|
if (IS_LINUX) {
|
||
|
const toolpath = await io.which('echo', true)
|
||
|
const command = new Command(`"${toolpath}"`, [''])
|
||
|
const result = await command.execute()
|
||
|
expect(result).toEqual('')
|
||
|
}
|
||
|
})
|
||
|
})
|