From 22bbb24f28718849934693b8163155ccae4c4b5e Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Thu, 22 Dec 2016 13:27:39 +0000 Subject: Fix viewing "build failed" TODOs --- app/helpers/todos_helper.rb | 2 +- spec/factories/todos.rb | 1 + spec/features/todos/todos_spec.rb | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/helpers/todos_helper.rb b/app/helpers/todos_helper.rb index 09c69786791..74de25acf9d 100644 --- a/app/helpers/todos_helper.rb +++ b/app/helpers/todos_helper.rb @@ -35,7 +35,7 @@ module TodosHelper else path = [todo.project.namespace.becomes(Namespace), todo.project, todo.target] - path.unshift(:builds) if todo.build_failed? + path.unshift(:pipelines) if todo.build_failed? polymorphic_path(path, anchor: anchor) end diff --git a/spec/factories/todos.rb b/spec/factories/todos.rb index 866e663f026..082b02116c0 100644 --- a/spec/factories/todos.rb +++ b/spec/factories/todos.rb @@ -21,6 +21,7 @@ FactoryGirl.define do trait :build_failed do action { Todo::BUILD_FAILED } + target factory: :merge_request end trait :approval_required do diff --git a/spec/features/todos/todos_spec.rb b/spec/features/todos/todos_spec.rb index 88eabea7e3a..4bda0927692 100644 --- a/spec/features/todos/todos_spec.rb +++ b/spec/features/todos/todos_spec.rb @@ -155,5 +155,24 @@ describe 'Dashboard Todos', feature: true do expect(page).to have_selector('.todos-all-done', count: 1) end end + + context 'User has a Build Failed todo' do + let!(:todo) { create(:todo, :build_failed, user: user, project: project, author: author) } + + before do + login_as user + visit dashboard_todos_path + end + + it 'shows the todo' do + expect(page).to have_content 'The build failed for your merge request' + end + + it 'links to the pipelines for the merge request' do + href = pipelines_namespace_project_merge_request_path(project.namespace, project, todo.target) + + expect(page).to have_link "merge request #{todo.target.to_reference}", href + end + end end end -- cgit v1.2.1