Home Manual Reference Source Test Repository

src/BuilderTest/FunctionDocTest.js

import {readDoc, assert, find} from './../util.js';

/** @test {SingleDocBuilder} */
describe('MyFunction:', ()=>{
  let doc = readDoc('function/index.html');

  /** @test {SingleDocBuilder#_buildSingleDoc} */
  it('has summary.', ()=>{
    find(doc, '[data-ice="summary"]', (doc)=>{
      assert.includes(doc, '[data-ice="target"]:nth-of-type(1)', 'public myFunction1() this is myFunction1 desc.');
      assert.includes(doc, '[data-ice="target"]:nth-of-type(2)', 'public myFunction2(p1: number, p2: string) this is myFunction2 desc.');
      assert.includes(doc, '[data-ice="target"]:nth-of-type(3)', 'public myFunction3(): number this is myFunction3 desc.');
      assert.includes(doc, '[data-ice="target"]:nth-of-type(4)', 'public myFunction4(p1: number, p2: string): number this is myFunction4 desc.');
      assert.includes(doc, '[data-ice="target"]:nth-of-type(5)', 'public myFunction5(p1: number, p2: string): Object this is myFunction5 desc.');
      assert.includes(doc, '[data-ice="target"]:nth-of-type(6)', 'public * myFunction6(): Generator this is myFunction6 desc.');
      assert.includes(doc, '[data-ice="target"]:nth-of-type(7)', 'public myFunction7(p1: *[], p2: number[], p3: {}, p4: {"a": number, "b": string}): *');
      assert.includes(doc, '[data-ice="target"]:nth-of-type(8)', 'public myFunction8(p1: *)');
      assert.includes(doc, '[data-ice="target"]:nth-of-type(9)', 'public myFunction9(p1: Object): Object this is myFunction9 desc.');
      assert.includes(doc, '[data-ice="target"]:nth-of-type(10)', 'public myFunctionSeparateExport1(p1: number) this is myFunctionSeparateExport1.');
      assert.includes(doc, '[data-ice="target"]:nth-of-type(11)', 'public myFunctionSeparateExport2(p1: number) this is myFunctionSeparateExport2.');

      assert.includes(doc, '[data-ice="target"]:nth-of-type(1) [data-ice="name"] a', 'function/index.html#static-function-myFunction1', 'href');
    });
  });

  /** @test {SingleDocBuilder#_buildSingleDoc} */
  it('has detail.', ()=>{
    find(doc, '[data-ice="detail"]:nth-of-type(1)', (doc)=>{
      assert.includes(doc, '#static-function-myFunction1', 'public myFunction1()');
      assert.includes(doc, '[data-ice="importPath"]', "import myFunction1 from 'esdoc-test-fixture/src/myFunction.js'");

      find(doc, '[data-ice="example"]', (doc)=>{
        assert.includes(doc, 'div.example-doc:nth-of-type(1)', 'This is example caption');
        assert.includes(doc, 'div.example-doc:nth-of-type(1)', 'let foo = 123;');

        assert.includes(doc, 'div.example-doc:nth-of-type(2)', 'let bar = 456;');
      });
    });

    find(doc, '[data-ice="detail"]:nth-of-type(2)', (doc)=>{
      assert.includes(doc, '#static-function-myFunction2', 'public myFunction2(p1: number, p2: string)');
      assert.includes(doc, '[data-ice="importPath"]', "import {myFunction2} from 'esdoc-test-fixture/src/myFunction.js'");
    });

    find(doc, '[data-ice="detail"]:nth-of-type(3)', (doc)=>{
      assert.includes(doc, '#static-function-myFunction3', 'public myFunction3(): number');
      assert.includes(doc, '[data-ice="importPath"]', "import {myFunction3} from 'esdoc-test-fixture/src/myFunction.js'");
    });

    find(doc, '[data-ice="detail"]:nth-of-type(4)', (doc)=>{
      assert.includes(doc, '#static-function-myFunction4', 'public myFunction4(p1: number, p2: string): number');
    });

    find(doc, '[data-ice="detail"]:nth-of-type(5)', (doc)=>{
      assert.includes(doc, '#static-function-myFunction5', 'public myFunction5(p1: number, p2: string): Object');
    });

    find(doc, '[data-ice="detail"]:nth-of-type(6)', (doc)=>{
      assert.includes(doc, '#static-function-myFunction6', 'public * myFunction6(): Generator');
    });

    find(doc, '[data-ice="detail"]:nth-of-type(7)', (doc)=>{
      assert.includes(doc, '#static-function-myFunction7', 'public myFunction7(p1: *[], p2: number[], p3: {}, p4: {"a": number, "b": string}): *');
    });

    find(doc, '[data-ice="detail"]:nth-of-type(8)', (doc)=>{
      assert.includes(doc, '#static-function-myFunction8', 'public myFunction8(p1: *)');
    });

    find(doc, '[data-ice="detail"]:nth-of-type(9)', (doc)=>{
      assert.includes(doc, '#static-function-myFunction9', 'public myFunction9(p1: Object): Object');
    });

    find(doc, '[data-ice="detail"]:nth-of-type(10)', (doc)=>{
      assert.includes(doc, '#static-function-myFunctionSeparateExport1', 'public myFunctionSeparateExport1(p1: number)');
      assert.includes(doc, '[data-ice="importPath"]', "import myFunctionSeparateExport1 from 'esdoc-test-fixture/src/myFunction.js'");
    });

    find(doc, '[data-ice="detail"]:nth-of-type(11)', (doc)=>{
      assert.includes(doc, '#static-function-myFunctionSeparateExport2', 'public myFunctionSeparateExport2(p1: number)');
      assert.includes(doc, '[data-ice="importPath"]', "import {myFunctionSeparateExport2} from 'esdoc-test-fixture/src/myFunction.js'");
    });
  });
});