cli-testing-library
v2.0.2
Published
Simple and complete CLI testing utilities that encourage good testing practices.
Downloads
2,390
Maintainers
Readme
Table of Contents
This project is not affiliated with the "Testing Library" ecosystem that this project is clearly inspired from. We're just big fans :)
Installation
This module is distributed via [npm][npm] which is bundled with [node][node] and
should be installed as one of your project's devDependencies
:
npm install --save-dev cli-testing-library
Usage
This is currently the only section of "usage" documentation. We'll be expanding it as soon as possible
Usage example:
const {resolve} = require('path')
const {render} = require('cli-testing-library')
test('Is able to make terminal input and view in-progress stdout', async () => {
const {clear, findByText, queryByText, userEvent} = await render('node', [
resolve(__dirname, './execute-scripts/stdio-inquirer.js'),
])
const instance = await findByText('First option')
expect(instance).toBeInTheConsole()
expect(await findByText('❯ One')).toBeInTheConsole()
clear()
userEvent('[ArrowDown]')
expect(await findByText('❯ Two')).toBeInTheConsole()
clear()
userEvent.keyboard('[Enter]')
expect(await findByText('First option: Two')).toBeInTheConsole()
expect(await queryByText('First option: Three')).not.toBeInTheConsole()
})
For a API reference documentation, including suggestions on how to use this library, see our documentation introduction with further reading.
While this library does work in Windows, it does not appear to function properly in Windows CI environments, such as GitHub actions. As a result, you may need to either switch CI systems or limit your CI to only run in Linux
If you know how to fix this, please let us know in this tracking issue
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!