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