Sha256: cf3937c8afdb3f2d1a7d340923d99060a40fe86b1ce383905a5316d910448384

Contents?: true

Size: 1.81 KB

Versions: 1

Compression:

Stored size: 1.81 KB

Contents

# frozen_string_literal: true

require "decidim/core/test/factories"

FactoryBot.define do
  factory :comment, class: "Decidim::Comments::Comment" do
    transient do
      skip_injection { false }
    end
    author { build(:user, organization: commentable.organization, skip_injection:) }
    commentable { build(:dummy_resource, skip_injection:) }
    root_commentable { commentable }
    body { Decidim::Faker::Localized.paragraph }
    participatory_space { commentable.try(:participatory_space) }

    after(:build) do |comment, evaluator|
      comment.body = if evaluator.body.is_a?(String)
                       { comment.root_commentable.organization.default_locale || "en" => evaluator.body }
                     else
                       evaluator.body
                     end
      comment.body = Decidim::ContentProcessor.parse_with_processor(:hashtag, comment.body, current_organization: comment.root_commentable.organization).rewrite
    end

    trait :deleted do
      created_at { 1.day.ago }
      deleted_at { 1.hour.ago }
    end

    trait :comment_on_comment do
      author { build(:user, organization: root_commentable.organization, skip_injection:) }
      commentable do
        build(
          :comment,
          author:,
          root_commentable:,
          commentable: root_commentable,
          skip_injection:
        )
      end
      root_commentable { build(:dummy_resource, skip_injection:) }
    end
  end

  factory :comment_vote, class: "Decidim::Comments::CommentVote" do
    transient do
      skip_injection { false }
    end
    comment { build(:comment, skip_injection:) }
    author { build(:user, organization: comment.organization, skip_injection:) }
    weight { [-1, 1].sample }

    trait :up_vote do
      weight { 1 }
    end

    trait :down_vote do
      weight { -1 }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
decidim-comments-0.28.1 lib/decidim/comments/test/factories.rb