class HeaderFieldContext < CmsContext
  def initialize
    super
    @partials = [{'name' => 'Has Header', 'devs_only' => 'false'}]
    create_header_types!
  end

  def open_type_dropdown
    header_type_path = find('select[data-fieldname="Header"]', visible: false).path
    within(:xpath, get_ancestor_path(header_type_path)) do
      find('div.nice-select').click
    end
  end

  def expect_all_header_types
    HeaderType.all.each do |type|
      expect_content_on_page(type.name)
    end
  end

  private

  def get_partial_fields
    {
      'Has Header' => {
        'header' => {
          'field_names' => ['Header'],
          'char_limit' => '500',
          'mandatory' => 'true'
        }
      }
    }
  end

  def create_header_types!
    ['Header 1', 'Header 2'].each_with_index do |header, index|
      HeaderType.create!({name: header, order: index})
    end
  end
end
