Sha256: dfe676b85de515b40fa5c6a9ca9c5129c18395a0e531cae197ffa994aff3c031

Contents?: true

Size: 1.66 KB

Versions: 21

Compression:

Stored size: 1.66 KB

Contents

# frozen_string_literal: true

RSpec.describe YARD::Tags::RefTagList do
  before { YARD::Registry.clear }

  it "accepts symbol or string as owner's path and convert it into a proxy" do
    t = Tags::RefTagList.new('author', :String)
    expect(t.owner).to eq P(:String)
  end

  it "accepts proxy object as owner" do
    t = Tags::RefTagList.new('author', P(:String))
    expect(t.owner).to eq P(:String)
  end

  it "returns tags from a proxy object" do
    o = CodeObjects::ClassObject.new(:root, :String)
    t = Tags::Tag.new(:author, 'foo')
    o.docstring.add_tag(t)

    ref = Tags::RefTagList.new('author', :String)
    expect(ref.tags).to eq [t]
    expect(ref.tags.first.text).to eq 'foo'
  end

  it "returns named tags from a proxy object" do
    o = CodeObjects::ClassObject.new(:root, :String)
    p1 = Tags::Tag.new(:param, 'bar1', nil, 'foo')
    p2 = Tags::Tag.new(:param, 'bar2', nil, 'foo')
    p3 = Tags::Tag.new(:param, 'bar3', nil, 'bar')
    t1 = Tags::Tag.new(:return, 'blah')
    o.docstring.add_tag(p1, t1, p2, p3)

    ref = Tags::RefTagList.new('param', :String, 'foo')
    expect(ref.tags).to eq [p1, p2]
    expect(ref.tags.first.text).to eq 'bar1'
  end

  it "all tags should respond to #owner and be a RefTag" do
    o = CodeObjects::ClassObject.new(:root, :String)
    p1 = Tags::Tag.new(:param, 'bar1', nil, 'foo')
    p2 = Tags::Tag.new(:param, 'bar2', nil, 'foo')
    p3 = Tags::Tag.new(:param, 'bar3', nil, 'bar')
    t1 = Tags::Tag.new(:return, 'blah')
    o.docstring.add_tag(p1, t1, p2, p3)

    ref = Tags::RefTagList.new('param', :String)
    ref.tags.each do |t|
      expect(t).to be_kind_of(Tags::RefTag)
      expect(t.owner).to eq o
    end
  end
end

Version data entries

21 entries across 20 versions & 4 rubygems

Version Path
yard-0.9.24 spec/tags/ref_tag_list_spec.rb
yard-0.9.23 spec/tags/ref_tag_list_spec.rb
yard-0.9.22 spec/tags/ref_tag_list_spec.rb
yard-0.9.21 spec/tags/ref_tag_list_spec.rb
yard-0.9.20 spec/tags/ref_tag_list_spec.rb
yard-0.9.19 spec/tags/ref_tag_list_spec.rb
yard-0.9.16 spec/tags/ref_tag_list_spec.rb
yard-0.9.15 spec/tags/ref_tag_list_spec.rb
yard-0.9.14 spec/tags/ref_tag_list_spec.rb
yard-0.9.13 spec/tags/ref_tag_list_spec.rb
yard-0.9.12 spec/tags/ref_tag_list_spec.rb
yard-0.9.11 spec/tags/ref_tag_list_spec.rb
yard-0.9.10 spec/tags/ref_tag_list_spec.rb
yard-0.9.9 spec/tags/ref_tag_list_spec.rb
etude_for_ruby-0.1.4 vendor/bundle/ruby/2.4.0/gems/yard-0.9.8/spec/tags/ref_tag_list_spec.rb
etude_for_ruby-0.1.4 vendor/bundle/ruby/2.2.0/gems/yard-0.9.8/spec/tags/ref_tag_list_spec.rb
mdg-1.0.1 vendor/bundle/ruby/2.3.0/gems/yard-0.9.8/spec/tags/ref_tag_list_spec.rb
yard-0.9.8 spec/tags/ref_tag_list_spec.rb
abaci-0.3.0 vendor/bundle/gems/yard-0.9.7/spec/tags/ref_tag_list_spec.rb
yard-0.9.7 spec/tags/ref_tag_list_spec.rb