я относительно новичок в rspec и тестировании, пытаюсь написать тест для этого кода
@assessments = Assessment.where(assigned_user_id: current_user.id)
вот что я пробовал до сих пор, но я не уверен, что это правильный путь, я былуказанная спецификация контроллера не рекомендуется, поэтому я пытаюсь реализовать ее с помощью модульного теста.
spec_file
require 'rails_helper'
# Test suite for the assessment model
RSpec.describe Assessment, type: :model do
let(:admin) { User.new(email: 'rockcoolsaint@example.com', password: 'password', password_confirmation: 'password', role: :admin) }
let(:behavioral_specialist) { User.new(email: 'bs@example.com', password: 'password', password_confirmation: 'password', role: :behavioral_specialist) }
let(:behavioral_specialist_2) { User.new(email: 'bs2@example.com', password: 'password', password_confirmation: 'password', role: :behavioral_specialist) }
let(:bs_user_assessments) { Assessment.where(assigned_user_id: behavioral_specialist.id) }
describe 'Validations' do
it { should validate_presence_of(:title) }
it 'is valid with all attributes' do
expect(build(:assessment, user: admin, assigned_user: behavioral_specialist)).to be_valid
end
it 'is valid if assigned_user_id equals behavioral_specialist_id' do
bs_user_assessments.each do |assessment|
expect(assessment.assigned_user_id).to eq(behavioral_specialist.id)
end
end
it 'is valid if assigned_user_id does not equal behavioral_specialist_2_id' do
bs_user_assessments.each do |assessment|
expect(assessment.assigned_user_id).to_not eq(behavioral_specialist_2.id)
end
end
end