Commit 4bbcc296 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Create MiniParser helper for use in parsing tests.

This helps to keep the parsing setup in one place and allow easier
changes to it when needed.  Each spec file only needs to call the
Helper::MiniParser.parse with a few arguments, simplifying the
setup code inside actual spec files.

Because the MiniParser.parse always returns Relations object, add
a #length method to Relations class, so that the tests that previously
checked the length of simple classes hash can now call the same method
on Relations object and continue passing.
parent 2b778ff8
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -50,6 +50,11 @@ module JsDuck
      @classes.each(&block)
    end

    # Used in tests to check the nr of classes.
    def length
      @classes.length
    end

    # Returns list of all classes.  This method allows us to treat
    # Relations as array and therefore easily mock it
    def to_a
+2 −8
Original line number Diff line number Diff line
require "jsduck/aggregator"
require "jsduck/source/file"
require "jsduck/process/accessors"
require "mini_parser"

describe JsDuck::Aggregator do
  def parse(string)
    agr = JsDuck::Aggregator.new
    agr.aggregate(JsDuck::Source::File.new(string))
    classes = agr.result
    JsDuck::Process::Accessors.new(classes).process_all!
    classes
    Helper::MiniParser.parse(string, {:accessors => true})
  end

  describe "@cfg foo with @accessor" do
+2 −5
Original line number Diff line number Diff line
require "jsduck/aggregator"
require "jsduck/source/file"
require "mini_parser"

describe JsDuck::Aggregator do

  def parse(string)
    agr = JsDuck::Aggregator.new
    agr.aggregate(JsDuck::Source::File.new(string))
    agr.result
    Helper::MiniParser.parse(string)
  end

  shared_examples_for "single alias" do
+2 −5
Original line number Diff line number Diff line
require "jsduck/aggregator"
require "jsduck/source/file"
require "mini_parser"

describe JsDuck::Aggregator do
  def parse(string)
    agr = JsDuck::Aggregator.new
    agr.aggregate(JsDuck::Source::File.new(string))
    agr.result
    Helper::MiniParser.parse(string)
  end

  def parse_member(string)
+2 −5
Original line number Diff line number Diff line
require "jsduck/aggregator"
require "jsduck/source/file"
require "mini_parser"

describe JsDuck::Aggregator do

  def parse(string)
    agr = JsDuck::Aggregator.new
    agr.aggregate(JsDuck::Source::File.new(string))
    agr.result
    Helper::MiniParser.parse(string)
  end

  def parse_member(string)
Loading