spec/facade/class_builder_spec.rb in schizo-0.1.3 vs spec/facade/class_builder_spec.rb in schizo-0.2.0
- old
+ new
@@ -19,35 +19,65 @@
@test_var = 1
end
end
end
+ let(:concern) do
+ Module.new do
+ extend ActiveSupport::Concern
+ included do
+ @test_concern_var = 1
+ end
+ end
+ end
+
let(:builder) do
ClassBuilder.new(base, role)
end
+ let(:builder_concern) do
+ ClassBuilder.new(base, concern)
+ end
+
it "works with namespaced roles" do
role.module_eval do
def self.name
"Namespaced::Role"
end
end
+
+ concern.module_eval do
+ def self.name
+ "Namespaced::Concern"
+ end
+ end
+
builder.product.to_s.should == "Schizo::Facades::Foo::Namespaced::Role"
+ builder_concern.product.to_s.should == "Schizo::Facades::Foo::Namespaced::Concern"
end
context "#initialize" do
it "sets base and role" do
builder.base.should == base
builder.role.should == role
+
+ builder_concern.base.should == base
+ builder_concern.role.should == concern
end
end
context "#product" do
it "returns a facade class" do
builder.product.tap do |facade|
+ facade.should be_a(Class)
+ facade.ancestors.should include(base)
+ facade.ancestors.should include(Base)
+ end
+
+ builder_concern.product.tap do |facade|
facade.should be_a(Class)
facade.ancestors.should include(base)
facade.ancestors.should include(Base)
end
end