@@ -59,14 +59,52 @@ class Importmap::NpmTest < ActiveSupport::TestCase
5959 end
6060 end
6161
62- test "failed outdated packages request with mock " do
62+ test "failed outdated packages request with exception " do
6363 Net ::HTTP . stub ( :start , proc { raise "Unexpected Error" } ) do
6464 assert_raises ( Importmap ::Npm ::HTTPError ) do
6565 @npm . outdated_packages
6666 end
6767 end
6868 end
6969
70+ test "failed outdated packages request with error response" do
71+ client = Minitest ::Mock . new
72+ response = Class . new do
73+ def body
74+ { "message" => "Service unavailable" } . to_json
75+ end
76+
77+ def code ( ) "500" end
78+ end . new
79+
80+ client . expect ( :request , nil , [ Net ::HTTP ::Get ] )
81+
82+ Net ::HTTP . stub ( :start , response , client ) do
83+ e = assert_raises ( Importmap ::Npm ::HTTPError ) do
84+ @npm . outdated_packages
85+ end
86+
87+ assert_equal "Unexpected error response 500: {\" message\" :\" Service unavailable\" }" , e . message
88+ end
89+ end
90+
91+ test "failed vulnerable packages with mock" do
92+ response = Class . new do
93+ def body
94+ { "message" => "Service unavailable" } . to_json
95+ end
96+
97+ def code ( ) "500" end
98+ end . new
99+
100+ @npm . stub ( :post_json , response ) do
101+ e = assert_raises ( Importmap ::Npm ::HTTPError ) do
102+ @npm . vulnerable_packages
103+ end
104+ assert_equal "Unexpected error response 500: {\" message\" :\" Service unavailable\" }" , e . message
105+ end
106+ end
107+
70108 test "successful vulnerable packages with mock" do
71109 response = Class . new do
72110 def body
0 commit comments