Merge pull request #2355 from internetee/2340-fix-contact-update-fails

Deleted disclosable concern from contact
This commit is contained in:
Timo Võhmar 2022-04-20 16:02:03 +03:00 committed by GitHub
commit 364954ecfa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 0 additions and 62 deletions

View file

@ -1,22 +0,0 @@
module Contact::Disclosable
extend ActiveSupport::Concern
class_methods do
attr_accessor :disclosable_attributes
end
included do
self.disclosable_attributes = %w[name email]
validate :validate_disclosed_attributes
end
private
def validate_disclosed_attributes
return if disclosed_attributes.empty?
has_undisclosable_attributes = (disclosed_attributes - self.class.disclosable_attributes)
.any?
errors.add(:disclosed_attributes, :invalid) if has_undisclosable_attributes
end
end

View file

@ -7,7 +7,6 @@ class Contact < ApplicationRecord
include UserEvents
include Contact::Transferable
include Contact::Identical
include Contact::Disclosable
include Contact::Archivable
include EmailVerifable

View file

@ -1,39 +0,0 @@
require 'test_helper'
class ContactDisclosableTest < ActiveSupport::TestCase
setup do
@contact = contacts(:john)
@original_disclosable_attributes = Contact.disclosable_attributes
end
teardown do
Contact.disclosable_attributes = @original_disclosable_attributes
end
def test_no_disclosed_attributes_by_default
assert_empty Contact.new.disclosed_attributes
end
def test_disclosable_attributes
assert_equal %w[name email], Contact.disclosable_attributes
end
def test_valid_without_disclosed_attributes
@contact.disclosed_attributes = []
assert @contact.valid?
end
def test_invalid_when_attribute_is_not_disclosable
Contact.disclosable_attributes = %w[some disclosable]
@contact.disclosed_attributes = %w[some undisclosable]
assert @contact.invalid?
assert_includes @contact.errors[:disclosed_attributes], 'contain unsupported attribute(s)'
end
def test_valid_when_attribute_is_disclosable
Contact.disclosable_attributes = %w[some disclosable]
@contact.disclosed_attributes = %w[disclosable]
assert @contact.valid?
end
end