diff options
author | Marcia Ramos <virtua.creative@gmail.com> | 2017-08-15 11:20:11 -0300 |
---|---|---|
committer | Marcia Ramos <virtua.creative@gmail.com> | 2017-08-15 11:20:11 -0300 |
commit | 35c9a75eff464ff7bb0e58c67488a6fa1bdebaaa (patch) | |
tree | b78097fd10cad31f45b8b6613d45960f2872802c /lib/rspec_flaky/flaky_example.rb | |
parent | 0112d13314e1aea350c7dacc02c0f1c527566809 (diff) | |
parent | fe09c25d68a61c5874e9beb0f018c05a4d789d70 (diff) | |
download | gitlab-ce-docs-topic-permissions.tar.gz |
fix conflictdocs-topic-permissions
Diffstat (limited to 'lib/rspec_flaky/flaky_example.rb')
-rw-r--r-- | lib/rspec_flaky/flaky_example.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/rspec_flaky/flaky_example.rb b/lib/rspec_flaky/flaky_example.rb new file mode 100644 index 00000000000..f81fb90e870 --- /dev/null +++ b/lib/rspec_flaky/flaky_example.rb @@ -0,0 +1,39 @@ +module RspecFlaky + # This represents a flaky RSpec example and is mainly meant to be saved in a JSON file + class FlakyExample < OpenStruct + def initialize(example) + if example.respond_to?(:example_id) + super( + example_id: example.example_id, + file: example.file, + line: example.line, + description: example.description, + last_attempts_count: example.attempts, + flaky_reports: 1) + else + super + end + end + + def first_flaky_at + self[:first_flaky_at] || Time.now + end + + def last_flaky_at + Time.now + end + + def last_flaky_job + return unless ENV['CI_PROJECT_URL'] && ENV['CI_JOB_ID'] + + "#{ENV['CI_PROJECT_URL']}/-/jobs/#{ENV['CI_JOB_ID']}" + end + + def to_h + super.merge( + first_flaky_at: first_flaky_at, + last_flaky_at: last_flaky_at, + last_flaky_job: last_flaky_job) + end + end +end |