docbrown/spec/factories/pages.rb
Joshua Wehner a20cf3e02b
Unique cross-model-slug check is likely misconfigured (#19263)
* Page unique_cross_model_slug seems misconfigured

* Update validator test

* More verbose invalid attribute message

* Try dynamic model/attribute registration

* Rubocop

* Use the cross-model-slug existence check

* Register with the dynamic cross-model-slug checker

* Cleanup

* Add missing keys to fr

* Update format regex

* Adjust validation: always presence, unique if changed

* Tests can create reserved-word pages when they need to

* Slugs can be mixed case?

* Case-sensitive is better, actually

* Refactor to use CrossModel check

* Refactor, rename for clarity

* Refactor, avoid mocking oneself

* Refactor, injectable everything

* Add reservedword check to extracted exists? checker

* Move to concerns

* Without dynamic registration

* extend when needed

* Cleanup comments, remove registration references

---------

Co-authored-by: Goran <gorang.pub@gmail.com>
2023-04-07 17:04:45 +02:00

16 lines
563 B
Ruby

FactoryBot.define do
factory :page do
title { Faker::Book.title }
body_markdown { Faker::Lorem.sentence }
slug { Faker::Internet.slug }
description { Faker::Lorem.sentence }
template { "contained" }
# Validations prevent creating pages with reserved words, but empty test
# database populated without these objects, this allows a bypass to create
# those pages for specific test scenarios.
trait :without_validations do
to_create { |instance| instance.save(validate: false) }
end
end
end