Sha256: f99d6b2b9ea97c906fadf4e1fedea3678b743fa744f67d3b643a8f762a9ceb57

Contents?: true

Size: 1.63 KB

Versions: 5

Compression:

Stored size: 1.63 KB

Contents

require 'factory_bot'
require 'alchemy/test_support/factories/language_factory'

FactoryBot.define do
  factory :alchemy_page, class: 'Alchemy::Page' do
    language { Alchemy::Language.default || FactoryBot.create(:alchemy_language) }
    sequence(:name) { |n| "A Page #{n}" }
    page_layout { "standard" }

    parent_id do
      (Alchemy::Page.find_by(language_root: true) ||
        FactoryBot.create(:alchemy_page, :language_root)).id
    end

    # This speeds up creating of pages dramatically.
    # Pass autogenerate_elements: true to generate elements
    autogenerate_elements { false }

    trait :root do
      name { 'Root' }
      language { nil }
      parent_id { nil }
      page_layout { nil }
    end

    trait :language_root do
      name { 'Startseite' }
      page_layout { language.page_layout }
      language_root { true }
      public_on { Time.current }
      parent_id { Alchemy::Page.root.id }
    end

    trait :public do
      sequence(:name) { |n| "A Public Page #{n}" }
      public_on { Time.current }
    end

    trait :system do
      name { "Systempage" }
      parent_id { Alchemy::Page.root.id }
      language_root { false }
      page_layout { nil }
      language { nil }
    end

    trait :layoutpage do
      name { "Footer" }
      parent_id { Alchemy::Page.find_or_create_layout_root_for(Alchemy::Language.current.id).id }
      layoutpage { true }
      page_layout { "footer" }
    end

    trait :restricted do
      name { "Restricted page" }
      restricted { true }
    end

    trait :locked do
      locked_at { Time.current }
      locked_by { SecureRandom.random_number(1_000_000_000) }
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
alchemy_cms-4.2.4 lib/alchemy/test_support/factories/page_factory.rb
alchemy_cms-4.2.3 lib/alchemy/test_support/factories/page_factory.rb
alchemy_cms-4.2.2 lib/alchemy/test_support/factories/page_factory.rb
alchemy_cms-4.2.1 lib/alchemy/test_support/factories/page_factory.rb
alchemy_cms-4.2.0.rc1 lib/alchemy/test_support/factories/page_factory.rb