Sha256: 435b00c1f5a270f6ec6870bcdbbfcada564ed871565f963a6c869b370eccc7d1

Contents?: true

Size: 1.75 KB

Versions: 24

Compression:

Stored size: 1.75 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/helper')

describe "Dependencies" do
  describe 'when we require a dependency that have another dependency' do
    before do
      @log_level = Padrino::Logger::Config[:test]
      @io = StringIO.new
      Padrino::Logger::Config[:test] = { :log_level => :error, :stream => @io }
      Padrino::Logger.setup!
    end

    after do
      Padrino::Logger::Config[:test] = @log_level
      Padrino::Logger.setup!
    end

    it 'should raise an error without reloading it twice' do
      capture_io do
        assert_raises(RuntimeError) do
          Padrino.require_dependencies(
            Padrino.root("fixtures/dependencies/a.rb"),
            Padrino.root("fixtures/dependencies/b.rb"),
            Padrino.root("fixtures/dependencies/c.rb"),
            Padrino.root("fixtures/dependencies/d.rb")
          )
        end
      end
      assert_equal 1, D
      assert_match /RuntimeError - SomeThing/, @io.string
    end

    it 'should resolve dependency problems' do
      capture_io do
        Padrino.require_dependencies(
          Padrino.root("fixtures/dependencies/a.rb"),
          Padrino.root("fixtures/dependencies/b.rb"),
          Padrino.root("fixtures/dependencies/c.rb")
        )
      end
      assert_equal ["B", "C"], A_result
      assert_equal "C", B_result
      assert_equal "", @io.string
    end

    it 'should remove partially loaded constants' do
      capture_io do
        Padrino.require_dependencies(
          Padrino.root("fixtures/dependencies/circular/e.rb"),
          Padrino.root("fixtures/dependencies/circular/f.rb"),
          Padrino.root("fixtures/dependencies/circular/g.rb")
        )
      end
      assert_equal ["name"], F.fields
      assert_equal "", @io.string
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
padrino-core-0.12.9 test/test_dependencies.rb
padrino-core-0.13.3.4 test/test_dependencies.rb
padrino-core-0.14.0.rc2 test/test_dependencies.rb
padrino-core-0.14.0.rc1 test/test_dependencies.rb
padrino-core-0.13.3.3 test/test_dependencies.rb
padrino-core-0.13.3.2 test/test_dependencies.rb
padrino-core-0.12.8.1 test/test_dependencies.rb
padrino-core-0.13.3.1 test/test_dependencies.rb
padrino-core-0.13.3 test/test_dependencies.rb
padrino-core-0.12.8 test/test_dependencies.rb
padrino-core-0.12.7 test/test_dependencies.rb
padrino-core-0.12.6 test/test_dependencies.rb
padrino-core-0.13.2 test/test_dependencies.rb
padrino-core-0.13.1 test/test_dependencies.rb
padrino-core-0.13.1.beta1 test/test_dependencies.rb
padrino-core-0.13.0 test/test_dependencies.rb
padrino-core-0.13.0.beta3 test/test_dependencies.rb
padrino-core-0.13.0.beta2 test/test_dependencies.rb
padrino-core-0.12.5 test/test_dependencies.rb
padrino-core-0.13.0.beta1 test/test_dependencies.rb