* Add badges index page. * remove empty style rule. * Add spec for badges index. Fix case when not logged in.
48 lines
1.2 KiB
Ruby
48 lines
1.2 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe "Badges", type: :request do
|
|
let(:user) { create(:user) }
|
|
|
|
describe "GET /badges" do
|
|
let!(:badges) { create_list(:badge, 3) }
|
|
|
|
context "when logged in" do
|
|
before { sign_in user }
|
|
|
|
it "shows all the badges" do
|
|
get "/badges"
|
|
expect(response.body).to include "Badges"
|
|
badges.each do |badge|
|
|
expect(response.body).to include CGI.escapeHTML(badge.badge_image_url)
|
|
end
|
|
end
|
|
end
|
|
|
|
context "when logged out" do
|
|
it "shows all the badges" do
|
|
get "/badges"
|
|
expect(response.body).to include "Badges"
|
|
badges.each do |badge|
|
|
expect(response.body).to include CGI.escapeHTML(badge.badge_image_url)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "GET /badge/:slug" do
|
|
let(:badge) { create(:badge) }
|
|
|
|
context "when badge exists" do
|
|
it "shows the badge" do
|
|
get "/badge/#{badge.slug}"
|
|
expect(response.body).to include CGI.escapeHTML(badge.title)
|
|
end
|
|
end
|
|
|
|
context "when badge does not exist" do
|
|
it "renders 404" do
|
|
expect { get "/badge/that-does-not-exists" }.to raise_error(ActiveRecord::RecordNotFound)
|
|
end
|
|
end
|
|
end
|
|
end
|