# frozen_string_literal: true

require 'spec_helper'
require 'release_tools/tasks'

describe ReleaseTools::Tasks::Components::Updater do
  subject(:task) { component_class.new(token) }

  # Define a dummy class that includes the Updater module
  let(:component_class) do
    Class.new do
      include ReleaseTools::Tasks::Helper
      include SemanticLogger::Loggable
      include ReleaseTools::Tasks::Components::Updater

      def send_slack_notification
        # no-op
      end

      def project
        ReleaseTools::Project::Kas
      end

      def source_branch
        'release-tools/updater-class'
      end

      def merge_request
        @merge_request ||= ReleaseTools::UpdateKasMergeRequest.new(source_branch: source_branch)
      end
    end
  end

  it_behaves_like 'component updater',
                  ReleaseTools::Project::Kas,
                  ReleaseTools::UpdateKasMergeRequest,
                  nil # Use the send_slack_notification method instead
end
