Select Git revision
aggregator_chainable_spec.rb
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