124 lines
3.6 KiB
Ruby
124 lines
3.6 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe "Pages", type: :request do
|
|
describe "GET /:slug" do
|
|
it "has proper headline for non-top-level" do
|
|
page = create(:page, title: "Edna O'Brien96")
|
|
get "/page/#{page.slug}"
|
|
expect(response.body).to include(CGI.escapeHTML(page.title))
|
|
expect(response.body).to include("/page/#{page.slug}")
|
|
end
|
|
|
|
it "has proper headline for top-level" do
|
|
page = create(:page, title: "Edna O'Brien96", is_top_level_path: true)
|
|
get "/#{page.slug}"
|
|
expect(response.body).to include(CGI.escapeHTML(page.title))
|
|
expect(response.body).not_to include("/page/#{page.slug}")
|
|
expect(response.body).to include("stories-show")
|
|
end
|
|
end
|
|
|
|
describe "GET /about" do
|
|
it "has proper headline" do
|
|
get "/about"
|
|
expect(response.body).to include("About dev.to")
|
|
end
|
|
end
|
|
|
|
describe "GET /api" do
|
|
it "redirects to the API docs" do
|
|
get "/api"
|
|
expect(response.body).to redirect_to("https://docs.dev.to/api")
|
|
end
|
|
end
|
|
|
|
describe "GET /privacy" do
|
|
it "has proper headline" do
|
|
get "/privacy"
|
|
expect(response.body).to include("Privacy Policy")
|
|
end
|
|
end
|
|
|
|
describe "GET /terms" do
|
|
it "has proper headline" do
|
|
get "/terms"
|
|
expect(response.body).to include("Web Site Terms and Conditions of Use")
|
|
end
|
|
end
|
|
|
|
describe "GET /security" do
|
|
it "has proper headline" do
|
|
get "/security"
|
|
expect(response.body).to include("Reporting Vulnerabilities to dev.to")
|
|
end
|
|
end
|
|
|
|
describe "GET /code-of-conduct" do
|
|
it "has proper headline" do
|
|
get "/code-of-conduct"
|
|
expect(response.body).to include("Code of Conduct")
|
|
end
|
|
end
|
|
|
|
describe "GET /rly" do
|
|
it "has proper headline" do
|
|
get "/rly"
|
|
expect(response.body).to include("O RLY Cover Generator")
|
|
end
|
|
end
|
|
|
|
describe "GET /sponsorship-info" do
|
|
it "has proper headline" do
|
|
get "/sponsorship-info"
|
|
expect(response.body).to include("Sponsorship Information")
|
|
end
|
|
end
|
|
|
|
describe "GET /welcome" do
|
|
it "redirects to the latest welcome thread" do
|
|
user = create(:user, id: 1)
|
|
earlier_welcome_thread = create(:article, user: user, tags: "welcome")
|
|
earlier_welcome_thread.update(published_at: Time.current - 1.week)
|
|
latest_welcome_thread = create(:article, user: user, tags: "welcome")
|
|
get "/welcome"
|
|
|
|
expect(response.body).to redirect_to(latest_welcome_thread.path)
|
|
end
|
|
end
|
|
|
|
describe "GET /challenge" do
|
|
it "redirects to the latest challenge thread" do
|
|
user = create(:user, id: 1)
|
|
earlier_challenge_thread = create(:article, user: user, tags: "challenge")
|
|
earlier_challenge_thread.update(published_at: Time.current - 1.week)
|
|
latest_challenge_thread = create(:article, user: user, tags: "challenge")
|
|
get "/challenge"
|
|
|
|
expect(response.body).to redirect_to(latest_challenge_thread.path)
|
|
end
|
|
end
|
|
|
|
describe "GET /badge" do
|
|
it "has proper headline" do
|
|
html_variant = create(:html_variant, group: "badge_landing_page", published: true, approved: true)
|
|
get "/badge"
|
|
expect(response.body).to include(html_variant.html)
|
|
end
|
|
end
|
|
|
|
describe "GET /live" do
|
|
context "when nothing is live" do
|
|
it "shows the correct message" do
|
|
get "/live"
|
|
expect(response.body).to include("We are working on more ways to bring live coding to the community")
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "GET /robots.txt" do
|
|
it "has proper text" do
|
|
get "/robots.txt"
|
|
expect(response.body).to include("Sitemap: https://#{ApplicationConfig['AWS_BUCKET_NAME']}.s3.amazonaws.com/sitemaps/sitemap.xml.gz")
|
|
end
|
|
end
|
|
end
|