debian-mirror-gitlab/spec/lib/api/ci/helpers/runner_helpers_spec.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

92 lines
2.7 KiB
Ruby
Raw Permalink Normal View History

2021-09-04 01:27:46 +05:30
# frozen_string_literal: true
require 'spec_helper'
2023-03-04 22:38:38 +05:30
RSpec.describe API::Ci::Helpers::Runner, feature_category: :runner do
2021-09-04 01:27:46 +05:30
let(:ip_address) { '1.2.3.4' }
let(:runner_class) do
Class.new do
include API::Helpers
2021-10-27 15:23:28 +05:30
include API::Ci::Helpers::Runner
2021-09-04 01:27:46 +05:30
attr_accessor :params
def initialize(params)
@params = params
end
def ip_address
'1.2.3.4'
end
end
end
let(:runner_helper) { runner_class.new(runner_params) }
describe '#get_runner_details_from_request' do
context 'when no runner info is present' do
let(:runner_params) { {} }
it 'returns the runner IP' do
expect(runner_helper.get_runner_details_from_request).to eq({ ip_address: ip_address })
end
end
context 'when runner info is present' do
let(:name) { 'runner' }
2023-04-23 21:23:45 +05:30
let(:system_id) { 's_c2d22f638c25' }
2021-09-04 01:27:46 +05:30
let(:version) { '1.2.3' }
let(:revision) { '10.0' }
let(:platform) { 'test' }
let(:architecture) { 'arm' }
2022-01-26 12:08:38 +05:30
let(:executor) { 'shell' }
2021-09-04 01:27:46 +05:30
let(:config) { { 'gpus' => 'all' } }
let(:runner_params) do
{
2023-04-23 21:23:45 +05:30
system_id: system_id,
2021-09-04 01:27:46 +05:30
'info' =>
{
'name' => name,
'version' => version,
'revision' => revision,
'platform' => platform,
'architecture' => architecture,
2022-01-26 12:08:38 +05:30
'executor' => executor,
2021-09-04 01:27:46 +05:30
'config' => config,
'ignored' => 1
}
}
end
subject(:details) { runner_helper.get_runner_details_from_request }
it 'extracts the runner details', :aggregate_failures do
2023-04-23 21:23:45 +05:30
expect(details.keys).to match_array(
%w(system_id name version revision platform architecture executor config ip_address)
)
expect(details['system_id']).to eq(system_id)
2021-09-04 01:27:46 +05:30
expect(details['name']).to eq(name)
expect(details['version']).to eq(version)
expect(details['revision']).to eq(revision)
expect(details['platform']).to eq(platform)
expect(details['architecture']).to eq(architecture)
2022-01-26 12:08:38 +05:30
expect(details['executor']).to eq(executor)
2021-09-04 01:27:46 +05:30
expect(details['config']).to eq(config)
expect(details['ip_address']).to eq(ip_address)
end
end
2022-07-16 23:28:13 +05:30
2022-08-27 11:52:29 +05:30
describe '#log_artifacts_filesize' do
subject { runner_helper.log_artifacts_filesize(artifact) }
2022-07-16 23:28:13 +05:30
let(:runner_params) { {} }
let(:artifact) { create(:ci_job_artifact, size: 42) }
let(:expected_params) { { artifact_size: artifact.size } }
let(:subject_proc) { proc { subject } }
it_behaves_like 'storing arguments in the application context'
it_behaves_like 'not executing any extra queries for the application context'
end
2021-09-04 01:27:46 +05:30
end
end