Skip to content

Commit 4418454

Browse files
authored
more system specs (#1432)
1 parent cb71af7 commit 4418454

12 files changed

+183
-3
lines changed

.tool-versions

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
ruby 4.0.1
2-
bundler 2.6.2
32
postgres 14.6

spec/fixtures/invalid.opml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
this is not valid opml content

spec/system/account_setup_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ def fill_in_fields(username:, confirm: "my-password")
3333
expect(page).to have_link("sign up")
3434
end
3535

36+
it "completes sign up for a second user" do
37+
Setting::UserSignup.create!(enabled: true)
38+
create(:user)
39+
visit(setup_password_path)
40+
41+
fill_in_fields(username: "second-user")
42+
43+
expect(page).to have_text("Logged in as second-user")
44+
end
45+
3646
it "does not allow a second user to signup when not enabled" do
3747
create(:user)
3848

spec/system/authentication_spec.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# frozen_string_literal: true
2+
3+
RSpec.describe "authentication" do
4+
it "redirects to login when accessing a protected page while logged out" do
5+
create(:user)
6+
7+
visit(news_path)
8+
9+
expect(page).to have_current_path(login_path)
10+
end
11+
end

spec/system/debug_spec.rb

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# frozen_string_literal: true
2+
3+
RSpec.describe "admin/debug" do
4+
it "displays debug information" do
5+
login_as(create(:user, admin: true))
6+
7+
visit("/admin/debug")
8+
9+
expect(page).to have_content(RUBY_VERSION)
10+
end
11+
12+
it "shows None when there are no pending migrations" do
13+
login_as(create(:user, admin: true))
14+
15+
visit("/admin/debug")
16+
17+
expect(page).to have_content("None")
18+
end
19+
20+
it "shows the queued jobs count" do
21+
login_as(create(:user, admin: true))
22+
23+
visit("/admin/debug")
24+
25+
expect(page).to have_content("Queued Jobs")
26+
end
27+
28+
it "blocks non-admin users" do
29+
login_as(default_user)
30+
31+
visit("/admin/debug")
32+
33+
expect(page).to have_content("No route matches")
34+
end
35+
end

spec/system/feed_edit_spec.rb

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,27 @@ def visit_edit_feed
2626
expect(page).to have_content("Updated the feed")
2727
end
2828

29-
it "allows assigning a feed to a group", :aggregate_failures do
29+
it "allows removing a group from a feed" do
30+
login_as(default_user)
31+
feed = create(:feed, :with_group)
32+
a11y_skip = [
33+
"aria-required-children",
34+
"color-contrast",
35+
"label",
36+
"landmark-one-main",
37+
"page-has-heading-one",
38+
"region",
39+
"select-name"
40+
]
41+
visit("/feeds/#{feed.id}/edit", a11y_skip:)
42+
43+
select("", from: "group-id")
44+
click_on("Save")
45+
46+
expect(feed.reload.group).to be_nil
47+
end
48+
49+
it "allows assigning a feed to a group" do
3050
login_as(default_user)
3151
group = create(:group)
3252
feed = create(:feed)
@@ -44,7 +64,6 @@ def visit_edit_feed
4464
select(group.name, from: "group-id")
4565
click_on("Save")
4666

47-
expect(page).to have_content("Updated the feed")
4867
expect(feed.reload.group).to eq(group)
4968
end
5069
end

spec/system/feed_show_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,16 @@ def create_and_visit_feed(story_title: nil)
7171
expect(page).to have_current_path(feeds_new_path)
7272
end
7373

74+
it "displays read stories for the feed" do
75+
login_as(default_user)
76+
feed = create(:feed)
77+
create(:story, :read, feed:, title: "Read Story")
78+
79+
visit("/feed/#{feed.id}")
80+
81+
expect(page).to have_content("Read Story")
82+
end
83+
7484
it "only marks stories from the current feed as read" do
7585
login_as(default_user)
7686
other_feed = create(:feed)

spec/system/feed_status_spec.rb

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# frozen_string_literal: true
2+
3+
RSpec.describe "feed status bubbles" do
4+
it "shows a green status for a healthy feed" do
5+
login_as(default_user)
6+
create(:feed, status: :green)
7+
8+
visit("/feeds")
9+
10+
expect(page).to have_css(".status.green")
11+
end
12+
13+
it "shows a red status for a feed that has never successfully fetched" do
14+
login_as(default_user)
15+
create(:feed, status: :red)
16+
17+
visit("/feeds")
18+
19+
expect(page).to have_css(".status.red")
20+
end
21+
22+
it "shows a yellow status for a red feed that has stories" do
23+
login_as(default_user)
24+
feed = create(:feed, status: :red)
25+
create(:story, feed:)
26+
27+
visit("/feeds")
28+
29+
expect(page).to have_css(".status.yellow")
30+
end
31+
end

spec/system/feeds_index_spec.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,15 @@
8686

8787
expect(page).to have_link(href: feed.url)
8888
end
89+
90+
it "displays feeds in alphabetical order" do
91+
login_as(default_user)
92+
create(:feed, name: "Zebra Feed")
93+
create(:feed, name: "Alpha Feed")
94+
95+
visit "/feeds"
96+
97+
names = all(".feed-title a").map(&:text).map(&:strip)
98+
expect(names).to eq(["Alpha Feed", "Zebra Feed"])
99+
end
89100
end

spec/system/import_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,14 @@
1919

2020
expect(page).to have_content("We're getting you some stories to read")
2121
end
22+
23+
it "gracefully handles an invalid OPML file" do
24+
login_as(default_user)
25+
visit(feeds_import_path)
26+
file_path = Rails.root.join("spec/fixtures/invalid.opml")
27+
28+
attach_file("opml_file", file_path, visible: false)
29+
30+
expect(page).to have_content("We're getting you some stories to read")
31+
end
2232
end

0 commit comments

Comments
 (0)