Reference Source Test

test/integration-test/src/Param/Type.test.js

  1. import assert from 'assert';
  2. import {find} from '../../util';
  3.  
  4. describe('test/Param/Type', ()=>{
  5. it('has array param', ()=>{
  6. const doc = find('longname', 'src/Param/Type.js~TestParam#methodArray');
  7. assert.equal(doc.params.length, 1);
  8. assert.equal(doc.params[0].types.length, 1);
  9. assert.equal(doc.params[0].types[0], 'number[]');
  10. });
  11.  
  12. it('has class param', ()=>{
  13. const doc = find('longname', 'src/Param/Type.js~TestParam#methodClass');
  14. assert.equal(doc.params.length, 1);
  15. assert.equal(doc.params[0].types.length, 1);
  16. assert.equal(doc.params[0].types[0], 'TestParamClassInner');
  17. });
  18.  
  19. it('has external param', ()=>{
  20. const doc = find('longname', 'src/Param/Type.js~TestParam#methodExternal');
  21. assert.equal(doc.params.length, 1);
  22. assert.equal(doc.params[0].types.length, 1);
  23. assert.equal(doc.params[0].types[0], 'ArrayBuffer');
  24. });
  25.  
  26. it('has function param', ()=>{
  27. const doc = find('longname', 'src/Param/Type.js~TestParam#methodFunction');
  28. assert.equal(doc.params.length, 1);
  29. assert.equal(doc.params[0].types.length, 1);
  30. assert.equal(doc.params[0].types[0], 'function(x1: number, x2: string): boolean');
  31. });
  32.  
  33. it('has generics param', ()=>{
  34. const doc = find('longname', 'src/Param/Type.js~TestParam#methodGenerics');
  35. assert.equal(doc.params.length, 3);
  36.  
  37. assert.equal(doc.params[0].types.length, 1);
  38. assert.equal(doc.params[0].types[0], 'Array<number>');
  39.  
  40. assert.equal(doc.params[1].types.length, 1);
  41. assert.equal(doc.params[1].types[0], 'Map<number, string>');
  42.  
  43. assert.equal(doc.params[2].types.length, 1);
  44. assert.equal(doc.params[2].types[0], 'Promise<number[], Error>');
  45. });
  46.  
  47. it('has literal param', ()=>{
  48. const doc = find('longname', 'src/Param/Type.js~TestParam#methodLiteral');
  49. assert.equal(doc.params.length, 1);
  50. assert.equal(doc.params[0].types.length, 1);
  51. assert.equal(doc.params[0].types[0], 'number');
  52. });
  53.  
  54. it('has object param', ()=>{
  55. const doc = find('longname', 'src/Param/Type.js~TestParam#methodObject');
  56. assert.equal(doc.params.length, 2);
  57.  
  58. assert.equal(doc.params[0].types.length, 1);
  59. assert.equal(doc.params[0].types[0], 'Object');
  60.  
  61. assert.equal(doc.params[1].types.length, 1);
  62. assert.equal(doc.params[1].types[0], 'number');
  63. });
  64.  
  65. it('has record param', ()=>{
  66. const doc = find('longname', 'src/Param/Type.js~TestParam#methodRecord');
  67. assert.equal(doc.params.length, 1);
  68. assert.equal(doc.params[0].types.length, 1);
  69. assert.equal(doc.params[0].types[0], '{x1: number, x2: string}');
  70. });
  71.  
  72. it('has spread param', ()=>{
  73. const doc = find('longname', 'src/Param/Type.js~TestParam#methodSpread');
  74. assert.equal(doc.params.length, 1);
  75. assert.equal(doc.params[0].types.length, 1);
  76. assert.equal(doc.params[0].types[0], '...number');
  77. assert.equal(doc.params[0].spread, true);
  78. });
  79.  
  80. it('has typedef param', ()=>{
  81. const doc = find('longname', 'src/Param/Type.js~TestParam#methodTypedef');
  82. assert.equal(doc.params.length, 1);
  83. assert.equal(doc.params[0].types.length, 1);
  84. assert.equal(doc.params[0].types[0], 'TestTypeTypedefInner');
  85. });
  86.  
  87. it('has union param', ()=>{
  88. const doc = find('longname', 'src/Param/Type.js~TestParam#methodUnion');
  89. assert.equal(doc.params.length, 1);
  90. assert.equal(doc.params[0].types.length, 2);
  91. assert.deepEqual(doc.params[0].types, ['number', 'string']);
  92. });
  93. });