Skip to content

Commit 3fe7c6e

Browse files
committed
refactor: raise unsupported package manager
1 parent 86475c8 commit 3fe7c6e

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

src/python/pants/backend/javascript/nodejs_project.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,13 @@ def generate_lockfile_args(self) -> tuple[str, ...]:
8080
def immutable_install_args(self) -> tuple[str, ...]:
8181
if self.package_manager == "npm":
8282
return ("clean-install",)
83+
if self.package_manager == "pnpm":
84+
return ("install", "--frozen-lockfile")
8385
if self.package_manager == "yarn":
8486
if nodesemver.satisfies(self.package_manager_version, "1.x"):
8587
return ("install", "--frozen-lockfile")
8688
return ("install", "--immutable")
87-
return ("install", "--frozen-lockfile")
89+
raise ValueError(f"Unsupported package manager: {self.package_manager}")
8890

8991
@property
9092
def workspace_specifier_arg(self) -> str:

src/python/pants/backend/javascript/nodejs_project_test.py

+15
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,21 @@ def test_immutable_install_args_property(rule_runner: RuleRunner) -> None:
9595
}
9696

9797

98+
def test_immutable_install_args_property_with_unsupported_package_manager(
99+
rule_runner: RuleRunner,
100+
) -> None:
101+
rule_runner.write_files(
102+
{
103+
"src/js/foo/BUILD": "package_json()",
104+
"src/js/foo/package.json": given_package("foo", "0.0.1", package_manager="[email protected]"),
105+
}
106+
)
107+
projects = rule_runner.request(AllNodeJSProjects, [])
108+
expected_error = "Unsupported package manager: bar"
109+
with pytest.raises(ValueError, match=expected_error):
110+
{project.immutable_install_args for project in projects}
111+
112+
98113
def test_root_package_json_is_supported(rule_runner: RuleRunner) -> None:
99114
rule_runner.write_files(
100115
{

0 commit comments

Comments
 (0)