Skip to content

Commit

Permalink
fix node hooks when NPM_CONFIG_USERCONFIG is set
Browse files Browse the repository at this point in the history
  • Loading branch information
asottile committed Jun 19, 2020
1 parent 7d46852 commit 6ec47ea
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
3 changes: 3 additions & 0 deletions pre_commit/languages/node.py
Expand Up @@ -10,6 +10,7 @@
from pre_commit import parse_shebang
from pre_commit.envcontext import envcontext
from pre_commit.envcontext import PatchesT
from pre_commit.envcontext import UNSET
from pre_commit.envcontext import Var
from pre_commit.hook import Hook
from pre_commit.languages import helpers
Expand Down Expand Up @@ -56,6 +57,8 @@ def get_env_patch(venv: str) -> PatchesT:
('NODE_VIRTUAL_ENV', venv),
('NPM_CONFIG_PREFIX', install_prefix),
('npm_config_prefix', install_prefix),
('NPM_CONFIG_USERCONFIG', UNSET),
('npm_config_userconfig', UNSET),
('NODE_PATH', os.path.join(venv, lib_dir, 'node_modules')),
('PATH', (bin_dir(venv), os.pathsep, Var('PATH'))),
)
Expand Down
8 changes: 8 additions & 0 deletions tests/repository_test.py
Expand Up @@ -260,6 +260,14 @@ def test_run_versioned_node_hook(tempdir_factory, store):
)


@xfailif_windows # pragma: win32 no cover
def test_node_hook_with_npm_userconfig_set(tempdir_factory, store, tmpdir):
cfg = tmpdir.join('cfg')
cfg.write('cache=/dne\n')
with mock.patch.dict(os.environ, NPM_CONFIG_USERCONFIG=str(cfg)):
test_run_a_node_hook(tempdir_factory, store)


def test_run_a_ruby_hook(tempdir_factory, store):
_test_hook_repo(
tempdir_factory, store, 'ruby_hooks_repo',
Expand Down

0 comments on commit 6ec47ea

Please sign in to comment.