Spaces:
Build error
Build error
require 'rails_helper' | |
RSpec.describe SubmissionsController, type: :controller do | |
let(:submission) { create(:submission) } | |
describe "GET #show" do | |
it "returns one submission" do | |
get :show, params: { token: submission.token } | |
json = JSON.parse(response.body) | |
expect(response).to be_success | |
expect(json).to have_serialized(submission).with(SubmissionSerializer) | |
end | |
it "returns 404" do | |
expect { | |
get :show, params: { token: submission.token + " give me 404" } | |
}.to raise_error(ActiveRecord::RecordNotFound) | |
end | |
end | |
describe "POST #create" do | |
context "with valid params" do | |
it "creates a new Submission" do | |
expect { | |
post :create, params: attributes_for(:valid_submission) | |
}.to change(Submission, :count).by(1) | |
end | |
it "returns only id of new Submission" do | |
post :create, params: attributes_for(:valid_submission) | |
json = JSON.parse(response.body) | |
expect(response).to be_success | |
expect(json).to have_serialized(Submission.first).with(SubmissionSerializer, { fields: [:token] }) | |
end | |
it "doesn't create new Submission because given Language doesn't exist" do | |
attributes = attributes_for(:valid_submission) | |
attributes[:language_id] = 142 # Language with id 142 doesn't exist | |
post :create, params: attributes | |
expect(response).to have_http_status(422) | |
end | |
end | |
context "with invalid params" do | |
it "doesn't create new Submission" do | |
post :create, params: { submission: attributes_for(:invalid_submission) } | |
expect(response).to have_http_status(422) | |
end | |
end | |
end | |
end | |