diff --git a/service/lib/agama/storage/config_conversions/to_json_conversions/size.rb b/service/lib/agama/storage/config_conversions/to_json_conversions/size.rb index 2a266f782c..8e110f9193 100644 --- a/service/lib/agama/storage/config_conversions/to_json_conversions/size.rb +++ b/service/lib/agama/storage/config_conversions/to_json_conversions/size.rb @@ -45,17 +45,25 @@ def convert # @see Base#conversions def conversions { - min: config.min&.to_i, + min: convert_min_size, max: convert_max_size } end - # @return [Integer, nil] + # @return [String, Integer] + def convert_min_size + return "current" unless config.min + + config.min.to_i + end + + # @return [String, Integer, nil] def convert_max_size - max = config.max - return if max.nil? || max.unlimited? + return "current" unless config.max + + return if config.max.unlimited? - max.to_i + config.max.to_i end end end diff --git a/service/package/rubygem-agama-yast.changes b/service/package/rubygem-agama-yast.changes index e5596c0523..65efeec8d8 100644 --- a/service/package/rubygem-agama-yast.changes +++ b/service/package/rubygem-agama-yast.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Sep 15 13:50:54 UTC 2025 - José Iván López González + +- Fix JSON conversion for not configured sizes (bsc#1249591). + ------------------------------------------------------------------- Fri Sep 12 08:14:28 UTC 2025 - Ladislav Slezák diff --git a/service/test/agama/storage/config_conversions/to_json_conversions/examples.rb b/service/test/agama/storage/config_conversions/to_json_conversions/examples.rb index c02eee9116..d3d9cbe385 100644 --- a/service/test/agama/storage/config_conversions/to_json_conversions/examples.rb +++ b/service/test/agama/storage/config_conversions/to_json_conversions/examples.rb @@ -369,6 +369,29 @@ ) end + context "if min size is not configured" do + let(:size) do + { + min: "1 GiB", + max: "10 GiB" + } + end + + before do + config.size.min = nil + end + + it "generates the expected JSON" do + config_json = subject.convert + expect(config_json[:size]).to eq( + { + min: "current", + max: 10.GiB.to_i + } + ) + end + end + context "if max size is unlimited" do let(:size) do { @@ -386,6 +409,28 @@ end end + context "if max size is not configured" do + let(:size) do + { + min: "1 GiB" + } + end + + before do + config.size.max = nil + end + + it "generates the expected JSON" do + config_json = subject.convert + expect(config_json[:size]).to eq( + { + min: 1.GiB.to_i, + max: "current" + } + ) + end + end + context "if size is default" do before do size_config = config.size