# frozen_string_literal: true

require "system_helper"

RSpec.describe "Test Flatpickr" do
  include AuthenticationHelper
  include WebHelper

  context "orders" do
    it "opens the datepicker and closes it using the 'Close' button" do
      login_as_admin
      visit 'admin/orders'
      open_datepicker('.datepicker')
      # Looks for the close button and click it
      within(".flatpickr-calendar.open") do
        expect(page).to have_selector '.shortcut-buttons-flatpickr-buttons'
        find("button", text: "Close").click
      end
      # Should no more have opened flatpickr
      expect(page).not_to have_selector '.flatpickr-calendar.open'
    end

    it "opens the datepicker and closes it by clicking outside" do
      login_as_admin
      visit 'admin/orders'
      open_datepicker('.datepicker')
      find("#admin-menu").click
      # Should no more have opened flatpickr
      expect(page).not_to have_selector '.flatpickr-calendar.open'
    end
  end

  private

  def open_datepicker(field)
    # Opens a datepicker
    find(field).click
    # Should have opened flatpickr
    expect(page).to have_selector '.flatpickr-calendar.open'
  end

  def check_fielddate(field, date)
    # Check the value is correct
    expect(find(field, match: :first).value).to eq date.to_datetime.strftime("%Y-%m-%d")
  end
end
