87 lines
2.2 KiB
Ruby
87 lines
2.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.describe "Container auto-registration", :app_integration do
|
|
specify "Auto-registering files in slice source directories" do
|
|
with_tmp_directory(Dir.mktmpdir) do
|
|
write "config/app.rb", <<~RUBY
|
|
require "hanami"
|
|
|
|
module TestApp
|
|
class App < Hanami::App
|
|
config.inflections do |inflections|
|
|
inflections.acronym "NBA"
|
|
end
|
|
end
|
|
end
|
|
RUBY
|
|
|
|
write "app/action.rb", <<~RUBY
|
|
# auto_register: false
|
|
require "hanami/action"
|
|
|
|
module TestApp
|
|
class Action < Hanami::Action
|
|
end
|
|
end
|
|
RUBY
|
|
|
|
write "app/actions/nba_rosters/index.rb", <<~RUBY
|
|
module TestApp
|
|
module Actions
|
|
module NBARosters
|
|
class Index < TestApp::Action
|
|
end
|
|
end
|
|
end
|
|
end
|
|
RUBY
|
|
|
|
write "slices/admin/lib/nba_jam/get_that_outta_here.rb", <<~RUBY
|
|
module Admin
|
|
module NBAJam
|
|
class GetThatOuttaHere
|
|
end
|
|
end
|
|
end
|
|
RUBY
|
|
|
|
require "hanami/setup"
|
|
Hanami.boot
|
|
|
|
expect(TestApp::App["actions.nba_rosters.index"]).to be_an TestApp::Actions::NBARosters::Index
|
|
expect(Admin::Slice["nba_jam.get_that_outta_here"]).to be_an Admin::NBAJam::GetThatOuttaHere
|
|
end
|
|
end
|
|
|
|
it "Unbooted app resolves components lazily from the lib/ directories" do
|
|
with_tmp_directory(Dir.mktmpdir) do
|
|
write "config/app.rb", <<~RUBY
|
|
require "hanami"
|
|
|
|
module TestApp
|
|
class App < Hanami::App
|
|
config.inflections do |inflections|
|
|
inflections.acronym "NBA"
|
|
end
|
|
end
|
|
end
|
|
RUBY
|
|
|
|
write "slices/admin/lib/nba_jam/get_that_outta_here.rb", <<~RUBY
|
|
module Admin
|
|
module NBAJam
|
|
class GetThatOuttaHere
|
|
end
|
|
end
|
|
end
|
|
RUBY
|
|
|
|
require "hanami/prepare"
|
|
|
|
expect(Admin::Slice.keys).not_to include("nba_jam.get_that_outta_here")
|
|
expect(Admin::Slice["nba_jam.get_that_outta_here"]).to be_an Admin::NBAJam::GetThatOuttaHere
|
|
expect(Admin::Slice.keys).to include("nba_jam.get_that_outta_here")
|
|
end
|
|
end
|
|
end
|