summaryrefslogtreecommitdiff
path: root/spec/features/dashboard/todos/todos_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/features/dashboard/todos/todos_spec.rb')
-rw-r--r--spec/features/dashboard/todos/todos_spec.rb55
1 files changed, 38 insertions, 17 deletions
diff --git a/spec/features/dashboard/todos/todos_spec.rb b/spec/features/dashboard/todos/todos_spec.rb
index 606bc82a7bb..59bb1a452c9 100644
--- a/spec/features/dashboard/todos/todos_spec.rb
+++ b/spec/features/dashboard/todos/todos_spec.rb
@@ -15,6 +15,8 @@ RSpec.describe 'Dashboard Todos', feature_category: :team_planning do
project.add_developer(user)
end
+ it_behaves_like 'a dashboard page with sidebar', :dashboard_todos_path, :todos
+
context 'User does not have todos' do
before do
sign_in(user)
@@ -152,6 +154,22 @@ RSpec.describe 'Dashboard Todos', feature_category: :team_planning do
it_behaves_like 'deleting the todo'
it_behaves_like 'deleting and restoring the todo'
end
+
+ context 'when todo has a note' do
+ let(:note) { create(:note, project: project, note: "Check out stuff", noteable: create(:issue, project: project)) }
+ let!(:todo) { create(:todo, :mentioned, user: user, project: project, author: author, note: note, target: note.noteable) }
+
+ before do
+ sign_in(user)
+ visit dashboard_todos_path
+ end
+
+ it 'shows note preview' do
+ expect(page).to have_no_content('mentioned you:')
+ expect(page).to have_no_content('"Check out stuff"')
+ expect(page).to have_content('Check out stuff')
+ end
+ end
end
context 'User created todos for themself' do
@@ -446,27 +464,30 @@ RSpec.describe 'Dashboard Todos', feature_category: :team_planning do
end
end
- context 'User has a todo for an access requested raised for group membership' do
- let_it_be(:group) { create(:group, :public) }
+ context 'User requested access' do
+ shared_examples 'has todo present with access request content' do
+ specify do
+ create(:todo, :member_access_requested,
+ user: user,
+ target: target,
+ author: author
+ )
+ target.add_owner(user)
- let_it_be(:todo) do
- create(:todo, :member_access_requested,
- user: user,
- target: group,
- author: author,
- group: group)
- end
-
- before do
- group.add_owner(user)
- sign_in(user)
+ sign_in(user)
+ visit dashboard_todos_path
- visit dashboard_todos_path
+ expect(page).to have_selector('.todos-list .todo', count: 1)
+ expect(page).to have_content "#{author.name} has requested access to #{target.class.name.downcase} #{target.name}"
+ end
end
- it 'has todo present with access request content' do
- expect(page).to have_selector('.todos-list .todo', count: 1)
- expect(page).to have_content "#{author.name} has requested access to group #{group.name}"
+ context 'when user requests access to project or group' do
+ %i[project group].each do |target_type|
+ it_behaves_like 'has todo present with access request content' do
+ let_it_be(:target) { create(target_type, :public) }
+ end
+ end
end
end
end