features/step_definitions/outcome_steps.rb (67 lines of code) (raw):
Given('an active span') do
ElasticAPM.start_transaction("test-transaction-#{Time.now.to_i}")
@span = ElasticAPM.start_span("test-span-#{Time.now.to_i}")
end
Given('user sets span outcome to {string}') do |outcome|
@span.outcome = outcome
end
Given('span terminates with outcome {string}') do |outcome|
ElasticAPM.end_span
end
Then('span outcome is {string}') do |outcome|
@span.outcome == outcome
end
Given('an active transaction') do
@transaction = ElasticAPM.start_transaction(
"test-transaction-#{Time.now.to_i}"
)
end
Given('user sets transaction outcome to {string}') do |outcome|
@transaction.outcome = outcome
end
Given('transaction terminates with outcome {string}') do |outcome|
ElasticAPM.end_transaction
end
Then('transaction outcome is {string}') do |outcome|
@transaction.outcome == outcome
end
Given('span terminates with an error') do
begin
ElasticAPM.with_span("test-span-#{Time.now.to_i}") do |span|
@span = span
raise Exception
end
rescue Exception
end
end
Given('span terminates without error') do
ElasticAPM.with_span("test-span-#{Time.now.to_i}") do |span|
@span = span
end
end
Given('transaction terminates with an error') do
# The way the spec is written, a transaction is created in a previous step
# so we must end that transaction, then create another one.
ElasticAPM.end_transaction
begin
ElasticAPM.with_transaction("test-transaction-#{Time.now.to_i}") do |transaction|
@transaction = transaction
raise Exception
end
rescue Exception
end
end
Given('transaction terminates without error') do
# The way the spec is written, a transaction is created in a previous step
# so we must end that transaction, then create another one.
ElasticAPM.end_transaction
ElasticAPM.with_transaction("test-transaction-#{Time.now.to_i}") do |transaction|
@transaction = transaction
end
end
Given('an HTTP transaction with {int} response code') do |response_code|
@transaction = ElasticAPM.start_transaction("test-transaction-#{Time.now.to_i}")
@transaction.outcome =
ElasticAPM::Transaction::Outcome.from_http_status(response_code)
end
Given('an HTTP span with {int} response code') do |response_code|
@span = ElasticAPM.start_span("test-span-#{Time.now.to_i}")
@span.outcome =
ElasticAPM::Span::Outcome.from_http_status(response_code)
end