56 lines
1.3 KiB
Ruby
56 lines
1.3 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'spec_helper'
|
||
|
|
||
|
RSpec.describe Gitlab::Ci::Pipeline::Chain::Metrics, feature_category: :continuous_integration do
|
||
|
let_it_be(:project) { create(:project) }
|
||
|
let_it_be(:user) { create(:user) }
|
||
|
|
||
|
let_it_be(:pipeline) do
|
||
|
create(:ci_pipeline, project: project, ref: 'master', user: user, name: 'Build pipeline')
|
||
|
end
|
||
|
|
||
|
let(:command) do
|
||
|
Gitlab::Ci::Pipeline::Chain::Command.new(
|
||
|
project: project,
|
||
|
current_user: user,
|
||
|
origin_ref: 'master')
|
||
|
end
|
||
|
|
||
|
let(:step) { described_class.new(pipeline, command) }
|
||
|
|
||
|
subject(:run_chain) { step.perform! }
|
||
|
|
||
|
it 'does not break the chain' do
|
||
|
run_chain
|
||
|
|
||
|
expect(step.break?).to be false
|
||
|
end
|
||
|
|
||
|
context 'with pipeline name' do
|
||
|
it 'creates snowplow event' do
|
||
|
run_chain
|
||
|
|
||
|
expect_snowplow_event(
|
||
|
category: described_class.to_s,
|
||
|
action: 'create_pipeline_with_name',
|
||
|
project: pipeline.project,
|
||
|
user: pipeline.user,
|
||
|
namespace: pipeline.project.namespace
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'without pipeline name' do
|
||
|
let_it_be(:pipeline) do
|
||
|
create(:ci_pipeline, project: project, ref: 'master', user: user)
|
||
|
end
|
||
|
|
||
|
it 'does not create snowplow event' do
|
||
|
run_chain
|
||
|
|
||
|
expect_no_snowplow_event
|
||
|
end
|
||
|
end
|
||
|
end
|