diff --git a/lib/avo/resources/items/tab.rb b/lib/avo/resources/items/tab.rb index fa0e08a6c0..fad0a245fe 100644 --- a/lib/avo/resources/items/tab.rb +++ b/lib/avo/resources/items/tab.rb @@ -4,6 +4,7 @@ class Avo::Resources::Items::Tab include Avo::Concerns::HasItems include Avo::Concerns::HasItemType include Avo::Concerns::VisibleItems + include Avo::Concerns::IsVisible include Avo::Concerns::VisibleInDifferentViews delegate :items, :add_item, to: :items_holder @@ -16,6 +17,7 @@ def initialize(name: nil, description: nil, view: nil, **args) @items_holder = Avo::Resources::Items::Holder.new @view = Avo::ViewInquirer.new view @args = args + @visible = args[:visible] post_initialize if respond_to?(:post_initialize) end diff --git a/spec/features/avo/tabs_panels_and_sidebar_visibility_spec.rb b/spec/features/avo/tabs_panels_and_sidebar_visibility_spec.rb index 56586350a1..08fa4a9e31 100644 --- a/spec/features/avo/tabs_panels_and_sidebar_visibility_spec.rb +++ b/spec/features/avo/tabs_panels_and_sidebar_visibility_spec.rb @@ -34,6 +34,10 @@ } end end + + tab "Conditional hidden tab inside tabs", visible: -> { resource.record.name == "RSpec TabsPanelAndSidebarVisibility" } do + field :hidden_field_inside_tabs_inside_conditional_tab, as: :text + end end panel "Hidden panel", visible: -> { resource.record.name == "RSpec PanelVisibility" } do @@ -64,6 +68,9 @@ expect(page).to have_text "Hidden field inside tabs inside tab" expect(page).to have_text "Hidden field inside tabs inside tab inside panel" expect(page).to have_text "Hidden field inside sidebar" + + expect(page).to have_text "Conditional hidden tab inside tabs" + expect(page).to have_text "Hidden field inside tabs inside conditional tab" end end @@ -75,6 +82,9 @@ expect(page).not_to have_text "Hidden field inside tabs inside tab" expect(page).not_to have_text "Hidden field inside tabs inside tab inside panel" expect(page).not_to have_text "Hidden field inside sidebar" + + expect(page).not_to have_text "Conditional hidden tab inside tabs" + expect(page).not_to have_text "Hidden field inside tabs inside conditional tab" end end end