56 lines
1.4 KiB
Ruby
56 lines
1.4 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe "Videos", type: :request do
|
|
let(:unauthorized_user) { create(:user) }
|
|
let(:authorized_user) { create(:user, :video_permission) }
|
|
|
|
describe "GET /videos/new" do
|
|
context "when not authorized" do
|
|
it "redirects non-logged in users" do
|
|
expect { get "/videos/new" }.to raise_error(Pundit::NotAuthorizedError)
|
|
end
|
|
|
|
it "redirects logged in users" do
|
|
login_as unauthorized_user
|
|
expect { get "/videos/new" }.to raise_error(Pundit::NotAuthorizedError)
|
|
end
|
|
end
|
|
|
|
context "when authorized" do
|
|
it "allows authorized users" do
|
|
login_as authorized_user
|
|
get "/videos/new"
|
|
expect(response.body).to include "Upload Video File"
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "POST /videos" do
|
|
context "when not authorized" do
|
|
it "redirects non-logged in users" do
|
|
expect { post "/videos" }.to raise_error(Pundit::NotAuthorizedError)
|
|
end
|
|
|
|
it "redirects logged in users" do
|
|
login_as unauthorized_user
|
|
expect { post "/videos" }.to raise_error(Pundit::NotAuthorizedError)
|
|
end
|
|
end
|
|
|
|
context "when authorized" do
|
|
before do
|
|
login_as authorized_user
|
|
end
|
|
|
|
valid_params = {
|
|
article: {
|
|
video: "something.mp4"
|
|
}
|
|
}
|
|
|
|
xit "creates an article for the logged in user" do
|
|
post "/videos", params: valid_params
|
|
end
|
|
end
|
|
end
|
|
end
|