Skip to content

Commit 4f763ca

Browse files
committed
Add tests for previous and next diary entry navigation
Add tests covering diary entry navigation behaviour, including cases for first and last entries. Includes minor updates to navigation markup and missing locale keys required for tests to pass.
1 parent 1f34520 commit 4f763ca

3 files changed

Lines changed: 44 additions & 1 deletion

File tree

app/views/diary_entries/show.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<%= render @diary_entry, :user => @user, :truncated => false %>
1818
<%= share_buttons(:title => @diary_entry.title, :url => diary_entry_url(@diary_entry.user, @diary_entry)) %>
1919

20-
<nav class="d-flex justify-content-between mb-3">
20+
<nav class="diary-entry-navigation d-flex justify-content-between mb-3">
2121
<div>
2222
<% if @prev_entry %>
2323
<%= link_to diary_entry_path(@user, @prev_entry), :class => "btn btn-outline-secondary" do %>

config/locales/en.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -628,6 +628,8 @@ en:
628628
leave_a_comment: "Leave a comment"
629629
login_to_leave_a_comment_html: "%{login_link} to leave a comment"
630630
login: "Log in"
631+
previous_entry: "Previous Entry"
632+
next_entry: "Next Entry"
631633
no_such_entry:
632634
title: "No such diary entry"
633635
heading: "No entry with the id: %{id}"

test/controllers/diary_entries_controller_test.rb

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -956,6 +956,47 @@ def test_unsubscribe_fail
956956
end
957957
end
958958

959+
def test_show_with_previous_and_next_links
960+
user = create(:user)
961+
962+
entry1 = create(:diary_entry, :user => user)
963+
entry2 = create(:diary_entry, :user => user)
964+
entry3 = create(:diary_entry, :user => user)
965+
966+
get diary_entry_path(user.display_name, entry2)
967+
968+
assert_response :success
969+
970+
assert_select "nav.diary-entry-navigation a[href=?]", diary_entry_path(user.display_name, entry1)
971+
assert_select "nav.diary-entry-navigation a[href=?]", diary_entry_path(user.display_name, entry3)
972+
end
973+
974+
def test_show_without_previous_link_for_first_entry
975+
user = create(:user)
976+
977+
entry1 = create(:diary_entry, :user => user)
978+
entry2 = create(:diary_entry, :user => user)
979+
980+
get diary_entry_path(user.display_name, entry1)
981+
982+
assert_response :success
983+
984+
assert_select "nav.diary-entry-navigation a[href=?]", diary_entry_path(user.display_name, entry2)
985+
end
986+
987+
def test_show_without_next_link_for_last_entry
988+
user = create(:user)
989+
990+
entry1 = create(:diary_entry, :user => user)
991+
entry2 = create(:diary_entry, :user => user)
992+
993+
get diary_entry_path(user.display_name, entry2)
994+
995+
assert_response :success
996+
997+
assert_select "nav.diary-entry-navigation a[href=?]", diary_entry_path(user.display_name, entry1)
998+
end
999+
9591000
private
9601001

9611002
def check_diary_index(*entries)

0 commit comments

Comments
 (0)