mirror of
https://github.com/lloeki/package-ruby.git
synced 2025-12-06 10:04:39 +01:00
preview
This commit is contained in:
commit
32b99b62bf
20 changed files with 644 additions and 0 deletions
68
spec/package_spec.rb
Normal file
68
spec/package_spec.rb
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
require 'package'
|
||||
|
||||
RSpec.describe Package do
|
||||
context 'instance' do
|
||||
let(:package) { Package.new('spec/fixtures/empty_package') }
|
||||
|
||||
it { expect(package).to be_a Module }
|
||||
end
|
||||
end
|
||||
|
||||
RSpec.describe 'Kernel#import' do
|
||||
before(:each) { Package.reload! }
|
||||
|
||||
[Module, Object].each do |ctx|
|
||||
let(:package_name) { 'spec/fixtures/empty_package' }
|
||||
let(:target) { nil }
|
||||
let(:pak) do
|
||||
t = target
|
||||
n = package_name
|
||||
context.instance_eval { import(n, to: t) }
|
||||
end
|
||||
|
||||
context "called inside #{ctx.name}.new" do
|
||||
let(:context) { ctx.new }
|
||||
|
||||
it 'should import a package as a value' do
|
||||
expect(pak).to be_a Package
|
||||
expect(context).not_to respond_to :empty_package
|
||||
expect do
|
||||
context.instance_eval { EmptyPackage }
|
||||
end.to raise_error NameError
|
||||
expect do
|
||||
context.instance_eval { empty_package }
|
||||
end.to raise_error NameError
|
||||
end
|
||||
|
||||
it 'should import a package as a method' do
|
||||
pak = nil
|
||||
context = Module.new do
|
||||
pak = import('spec/fixtures/empty_package', to: :method)
|
||||
end
|
||||
|
||||
expect(context).to respond_to :empty_package
|
||||
expect(context.empty_package).to eq pak
|
||||
end
|
||||
|
||||
it 'should import a package as a const' do
|
||||
pak = nil
|
||||
context = Module.new do
|
||||
pak = import('spec/fixtures/empty_package', to: :const)
|
||||
end
|
||||
|
||||
expect(context).to have_constant :EmptyPackage
|
||||
expect(context::EmptyPackage).to eq pak
|
||||
end
|
||||
|
||||
it 'should import a package as a local' do
|
||||
pending 'not ready yet'
|
||||
|
||||
context = Module.new do
|
||||
import('spec/fixtures/empty_package', to: :local)
|
||||
end
|
||||
|
||||
expect(context.instance_eval { empty_package }).to be_a Package
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue