Sha256: ddcbc68ef056e4f1b86fe53c98f11d64ba07333974de4082afbf0f15abae58d0

Contents?: true

Size: 1.45 KB

Versions: 24

Compression:

Stored size: 1.45 KB

Contents

require_lib 'reek/cli/silencer'
Reek::CLI::Silencer.silently do
  require 'parser/ruby22'
end

require_relative '../spec_helper'
require_lib 'reek/tree_dresser'

RSpec.describe Reek::TreeDresser do
  let(:dresser) { described_class.new }
  let(:sexp) do
    Parser::Ruby22.parse('class Klazz; def meth(argument); argument.call_me; end; end')
  end
  let(:dressed_ast) do
    # The dressed AST looks like this:
    #   (class
    #     (const nil :Klazz) nil
    #     (def :meth
    #       (args
    #         (arg :argument))
    #       (send
    #         (lvar :argument) :call_me)))
    dresser.dress(sexp, {})
  end
  let(:const_node) { dressed_ast.children.first }
  let(:def_node) { dressed_ast.children.last }
  let(:args_node) { def_node.children[1] }
  let(:send_node) { def_node.children[2] }

  context 'dresses the given sexp' do
    it 'dresses `const` nodes properly' do
      expect(const_node).to be_a Reek::AST::SexpExtensions::ConstNode
    end

    it 'dresses `def` nodes properly' do
      expect(def_node).to be_a Reek::AST::SexpExtensions::DefNode
      expect(def_node).to be_a Reek::AST::SexpExtensions::MethodNodeBase
    end

    it 'dresses `args` nodes properly' do
      expect(args_node).to be_a Reek::AST::SexpExtensions::ArgsNode
      expect(args_node).to be_a Reek::AST::SexpExtensions::NestedAssignables
    end

    it 'dresses `send` nodes properly' do
      expect(send_node).to be_a Reek::AST::SexpExtensions::SendNode
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
reek-4.4.1 spec/reek/tree_dresser_spec.rb
reek-4.4.0 spec/reek/tree_dresser_spec.rb
reek-4.3.0 spec/reek/tree_dresser_spec.rb
reek-4.2.5 spec/reek/tree_dresser_spec.rb
reek-4.2.4 spec/reek/tree_dresser_spec.rb
reek-4.2.3 spec/reek/tree_dresser_spec.rb
reek-4.2.2 spec/reek/tree_dresser_spec.rb
reek-4.2.1 spec/reek/tree_dresser_spec.rb
reek-4.2.0 spec/reek/tree_dresser_spec.rb
reek-4.1.1 spec/reek/tree_dresser_spec.rb
reek-4.1.0 spec/reek/tree_dresser_spec.rb
reek-4.0.5 spec/reek/tree_dresser_spec.rb
reek-4.0.4 spec/reek/tree_dresser_spec.rb
reek-4.0.3 spec/reek/tree_dresser_spec.rb
reek-4.0.2 spec/reek/tree_dresser_spec.rb
reek-4.0.1 spec/reek/tree_dresser_spec.rb
reek-4.0.0 spec/reek/tree_dresser_spec.rb
reek-4.0.0.pre1 spec/reek/tree_dresser_spec.rb
reek-3.11 spec/reek/tree_dresser_spec.rb
reek-3.10.2 spec/reek/tree_dresser_spec.rb