Loading tc_doc_comment.rb 0 → 100644 +75 −0 Original line number Diff line number Diff line require "doc_comment" require "test/unit" class TestDocComment < Test::Unit::TestCase def test_function doc = JsDuck::DocComment.new("/** * @function foo * Some docs. * @param {Number} x doc for x * @param {Integer} y doc for y * @return {String} resulting value */") assert_equal("foo", doc[:function][:name]) assert_equal("Some docs.\n", doc[:function][:doc]) assert_equal(2, doc[:param].length) assert_equal("x", doc[:param][0][:name]) assert_equal("Number", doc[:param][0][:type]) assert_equal("doc for x\n", doc[:param][0][:doc]) assert_equal("y", doc[:param][1][:name]) assert_equal("Integer", doc[:param][1][:type]) assert_equal("doc for y\n", doc[:param][1][:doc]) assert_equal("String", doc[:return][:type]) assert_equal("resulting value", doc[:return][:doc]) end def test_class doc = JsDuck::DocComment.new("/** * @class my.package.Foo * @extends my.Bar * Some docs. */") assert_equal("my.package.Foo", doc[:class][:name]) assert_equal("my.Bar", doc[:class][:extends]) assert_equal("Some docs.", doc[:class][:doc]) end def test_long_docs doc = JsDuck::DocComment.new("/** * @function foo * * Some docs. * * Nice docs. * * @param {Number} x some * long * docs. * @return {String} more * long * docs. */") assert_equal("Some docs.\n\nNice docs.\n\n", doc[:function][:doc]) assert_equal("some\nlong\ndocs.\n", doc[:param][0][:doc]) assert_equal("more\nlong\ndocs.", doc[:return][:doc]) end def test_typeless_docs doc = JsDuck::DocComment.new("/** * @param x doc1 * @return doc2 */") assert_equal("x", doc[:param][0][:name]) assert_equal("doc1\n", doc[:param][0][:doc]) assert_equal("doc2", doc[:return][:doc]) assert_equal(nil, doc[:param][0][:type]) assert_equal(nil, doc[:return][:type]) end end tc_jsduck.rb +1 −46 Original line number Diff line number Diff line Loading @@ -15,38 +15,6 @@ class TestJsDuck < Test::Unit::TestCase assert_equal([], JsDuck.parse("/* ") ) end def test_return docs = JsDuck.parse(" /** * Some function * @return {String} some value * on several * lines */ ") assert_equal("String", docs[0][:return][:type]) assert_equal("some value\non several\nlines", docs[0][:return][:doc]) end def test_param docs = JsDuck.parse(" /** * Some function * @param {Number} x value 1 * @param {Float} y value 2 */ ") param1 = docs[0][:param][0] assert_equal("Number", param1[:type]) assert_equal("x", param1[:name]) assert_equal("value 1\n", param1[:doc]) param2 = docs[0][:param][1] assert_equal("Float", param2[:type]) assert_equal("y", param2[:name]) assert_equal("value 2", param2[:doc]) end def test_function docs = JsDuck.parse(" /** Loading Loading @@ -202,7 +170,7 @@ function f(foo, bar){} assert_equal("Number", params[1][:type]) end def test_explicit_class_name def test_explicit_class_name_overrides_implicit docs = JsDuck.parse(" /** * @class my.package.Foo Loading Loading @@ -236,19 +204,6 @@ some.namespace.ClassName = function(){} assert_equal("My class", docs[0][:class][:doc]) end def test_explicit_extends docs = JsDuck.parse(" /** * @class Foo * @extends some.namespace.Bar * My class */ ") assert_equal("Foo", docs[0][:class][:name]) assert_equal("some.namespace.Bar", docs[0][:class][:extends]) assert_equal("My class", docs[0][:class][:doc]) end def test_implicit_extends docs = JsDuck.parse(" /** Loading Loading
tc_doc_comment.rb 0 → 100644 +75 −0 Original line number Diff line number Diff line require "doc_comment" require "test/unit" class TestDocComment < Test::Unit::TestCase def test_function doc = JsDuck::DocComment.new("/** * @function foo * Some docs. * @param {Number} x doc for x * @param {Integer} y doc for y * @return {String} resulting value */") assert_equal("foo", doc[:function][:name]) assert_equal("Some docs.\n", doc[:function][:doc]) assert_equal(2, doc[:param].length) assert_equal("x", doc[:param][0][:name]) assert_equal("Number", doc[:param][0][:type]) assert_equal("doc for x\n", doc[:param][0][:doc]) assert_equal("y", doc[:param][1][:name]) assert_equal("Integer", doc[:param][1][:type]) assert_equal("doc for y\n", doc[:param][1][:doc]) assert_equal("String", doc[:return][:type]) assert_equal("resulting value", doc[:return][:doc]) end def test_class doc = JsDuck::DocComment.new("/** * @class my.package.Foo * @extends my.Bar * Some docs. */") assert_equal("my.package.Foo", doc[:class][:name]) assert_equal("my.Bar", doc[:class][:extends]) assert_equal("Some docs.", doc[:class][:doc]) end def test_long_docs doc = JsDuck::DocComment.new("/** * @function foo * * Some docs. * * Nice docs. * * @param {Number} x some * long * docs. * @return {String} more * long * docs. */") assert_equal("Some docs.\n\nNice docs.\n\n", doc[:function][:doc]) assert_equal("some\nlong\ndocs.\n", doc[:param][0][:doc]) assert_equal("more\nlong\ndocs.", doc[:return][:doc]) end def test_typeless_docs doc = JsDuck::DocComment.new("/** * @param x doc1 * @return doc2 */") assert_equal("x", doc[:param][0][:name]) assert_equal("doc1\n", doc[:param][0][:doc]) assert_equal("doc2", doc[:return][:doc]) assert_equal(nil, doc[:param][0][:type]) assert_equal(nil, doc[:return][:type]) end end
tc_jsduck.rb +1 −46 Original line number Diff line number Diff line Loading @@ -15,38 +15,6 @@ class TestJsDuck < Test::Unit::TestCase assert_equal([], JsDuck.parse("/* ") ) end def test_return docs = JsDuck.parse(" /** * Some function * @return {String} some value * on several * lines */ ") assert_equal("String", docs[0][:return][:type]) assert_equal("some value\non several\nlines", docs[0][:return][:doc]) end def test_param docs = JsDuck.parse(" /** * Some function * @param {Number} x value 1 * @param {Float} y value 2 */ ") param1 = docs[0][:param][0] assert_equal("Number", param1[:type]) assert_equal("x", param1[:name]) assert_equal("value 1\n", param1[:doc]) param2 = docs[0][:param][1] assert_equal("Float", param2[:type]) assert_equal("y", param2[:name]) assert_equal("value 2", param2[:doc]) end def test_function docs = JsDuck.parse(" /** Loading Loading @@ -202,7 +170,7 @@ function f(foo, bar){} assert_equal("Number", params[1][:type]) end def test_explicit_class_name def test_explicit_class_name_overrides_implicit docs = JsDuck.parse(" /** * @class my.package.Foo Loading Loading @@ -236,19 +204,6 @@ some.namespace.ClassName = function(){} assert_equal("My class", docs[0][:class][:doc]) end def test_explicit_extends docs = JsDuck.parse(" /** * @class Foo * @extends some.namespace.Bar * My class */ ") assert_equal("Foo", docs[0][:class][:name]) assert_equal("some.namespace.Bar", docs[0][:class][:extends]) assert_equal("My class", docs[0][:class][:doc]) end def test_implicit_extends docs = JsDuck.parse(" /** Loading