mirror of
https://github.com/nvbn/thefuck.git
synced 2025-09-28 16:12:36 +01:00
#N/A: Add npm_run_script
rule
This commit is contained in:
84
tests/rules/test_npm_run_script.py
Normal file
84
tests/rules/test_npm_run_script.py
Normal file
@@ -0,0 +1,84 @@
|
||||
import pytest
|
||||
from io import BytesIO
|
||||
from thefuck.rules.npm_run_script import match, get_new_command
|
||||
from tests.utils import Command
|
||||
|
||||
stdout = '''
|
||||
Usage: npm <command>
|
||||
|
||||
where <command> is one of:
|
||||
access, add-user, adduser, apihelp, author, bin, bugs, c,
|
||||
cache, completion, config, ddp, dedupe, deprecate, dist-tag,
|
||||
dist-tags, docs, edit, explore, faq, find, find-dupes, get,
|
||||
help, help-search, home, i, info, init, install, issues, la,
|
||||
link, list, ll, ln, login, logout, ls, outdated, owner,
|
||||
pack, ping, prefix, prune, publish, r, rb, rebuild, remove,
|
||||
repo, restart, rm, root, run-script, s, se, search, set,
|
||||
show, shrinkwrap, star, stars, start, stop, t, tag, team,
|
||||
test, tst, un, uninstall, unlink, unpublish, unstar, up,
|
||||
update, upgrade, v, version, view, whoami
|
||||
|
||||
npm <cmd> -h quick help on <cmd>
|
||||
npm -l display full usage info
|
||||
npm faq commonly asked questions
|
||||
npm help <term> search for help on <term>
|
||||
npm help npm involved overview
|
||||
|
||||
Specify configs in the ini-formatted file:
|
||||
/home/nvbn/.npmrc
|
||||
or on the command line via: npm <command> --key value
|
||||
Config info can be viewed via: npm help config
|
||||
|
||||
'''
|
||||
|
||||
run_script_stdout = b'''
|
||||
Lifecycle scripts included in code-view-web:
|
||||
test
|
||||
jest
|
||||
|
||||
available via `npm run-script`:
|
||||
build
|
||||
cp node_modules/ace-builds/src-min/ -a resources/ace/ && webpack --progress --colors -p --config ./webpack.production.config.js
|
||||
develop
|
||||
cp node_modules/ace-builds/src/ -a resources/ace/ && webpack-dev-server --progress --colors
|
||||
watch-test
|
||||
jest --verbose --watch
|
||||
|
||||
'''
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def run_script(mocker):
|
||||
patch = mocker.patch('thefuck.rules.npm_run_script.Popen')
|
||||
patch.return_value.stdout = BytesIO(run_script_stdout)
|
||||
return patch.return_value
|
||||
|
||||
|
||||
@pytest.mark.usefixtures('no_memoize')
|
||||
@pytest.mark.parametrize('script', [
|
||||
'npm watch-test', 'npm develop'])
|
||||
def test_match(script):
|
||||
command = Command(script, stdout)
|
||||
assert match(command)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures('no_memoize')
|
||||
@pytest.mark.parametrize('command, run_script_out', [
|
||||
(Command('npm test', 'TEST FAIL'), run_script_stdout),
|
||||
(Command('npm watch-test', 'TEST FAIL'), run_script_stdout),
|
||||
(Command('npm test', stdout), run_script_stdout),
|
||||
(Command('vim watch-test', stdout), run_script_stdout)])
|
||||
def test_not_match(run_script, command, run_script_out):
|
||||
run_script.stdout = BytesIO(run_script_out)
|
||||
assert not match(command)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures('no_memoize')
|
||||
@pytest.mark.parametrize('script, result', [
|
||||
('npm watch-test', 'npm run-script watch-test'),
|
||||
('npm -i develop', 'npm run-script -i develop'),
|
||||
('npm -i watch-script --path ..',
|
||||
'npm run-script -i watch-script --path ..')])
|
||||
def test_get_new_command(script, result):
|
||||
command = Command(script, stdout)
|
||||
assert get_new_command(command) == result
|
Reference in New Issue
Block a user