diff --git a/spec/marten/conf/global_settings/assets_spec.cr b/spec/marten/conf/global_settings/assets_spec.cr index 4a28561e..5ea93387 100644 --- a/spec/marten/conf/global_settings/assets_spec.cr +++ b/spec/marten/conf/global_settings/assets_spec.cr @@ -218,4 +218,19 @@ describe Marten::Conf::GlobalSettings::Assets do assets_conf.url.should eq "/assets/url/" end end + + describe "#max_age" do + it "returns the expected default value" do + assets_conf = Marten::Conf::GlobalSettings::Assets.new + assets_conf.max_age.should eq 3600 + end + end + + describe "#max_age=" do + it "allows to set max_age value" do + assets_conf = Marten::Conf::GlobalSettings::Assets.new + assets_conf.max_age = 7200 + assets_conf.max_age.should eq 7200 + end + end end diff --git a/spec/marten/middleware/asset_serving_spec.cr b/spec/marten/middleware/asset_serving_spec.cr index f23fdd28..2fafaa07 100644 --- a/spec/marten/middleware/asset_serving_spec.cr +++ b/spec/marten/middleware/asset_serving_spec.cr @@ -255,7 +255,7 @@ describe Marten::Middleware::AssetServing do end end - it "properly sets the Cache-Control header" do + it "properly sets the default Cache-Control header" do middleware = Marten::Middleware::AssetServing.new ["BigApp.js", "css/BigApp.css"].each do |path| @@ -280,5 +280,28 @@ describe Marten::Middleware::AssetServing do response.headers[:"Cache-Control"].should eq "private, max-age=3600" end end + it "properly sets the custom Cache-Control header" do + Marten.settings.assets.max_age = 7200 + middleware = Marten::Middleware::AssetServing.new + + ["BigApp.js", "css/BigApp.css"].each do |path| + response = middleware.call( + Marten::HTTP::Request.new( + ::HTTP::Request.new( + method: "GET", + resource: "/assets/#{path}", + headers: HTTP::Headers{ + "Host" => "example.com", + "Accept-Encoding" => "gzip, deflate, br", + } + ) + ), + ->{ Marten::HTTP::Response.new("Unknown!", content_type: "text/plain", status: 200) } + ) + + uncompressed_content = File.read(File.join(__DIR__, "asset_serving/assets/#{path}")) + response.headers[:"Cache-Control"].should eq "private, max-age=7200" + end + end end end