Sha256: b01304da237524ca757719579d07e1d6dc7c1489f6dbb15cc598fdbbcc62acde

Contents?: true

Size: 1.88 KB

Versions: 15

Compression:

Stored size: 1.88 KB

Contents

# frozen_string_literal: true

RSpec.describe "Settings / Access within slice class bodies", :app_integration do
  before do
    @env = ENV.to_h
    allow(Hanami::Env).to receive(:loaded?).and_return(false)
  end

  after do
    ENV.replace(@env)
  end

  context "app class" do
    it "provides access to the settings inside the class body" do
      with_directory(make_tmp_directory) do
        write "config/app.rb", <<~'RUBY'
          require "hanami"

          module TestApp
            class App < Hanami::App
              @some_flag = settings.some_flag
            end
          end
        RUBY

        write ".env", <<~'TEXT'
          SOME_FLAG=true
        TEXT

        write "config/settings.rb", <<~'RUBY'
          module TestApp
            class Settings < Hanami::Settings
              setting :some_flag
            end
          end
        RUBY

        require "hanami/setup"

        expect(Hanami.app.instance_variable_get(:@some_flag)).to eq "true"
      end
    end
  end

  context "slice class" do
    it "provides access to the settings inside the class body" do
      with_directory(make_tmp_directory) do
        write "config/app.rb", <<~'RUBY'
          require "hanami"

          module TestApp
            class App < Hanami::App
            end
          end
        RUBY

        write "config/slices/main.rb", <<~'RUBY'
          module Main
            class Slice < Hanami::Slice
              @some_flag = settings.some_flag
            end
          end
        RUBY

        write ".env", <<~'TEXT'
          SOME_FLAG=true
        TEXT

        write "slices/main/config/settings.rb", <<~'RUBY'
          module Main
            class Settings < Hanami::Settings
              setting :some_flag
            end
          end
        RUBY

        require "hanami/prepare"

        expect(Main::Slice.instance_variable_get(:@some_flag)).to eq "true"
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
hanami-2.2.1 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.2.0 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.2.0.rc1 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.2.0.beta2 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.2.0.beta1 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.1.0 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.1.0.rc3 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.1.0.rc2 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.1.0.rc1 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.1.0.beta2.1 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.1.0.beta2 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.1.0.beta1 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.0.3 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.0.2 spec/integration/settings/access_in_slice_class_body_spec.rb
hanami-2.0.1 spec/integration/settings/access_in_slice_class_body_spec.rb