spec/back_end/engine_spec.rb in loxxy-0.0.20 vs spec/back_end/engine_spec.rb in loxxy-0.0.21

- old
+ new

@@ -29,10 +29,18 @@ end context 'Listening to visitor events:' do let(:greeting) { Datatype::LXString.new('Hello, world') } let(:sample_pos) { double('fake-position') } + let(:var_decl) { Ast::LoxVarStmt.new(sample_pos, 'greeting', greeting) } let(:lit_expr) { Ast::LoxLiteralExpr.new(sample_pos, greeting) } + + it "should react to 'after_var_stmt' event" do + expect { subject.after_var_stmt(var_decl) }.not_to raise_error + current_env = subject.symbol_table.current_env + expect(current_env.defns['greeting']).to be_kind_of(Variable) + expect(current_env.defns['greeting'].value).to eq(greeting) + end it "should react to 'before_literal_expr' event" do expect { subject.before_literal_expr(lit_expr) }.not_to raise_error expect(subject.stack.pop).to eq(greeting) end