From 35213cd142bc2aef1d6d630add3dfa749b70f8d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Imobach=20Gonz=C3=A1lez=20Sosa?= Date: Mon, 2 Sep 2019 11:18:52 +0100 Subject: [PATCH] Do not validate whether an interface name exists if not changed --- src/lib/y2network/widgets/interface_name.rb | 3 ++- test/y2network/widgets/interface_name_test.rb | 24 +++++++++++++++---- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/lib/y2network/widgets/interface_name.rb b/src/lib/y2network/widgets/interface_name.rb index a3eaa7671..007cace84 100644 --- a/src/lib/y2network/widgets/interface_name.rb +++ b/src/lib/y2network/widgets/interface_name.rb @@ -30,6 +30,7 @@ def initialize(settings) textdomain "network" @settings = settings + @old_name = @settings.name end def label @@ -57,7 +58,7 @@ def items end def validate - if @settings.name_exists?(value) + if @old_name != value && @settings.name_exists?(value) Yast::Popup.Error( format(_("Configuration name %s already exists.\nChoose a different one."), value) ) diff --git a/test/y2network/widgets/interface_name_test.rb b/test/y2network/widgets/interface_name_test.rb index 43ac20244..454e3b950 100644 --- a/test/y2network/widgets/interface_name_test.rb +++ b/test/y2network/widgets/interface_name_test.rb @@ -52,12 +52,26 @@ expect(subject.validate).to be false end - it "fails for already used names" do - allow(subject).to receive(:value).and_return valid_name - allow(Yast::NetworkInterfaces).to receive(:List).and_return [valid_name] + context "when the name is already used" do + before do + allow(subject).to receive(:value).and_return valid_name + allow(Yast::NetworkInterfaces).to receive(:List).and_return [valid_name] + end - expect(Yast::UI).to receive(:SetFocus) - expect(subject.validate).to be false + context "if the name was changed" do + let(:valid_name) { "eth1" } + + it "fails" do + expect(Yast::UI).to receive(:SetFocus) + expect(subject.validate).to be false + end + end + + context "if the name was not changed" do + it "passes" do + expect(subject.validate).to eq(true) + end + end end end