Skip to content
Snippets Groups Projects
Select Git revision
  • cc10d44d2b07efe28bea3f5f3353314ac76906b0
  • master default protected
  • v6.0.0.beta
  • v5.3.4
  • v5.3.3
  • v5.3.2
  • v5.3.1
  • v5.3.0
  • v5.2.0
  • v5.1.0
  • v5.0.1
  • v5.0.0
  • v5.0.0.beta5
  • v5.0.0.beta4
  • v4.10.4
  • v5.0.0.beta3
  • v4.10.3
  • v4.10.2
  • v4.10.1
  • v4.10.0
  • v4.9.0
  • v4.8.0
22 results

aggregator_chainable_spec.rb

Blame
  • aggregator_chainable_spec.rb 6.47 KiB
    require "mini_parser"
    
    describe JsDuck::Aggregator do
      def parse(string)
        Helper::MiniParser.parse(string, {:return_values => true})
      end
    
      describe "both @return this and @chainable in method doc" do
        let(:cls) do
          parse(<<-EOS)["MyClass"]
            /** */
            Ext.define("MyClass", {
                /**
                 * @return {MyClass} this The instance itself.
                 * @chainable
                 */
                bar: function() {}
            });
          EOS
        end
    
        it "detects method as chainable" do
          cls[:members][0][:chainable].should == true
        end
    
        it "keeps the original @return docs" do
          cls[:members][0][:return][:doc].should == "this The instance itself."
        end
      end
    
      describe "simple @chainable in method doc" do
        let(:cls) do
          parse(<<-EOS)["MyClass"]
            /** */
            Ext.define("MyClass", {
                /**
                 * @chainable
                 */
                bar: function() {}
            });
          EOS
        end
    
        it "detects method as chainable" do
          cls[:members][0][:chainable].should == true
        end
    
        it "adds @return {MyClass} this" do
          cls[:members][0][:return][:type].should == "MyClass"
          cls[:members][0][:return][:doc].should == "this"
        end
      end
    
      describe "an @return {MyClass} this in method doc" do
        let(:cls) do
          parse(<<-EOS)["MyClass"]
            /** */
            Ext.define("MyClass", {
                /**
                 * @return {MyClass} this
                 */
                bar: function() {}
            });
          EOS
        end
    
        it "detects @return {MyClass} this" do
          cls[:members][0][:return][:type].should == "MyClass"
          cls[:members][0][:return][:doc].should == "this"
        end