answer.rb 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
  2. FactoryBot.define do
  3. factory 'knowledge_base/answer', aliases: %i[knowledge_base_answer] do
  4. transient do
  5. add_translation { true }
  6. translation_traits { [] }
  7. translation_attributes { {} }
  8. knowledge_base { nil }
  9. end
  10. category { create(:knowledge_base_category, { knowledge_base: knowledge_base }.compact) }
  11. before(:create) do |answer, context|
  12. next if answer.translations.present?
  13. answer.translations << build('knowledge_base/answer/translation', *context.translation_traits, answer: answer, **context.translation_attributes)
  14. end
  15. trait :draft # empty placeholder for better readability
  16. trait :internal do
  17. internal_at { 1.week.ago }
  18. end
  19. trait :published do
  20. published_at { 1.week.ago }
  21. end
  22. trait :archived do
  23. archived_at { 1.week.ago }
  24. end
  25. trait :with_video do
  26. transient do
  27. translation_traits { [:with_video] }
  28. end
  29. end
  30. trait :with_image do
  31. transient do
  32. translation_traits { [:with_image] }
  33. end
  34. end
  35. trait :with_attachment do
  36. transient do
  37. attachment { File.open('spec/fixtures/upload/hello_world.txt') }
  38. end
  39. after(:create) do |answer, context|
  40. Store.add(
  41. object: answer.class.name,
  42. o_id: answer.id,
  43. data: context.attachment.read,
  44. filename: File.basename(context.attachment.path),
  45. preferences: {}
  46. )
  47. end
  48. end
  49. end
  50. end