require 'rails_helper'
RSpec.describe Annotation, type: :model do
it_behaves_like "VersionableModel"
context "validations" do
subject { build(:annotation) }
it { is_expected.to validate_presence_of(:text) }
it { is_expected.to validate_presence_of(:org) }
it { is_expected.to validate_presence_of(:question) }
it { is_expected.to validate_presence_of(:type) }
end
describe "#to_s" do
let!(:annotation) { build(:annotation) }
subject { annotation.to_s }
it { is_expected.to eql(annotation.text) }
end
describe "#deep_copy" do
context "when question_id option is nil" do
before do
@annotation = create(:annotation)
@new_annotation = @annotation.deep_copy
end
it "creates a different record" do
expect(@new_annotation).not_to eql(@annotation)
end
it "copies the text attribute" do
expect(@new_annotation.text).to eql(@annotation.text)
end
it "copies the type attribute" do
expect(@new_annotation.type).to eql(@annotation.type)
end
it "copies the org_id attribute" do
expect(@new_annotation.org_id).to eql(@annotation.org_id)
end
it "sets question_id to nil" do
expect(@new_annotation.question_id).to be_nil
end
end
context "when question_id option is set" do
before do
@annotation = create(:annotation)
@new_annotation = @annotation.deep_copy(question_id: 1)
end
it "sets question_id to nil" do
expect(@new_annotation.question_id).to eql(1)
end
end
end
end