@@ -533,6 +533,18 @@ def capture_stdout
533533 "Missing essential rspack dependency: @rspack/dev-server (^2.0.0)"
534534 )
535535 end
536+
537+ it "does not add a missing issue when dev-server is installed" do
538+ dev_server_pkg = root_path . join ( "node_modules/@rspack/dev-server/package.json" )
539+ FileUtils . mkdir_p ( dev_server_pkg . dirname )
540+ File . write ( dev_server_pkg , JSON . generate ( { "name" => "@rspack/dev-server" , "version" => "2.0.0" } ) )
541+
542+ doctor . send ( :check_peer_dependencies )
543+
544+ expect ( doctor . issues ) . not_to include (
545+ "Missing essential rspack dependency: @rspack/dev-server (^2.0.0)"
546+ )
547+ end
536548 end
537549
538550 context "with essential rspack dependencies declared as peers" do
@@ -591,7 +603,7 @@ def capture_stdout
591603
592604 it "adds an unsupported manifest plugin version issue" do
593605 doctor . send ( :check_peer_dependencies )
594- expect ( doctor . issues ) . to include ( match ( /rspack-manifest-plugin \^ 5\. 2\. 2/ ) )
606+ expect ( doctor . issues ) . to include ( match ( /Declared rspack-manifest-plugin range.* \^ 5\. 2\. 2/ ) )
595607 end
596608 end
597609
@@ -619,7 +631,8 @@ def capture_stdout
619631 it "reports the stale declared ranges" do
620632 doctor . send ( :check_peer_dependencies )
621633 expect ( doctor . issues ) . to include ( match ( /Shakapacker supports Rspack v2 only/ ) )
622- expect ( doctor . issues ) . to include ( match ( /rspack-manifest-plugin \^ 5\. 2\. 2/ ) )
634+ expect ( doctor . issues ) . to include ( match ( /Declared rspack-manifest-plugin range.*\^ 5\. 2\. 2/ ) )
635+ expect ( doctor . issues ) . not_to include ( match ( /Unsupported rspack-manifest-plugin version/ ) )
623636 end
624637 end
625638 end
@@ -2264,6 +2277,36 @@ def expect_paths_to_agree
22642277 end
22652278 end
22662279
2280+ context "with package in peerDependencies" do
2281+ before do
2282+ package_json = {
2283+ "peerDependencies" => {
2284+ "webpack" => "^5.0.0"
2285+ }
2286+ }
2287+ File . write ( package_json_path , JSON . generate ( package_json ) )
2288+ end
2289+
2290+ it "returns true" do
2291+ expect ( doctor . send ( :package_installed? , "webpack" ) ) . to be true
2292+ end
2293+ end
2294+
2295+ context "with package in optionalDependencies" do
2296+ before do
2297+ package_json = {
2298+ "optionalDependencies" => {
2299+ "webpack" => "^5.0.0"
2300+ }
2301+ }
2302+ File . write ( package_json_path , JSON . generate ( package_json ) )
2303+ end
2304+
2305+ it "returns true" do
2306+ expect ( doctor . send ( :package_installed? , "webpack" ) ) . to be true
2307+ end
2308+ end
2309+
22672310 context "with package not installed" do
22682311 before do
22692312 File . write ( package_json_path , JSON . generate ( { } ) )
0 commit comments