diff --git a/src/lib/registration/ui/addon_selection_base_dialog.rb b/src/lib/registration/ui/addon_selection_base_dialog.rb index 0ca1a1a23..b7d9546d6 100644 --- a/src/lib/registration/ui/addon_selection_base_dialog.rb +++ b/src/lib/registration/ui/addon_selection_base_dialog.rb @@ -71,7 +71,12 @@ def addon_widget_id(addon) # @param [Boolean] enable true for filtering beta releases def filter_beta_releases(enable) self.class.filter_beta = enable - @addons = enable ? @all_addons.reject(&:beta_release?) : @all_addons + if enable + @addons, available_addons = @all_addons.partition(&:registered?) + @addons.concat(available_addons.reject(&:beta_release?)) + else + @addons = @all_addons + end end private diff --git a/test/addon_selection_dialog_test.rb b/test/addon_selection_dialog_test.rb index eb5653038..dd5e319df 100644 --- a/test/addon_selection_dialog_test.rb +++ b/test/addon_selection_dialog_test.rb @@ -20,7 +20,8 @@ describe "#initialize" do it "sets the beta filter to the previous state" do fake_ref = double.as_null_object - res = described_class.new(fake_ref) + registration = double(activated_products: [], get_addon_list: []) + res = described_class.new(registration) res.send(:filter_beta_releases, false) expect_any_instance_of(described_class).to receive(:filter_beta_releases).with(false)