
Since both projects are developed together and by the same team, we also want to have the same code structure and utility methods available in both projects. Therefore, this commit changes many files, but without a functional change.
46 lines
1.3 KiB
Ruby
46 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe CommentsController do
|
|
render_views
|
|
|
|
let(:user) { create(:learner) }
|
|
let(:rfc_with_comment) { create(:rfc_with_comment, user:) }
|
|
let(:comment) { rfc_with_comment.comments.first }
|
|
let(:updated_comment) { comment.reload }
|
|
let(:perform_request) { proc { put :update, format: :json, params: {id: comment.id, comment: comment_params} } }
|
|
|
|
before do
|
|
allow(controller).to receive(:current_user).and_return(user)
|
|
perform_request.call
|
|
end
|
|
|
|
describe 'PUT #update' do
|
|
context 'with valid params' do
|
|
let(:comment_params) { {text: 'test100'} }
|
|
|
|
it 'saves the permitted changes' do
|
|
expect(updated_comment.text).to eq('test100')
|
|
end
|
|
|
|
expect_http_status(:ok)
|
|
end
|
|
|
|
context 'with additional params' do
|
|
let(:file) { create(:file) }
|
|
let(:comment_params) { {text: 'test100', row: 5, file_id: file.id} }
|
|
|
|
it 'applies the permitted changes' do
|
|
expect(updated_comment.row).not_to eq(5)
|
|
expect(updated_comment.file_id).not_to eq(file.id)
|
|
expect(updated_comment.row).to eq(1)
|
|
expect(updated_comment.file_id).to eq(comment.file_id)
|
|
expect(updated_comment.text).to eq('test100')
|
|
end
|
|
|
|
expect_http_status(:ok)
|
|
end
|
|
end
|
|
end
|