# frozen_string_literal: true

# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
require 'rails_helper'

RSpec.describe StaticController, type: :controller do
  describe '.ccs' do
    around(:each) do |example|
      example.run
      Settings.reload!
    end

    describe 'local_tar_gz' do
      before (:each) do
        Settings.merge!(
          ccs: {
            ccs_method: 'local_tar_gz'
          }
        )
      end

      it 'fails on git archive' do
        expect(Kernel).to receive(:system).and_return(false)
        get('ccs')
        expect(response.status).to eq 500
      end
    end

    describe 'github' do
      before (:each) do
        Settings.merge!(
          ccs: {
            ccs_method: 'github',
            options: {
              account: 'account',
              repo: 'repo'
            }
          }
        )
      end

      it 'setup github' do
        expect(File).to receive(:read).with("#{Rails.root}/CCS_HASH").and_return("hash\n")
        get('ccs')
        expect(response).to redirect_to 'https://github.com/account/repo/tree/hash'
      end
    end
  end
end