From 144268daa87ed2680db2d4c01b121598de91291c Mon Sep 17 00:00:00 2001 From: Miranda Fluharty Date: Fri, 2 Aug 2019 02:25:13 +0000 Subject: [PATCH] Only render job sidebar block if it has content Change sidebar's renderBlock() to return true only if any of the block's s will be rendered Change block to render only if renderBlock() returns true --- .../javascripts/jobs/components/sidebar.vue | 9 +++---- .../59521-job-sidebar-has-a-blank-block.yml | 5 ++++ .../jobs/components/job_app_spec.js | 25 +++++++++++++++++++ 3 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 changelogs/unreleased/59521-job-sidebar-has-a-blank-block.yml diff --git a/app/assets/javascripts/jobs/components/sidebar.vue b/app/assets/javascripts/jobs/components/sidebar.vue index e9704584c9f..06477477aad 100644 --- a/app/assets/javascripts/jobs/components/sidebar.vue +++ b/app/assets/javascripts/jobs/components/sidebar.vue @@ -73,15 +73,14 @@ export default { }, renderBlock() { return ( - this.job.merge_request || this.job.duration || - this.job.finished_data || + this.job.finished_at || this.job.erased_at || this.job.queued || + this.hasTimeout || this.job.runner || this.job.coverage || - this.job.tags.length || - this.job.cancel_path + this.job.tags.length ); }, hasArtifact() { @@ -160,7 +159,7 @@ export default { -
+
{ }); }); }); + + describe('sidebar', () => { + it('has no blank blocks', done => { + mock.onGet(props.endpoint).replyOnce( + 200, + Object.assign({}, job, { + duration: null, + finished_at: null, + erased_at: null, + queued: null, + runner: null, + coverage: null, + tags: [], + cancel_path: null, + }), + ); + + vm.$nextTick(() => { + vm.$el.querySelectorAll('.blocks-container > *').forEach(block => { + expect(block.textContent.trim()).not.toBe(''); + }); + done(); + }); + }); + }); }); describe('archived job', () => {