diff --git a/tests/rules/test_yarn_alias.py b/tests/rules/test_yarn_alias.py index 83d38117..81dbf66d 100644 --- a/tests/rules/test_yarn_alias.py +++ b/tests/rules/test_yarn_alias.py @@ -4,12 +4,13 @@ from tests.utils import Command stderr_remove = 'error Did you mean `yarn remove`?' - +stderr_etl = 'error Command "etil" not found. Did you mean "etl"?' stderr_list = 'error Did you mean `yarn list`?' @pytest.mark.parametrize('command', [ Command(script='yarn rm', stderr=stderr_remove), + Command(script='yarn etil', stderr=stderr_etl), Command(script='yarn ls', stderr=stderr_list)]) def test_match(command): assert match(command) @@ -17,6 +18,7 @@ def test_match(command): @pytest.mark.parametrize('command, new_command', [ (Command('yarn rm', stderr=stderr_remove), 'yarn remove'), + (Command('yarn etil', stderr=stderr_etl), 'yarn etl'), (Command('yarn ls', stderr=stderr_list), 'yarn list')]) def test_get_new_command(command, new_command): assert get_new_command(command) == new_command diff --git a/thefuck/rules/yarn_alias.py b/thefuck/rules/yarn_alias.py index 4c1a584b..9750218a 100644 --- a/thefuck/rules/yarn_alias.py +++ b/thefuck/rules/yarn_alias.py @@ -9,6 +9,6 @@ def match(command): def get_new_command(command): broken = command.script_parts[1] - fix = re.findall(r'Did you mean `yarn ([^`]*)`', command.stderr)[0] + fix = re.findall(r'Did you mean [`"](?:yarn )?([^`"]*)[`"]', command.stderr)[0] return replace_argument(command.script, broken, fix)