require "mysql2"
require "dotenv"
require "byebug"
require "rspec"
require "../helpers/upc_helper.rb"
ENV_FILE = "../.env".freeze
Dotenv.load(ENV_FILE)

RSpec.describe "Automated encoding order" do
  describe "encoding order detail doesn't contain any negative case test upcs" do
    it "the upcs weren't put into encoding orders" do
      test_upcs = Upc.new
      # rubocop:disable LineLength
      @client = Mysql2::Client.new(host: ENV["ART_RELATIONS_DB"], username: ENV["AR_USERNAME"], password: ENV["AR_PASSWORD"], database: ENV["AR_DATABASE"])
      feed_start_query = "SELECT last_run FROM script_status WHERE id = 1"
      result = @client.query(feed_start_query)
      feed_start_time = result.first["last_run"]
      puts "feed start time: #{feed_start_time} "
      encoding_detail = "SELECT en.encoding_order_id, en.entry_date, detail.upc FROM encoding_order en, encoding_order_detail detail
WHERE entry_date > '#{feed_start_time}'
AND en.encoding_order_id = detail.encoding_order_id;"
      # rubocop:enable LineLength
      encoding_detail = @client.query(encoding_detail)
      upc = []
      encoding_detail.each do |response|
        upc << response["upc"]
      end
      expect(upc & test_upcs.automated_encoding_order_upcs).to be_empty
      expect(upc & test_upcs.error_correction_upcs).to be_empty
      expect(upc & test_upcs.carveout_changed_upcs).to be_empty
    end
  end
end
