@@ -35,7 +35,7 @@ def rule_runner() -> RuleRunner:
35
35
return rule_runner
36
36
37
37
38
- def test_creates_run_requests_package_json_scripts (rule_runner : RuleRunner ) -> None :
38
+ def test_creates_npm_run_requests_package_json_scripts (rule_runner : RuleRunner ) -> None :
39
39
rule_runner .write_files (
40
40
{
41
41
"src/js/BUILD" : dedent (
@@ -77,6 +77,49 @@ def test_creates_run_requests_package_json_scripts(rule_runner: RuleRunner) -> N
77
77
assert result .args == ("npm" , "--prefix" , "{chroot}" , "run" , script )
78
78
79
79
80
+ def test_creates_yarn_run_requests_package_json_scripts (rule_runner : RuleRunner ) -> None :
81
+ rule_runner .write_files (
82
+ {
83
+ "src/js/BUILD" : dedent (
84
+ """\
85
+ package_json(
86
+ scripts=[
87
+ node_build_script(entry_point="build", output_directories=["dist"]),
88
+ node_build_script(entry_point="compile", output_directories=["dist"]),
89
+ node_build_script(entry_point="transpile", output_directories=["dist"]),
90
+ ]
91
+ )
92
+ """
93
+ ),
94
+ "src/js/package.json" : json .dumps (
95
+ {
96
+ "name" : "ham" ,
97
+ "version" : "0.0.1" ,
98
+ "browser" : "lib/index.mjs" ,
99
+ "scripts" : {
100
+ "build" : "swc ./lib -d dist" ,
101
+ "transpile" : "babel ./lib -d dist" ,
102
+ "compile" : "tsc ./lib --emit -d bin" ,
103
+ },
104
+ "packageManager" :
"[email protected] " ,
105
+ }
106
+ ),
107
+ "src/js/yarn.lock" : "" ,
108
+ "src/js/lib/BUILD" : dedent (
109
+ """\
110
+ javascript_sources()
111
+ """
112
+ ),
113
+ "src/js/lib/index.mjs" : "" ,
114
+ }
115
+ )
116
+ for script in ("build" , "compile" , "transpile" ):
117
+ tgt = rule_runner .get_target (Address ("src/js" , generated_name = script ))
118
+ result = rule_runner .request (RunRequest , [RunNodeBuildScriptFieldSet .create (tgt )])
119
+
120
+ assert result .args == ("yarn" , "--cwd" , "{chroot}" , "run" , script )
121
+
122
+
80
123
def test_extra_envs (rule_runner : RuleRunner ) -> None :
81
124
rule_runner .write_files (
82
125
{
0 commit comments