Commit f6d4381b authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Reuse a helper function accross many specs.

parent f9ab7688
Loading
Loading
Loading
Loading

spec/class_factory.rb

0 → 100644
+20 −0
Original line number Diff line number Diff line
require "jsduck/class"

# A helper for easy creation of classes in tests
#
# Allows simplified members hashes to be used.
module Helper
  class ClassFactory
    def self.create(cfg)
      cfg[:members].each do |m|
        m[:tagname] = :property unless m[:tagname]
        m[:owner] = cfg[:name]
        m[:meta] = {} unless m[:meta]
        m[:meta][:static] = true if m[:static]
        m[:id] = JsDuck::Class.member_id(m)
      end

      JsDuck::Class.new(cfg)
    end
  end
end
+9 −8
Original line number Diff line number Diff line
require "jsduck/class"
require "class_factory"

describe JsDuck::Class do

@@ -18,7 +19,7 @@ describe JsDuck::Class do
    let (:cls) do
      classes = {}

      parent = make_class({
      parent = Helper::ClassFactory.create({
        :name => "ParentClass",
        :members => [
          {:name => "inParent"},
@@ -28,7 +29,7 @@ describe JsDuck::Class do
      classes["ParentClass"] = parent
      parent.relations = classes

      parent = make_class({
      parent = Helper::ClassFactory.create({
        :name => "MixinClass",
        :members => [
          {:name => "inMixin"},
@@ -38,7 +39,7 @@ describe JsDuck::Class do
      classes["MixinClass"] = parent
      parent.relations = classes

      child = make_class({
      child = Helper::ClassFactory.create({
        :name => "ChildClass",
        :extends => "ParentClass",
        :mixins => ["MixinClass"],
@@ -104,7 +105,7 @@ describe JsDuck::Class do
    let (:cls) do
      classes = {}

      parent = make_class({
      parent = Helper::ClassFactory.create({
        :name => "ParentClass",
        :members => [
          {:name => "inParent", :static => true},
@@ -114,7 +115,7 @@ describe JsDuck::Class do
      classes["ParentClass"] = parent
      parent.relations = classes

      parent = make_class({
      parent = Helper::ClassFactory.create({
        :name => "MixinClass",
        :members => [
          {:name => "inMixin", :static => true},
@@ -124,7 +125,7 @@ describe JsDuck::Class do
      classes["MixinClass"] = parent
      parent.relations = classes

      child = make_class({
      child = Helper::ClassFactory.create({
        :name => "ChildClass",
        :extends => "ParentClass",
        :mixins => ["MixinClass"],
@@ -174,7 +175,7 @@ describe JsDuck::Class do

  describe "when #find_members called before" do
    let (:parent) do
      make_class({
      Helper::ClassFactory.create({
        :name => "ParentClass",
        :members => [
          {:name => "oldName"},
@@ -183,7 +184,7 @@ describe JsDuck::Class do
    end

    let (:child) do
      make_class({
      Helper::ClassFactory.create({
        :name => "ChildClass",
        :extends => "ParentClass",
        :members => [
+2 −13
Original line number Diff line number Diff line
require "jsduck/full_exporter"
require "jsduck/class"
require "jsduck/relations"
require "class_factory"

describe JsDuck::FullExporter do

  def make_class(cfg)
    cfg[:members].each do |m|
      m[:tagname] = :property unless m[:tagname]
      m[:owner] = cfg[:name]
      m[:meta] = {} unless m[:meta]
      m[:meta][:static] = true if m[:static]
      m[:id] = JsDuck::Class.member_id(m)
    end

    JsDuck::Class.new(cfg)
  end

  describe "#export" do

    let(:cls) do
      make_class({
      Helper::ClassFactory.create({
        :name => "Foo",
        :members => [
          {:tagname => :cfg, :name => "foo"},
+3 −14
Original line number Diff line number Diff line
require "jsduck/class"
require "class_factory"

# Test for the behavior of @hide tag

describe JsDuck::Class do

  def make_class(cfg)
    cfg[:members].each do |m|
      m[:tagname] = :property unless m[:tagname]
      m[:owner] = cfg[:name]
      m[:meta] = {} unless m[:meta]
      m[:meta][:static] = true if m[:static]
      m[:id] = JsDuck::Class.member_id(m)
    end

    JsDuck::Class.new(cfg)
  end

  def members_as_hash(cls)
    h = {}
    cls.find_members().each {|m| h[m[:name]] = m }
@@ -24,7 +13,7 @@ describe JsDuck::Class do

  before do
    @classes = {}
    @parent = make_class({
    @parent = Helper::ClassFactory.create({
        :name => "ParentClass",
        :members => [
          {:name => "foo"},
@@ -35,7 +24,7 @@ describe JsDuck::Class do
    @classes["ParentClass"] = @parent
    @parent.relations = @classes

    @child = make_class({
    @child = Helper::ClassFactory.create({
        :name => "ChildClass",
        :extends => "ParentClass",
        :members => [