Module: LesliTesting::Fixtures

Defined in:
lib/lesli_testing/fixtures.rb

Class Method Summary collapse

Class Method Details

.load_fixtures_for_engine(engine_module) ⇒ Object



68
69
# File 'lib/lesli_testing/fixtures.rb', line 68

def load_fixtures_for_engine(engine_module)
end

.load_fixtures_for_lesliObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/lesli_testing/fixtures.rb', line 36

def load_fixtures_for_lesli()

    if defined?(Lesli)
        ActiveSupport.on_load(:active_support_test_case) do
            # En Rails 8, usamos ActiveRecord::TestFixtures si está disponible
            include ActiveRecord::TestFixtures if defined?(ActiveRecord::TestFixtures)

            lesli_fixtures = Lesli::Engine.root.join("test", "fixtures").to_s
            lesli_files = Lesli::Engine.root.join("test", "fixtures", "files").to_s

            # Rails 8 usa fixture_paths (plural) como el estándar
            # Pero para evitar el NoMethodError, lo asignamos de forma segura:
            if respond_to?(:fixture_paths=)
                # Combinamos las rutas existentes con la nueva del Engine
                self.fixture_paths |= [ lesli_fixtures ]
            else
                # Fallback por si la carga de ActiveRecord se retrasa
                class_attribute :fixture_paths, default: [ lesli_fixtures ]
            end

            # Los archivos adjuntos (Active Storage, etc)
            self.file_fixture_path = lesli_files

            # IMPORTANT: attach fixture sets to namespaced models BEFORE loading fixtures
            self.set_fixture_class(
                lesli_users:    "Lesli::User",
                lesli_accounts: "Lesli::Account"
            )
        end
    end
end