diff options
-rw-r--r-- | spec/factories/ci/builds.rb | 10 | ||||
-rw-r--r-- | spec/features/projects/jobs/user_browses_job_spec.rb | 28 |
2 files changed, 38 insertions, 0 deletions
diff --git a/spec/factories/ci/builds.rb b/spec/factories/ci/builds.rb index 1a5f8ecaa77..5f7c75a3a92 100644 --- a/spec/factories/ci/builds.rb +++ b/spec/factories/ci/builds.rb @@ -238,6 +238,16 @@ FactoryBot.define do end end + trait :trace_with_sections do + after(:create) do |build, evaluator| + trace = File.binread( + File.expand_path( + Rails.root.join('spec/fixtures/trace/trace_with_sections'))) + + build.trace.set(trace) + end + end + trait :unicode_trace_live do after(:create) do |build, evaluator| trace = File.binread( diff --git a/spec/features/projects/jobs/user_browses_job_spec.rb b/spec/features/projects/jobs/user_browses_job_spec.rb index 49a7904f2e2..fbe765d4c44 100644 --- a/spec/features/projects/jobs/user_browses_job_spec.rb +++ b/spec/features/projects/jobs/user_browses_job_spec.rb @@ -34,6 +34,34 @@ describe 'User browses a job', :js do expect(page).to have_content('Job has been erased') end + shared_examples 'has collapsible sections' do + it 'collapses the section clicked' do + wait_for_requests + text_to_hide = "Cloning into '/nolith/ci-tests'" + text_to_show = 'Waiting for pod' + + expect(page).to have_content(text_to_hide) + expect(page).to have_content(text_to_show) + + first('.js-section-start[data-section="get-sources"]').click + + expect(page).not_to have_content(text_to_hide) + expect(page).to have_content(text_to_show) + end + end + + context 'when job trace contains sections' do + let!(:build) { create(:ci_build, :success, :trace_with_sections, :coverage, pipeline: pipeline) } + + it_behaves_like 'has collapsible sections' + end + + context 'when job trace contains duplicate sections' do + let!(:build) { create(:ci_build, :success, :trace_with_duplicate_sections, :coverage, pipeline: pipeline) } + + it_behaves_like 'has collapsible sections' + end + context 'when job trace contains sections' do let!(:build) { create(:ci_build, :success, :trace_with_duplicate_sections, :coverage, pipeline: pipeline) } |