base_example.rb 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
  2. RSpec.shared_examples 'TriggerWebhookJob::RecordPayload backend' do |factory|
  3. describe 'const USER_ATTRIBUTE_FILTER' do
  4. subject(:filter) { described_class.const_get(:USER_ATTRIBUTE_FILTER) }
  5. it 'contains sensitive attributes' do
  6. expect(filter).to include('password')
  7. end
  8. end
  9. describe '#generate' do
  10. subject(:generate) { described_class.new(record).generate }
  11. let(:resolved_associations) { described_class.const_get(:ASSOCIATIONS).map(&:to_s) }
  12. let(:record) { build(factory) }
  13. it 'includes attributes with association names' do
  14. expect(generate).to include(record.attributes_with_association_names.except(*resolved_associations))
  15. end
  16. it 'resolves defined associations' do
  17. resolved_associations.each do |association|
  18. expect(generate[association]).to be_a(Hash)
  19. end
  20. end
  21. it 'does not contain filtered User attributes' do
  22. expect(generate['created_by']).not_to have_key('password')
  23. end
  24. end
  25. end