spec/cloud_sesame/query/domain/block_spec.rb in CloudSesame-0.6.8 vs spec/cloud_sesame/query/domain/block_spec.rb in CloudSesame-0.7.0
- old
+ new
@@ -1,10 +1,25 @@
+require_relative '../dsl/field_accessors_spec'
+
module CloudSesame
module Query
module Domain
describe Block do
+ # Module Specs
+ # =======================================
+ it_behaves_like 'FieldAccessors' do
+ let(:scope) { AST::Root.new(context, {}) }
+ subject { Block.new(self, context) }
+ before do
+ Block.send(:include, DSL::FieldAccessors)
+ subject.instance_variable_set(:@_scopes, [scope])
+ end
+ end
+
+ # Class Specs
+ # =======================================
class Caller
def initialize
@test = "hello"
end
@@ -16,11 +31,10 @@
subject { Block.new(Caller.new, {}) }
[
DSL::BlockStyledOperators,
- DSL::FieldAccessors,
DSL::ScopeAccessors,
DSL::Operators,
DSL::BindCaller
].each do |included_module|
it "should include #{ included_module }" do
@@ -61,16 +75,9 @@
expect(subject._scope).to eq nil
end
end
end
- # def _eval(node, _scope, _return = _scope, &block)
- # _scopes.push node
- # instance_eval &block
- # _scope << node
- # _scopes.pop
- # _scope.is_a?(AST::Root) ? _return : node
- # end
describe '#_eval' do
let(:node) { AST::And.new({}, {}) }
let(:scope) { AST::And.new({}, {}) }