diff --git a/docs/source/_data/guide_toc.yml b/docs/source/_data/guide_toc.yml index d6e767962b..964e47e812 100644 --- a/docs/source/_data/guide_toc.yml +++ b/docs/source/_data/guide_toc.yml @@ -39,7 +39,7 @@ Advanced: Cluster Client: /advanced/cluster-client.html View Plugin: /advanced/view-plugin.html Community: - Plugin List: /plugins + Plugin List: /plugins/ Contributing: /contributing.html Resource: /resource.html # Member Guide: /member_guide.html diff --git a/lib/application.js b/lib/application.js index 8927ce1a4f..36609eba59 100644 --- a/lib/application.js +++ b/lib/application.js @@ -189,13 +189,18 @@ class Application extends EggApplication { } /** - * The helper class, `app/helper` will be loaded to it's prototype, - * then you can use all method on `ctx.helper` + * reference to {@link Helper} * @member {Helper} Application#Helper */ get Helper() { if (!this[HELPER]) { - this[HELPER] = class Helper extends this.BaseContextClass {}; + /** + * The Helper class which can be used as utility function. + * Files from `${baseDir}/app/helper` will be loaded to the prototype of Helper, + * then you can use all method on `ctx.helper` that is a instance of Helper. + */ + class Helper extends this.BaseContextClass {} + this[HELPER] = Helper; } return this[HELPER]; } diff --git a/lib/core/messenger.js b/lib/core/messenger.js index b7a8cdca36..930a0ae28e 100644 --- a/lib/core/messenger.js +++ b/lib/core/messenger.js @@ -5,6 +5,9 @@ const is = require('is-type-of'); const sendmessage = require('sendmessage'); const EventEmitter = require('events'); +/** + * Communication between app worker and agent worker by IPC channel + */ class Messenger extends EventEmitter { constructor() { diff --git a/package.json b/package.json index b0d693e007..fa21061952 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,10 @@ "egg-view-nunjucks": "^2.1.2", "eslint": "^3.19.0", "eslint-config-egg": "^4.2.0", + "findlinks": "^1.1.0", "formstream": "^1.1.0", "glob": "^7.1.2", + "koa-static": "^3.0.0", "mz-modules": "^1.0.0", "pedding": "^1.1.0", "spy": "^1.0.0", diff --git a/test/doc.test.js b/test/doc.test.js new file mode 100644 index 0000000000..4db07209c7 --- /dev/null +++ b/test/doc.test.js @@ -0,0 +1,30 @@ +'use strict'; + +const path = require('path'); +const findlinks = require('findlinks'); +const assert = require('assert'); +const runscript = require('runscript'); +const utils = require('./utils'); + +describe('test/doc.test.js', () => { + + if (process.platform === 'win32') return; + + let app; + before(function* () { + yield runscript('doctools build', { cwd: path.dirname(__dirname) }); + }); + before(function* () { + app = utils.cluster({ + baseDir: 'apps/docapp', + }); + app.coverage(false); + yield app.ready(); + }); + after(() => app.close()); + + it('should no broken url', function* () { + const result = yield findlinks({ src: app.url, logger: console }); + assert(result.fail === 0); + }); +}); diff --git a/test/fixtures/apps/docapp/app/middleware/koastatic.js b/test/fixtures/apps/docapp/app/middleware/koastatic.js new file mode 100644 index 0000000000..975e1bbd4b --- /dev/null +++ b/test/fixtures/apps/docapp/app/middleware/koastatic.js @@ -0,0 +1,7 @@ +'use strict'; + +const path = require('path'); + +module.exports = () => { + return require('koa-static')(path.join(process.cwd(), 'run/doctools/public')); +}; diff --git a/test/fixtures/apps/docapp/config/config.default.js b/test/fixtures/apps/docapp/config/config.default.js new file mode 100644 index 0000000000..de6604be96 --- /dev/null +++ b/test/fixtures/apps/docapp/config/config.default.js @@ -0,0 +1,8 @@ +'use strict'; + +const path = require('path'); + +module.exports = { + keys: 'test key', + middleware: [ 'koastatic' ], +}; diff --git a/test/fixtures/apps/docapp/package.json b/test/fixtures/apps/docapp/package.json new file mode 100644 index 0000000000..08811b3e64 --- /dev/null +++ b/test/fixtures/apps/docapp/package.json @@ -0,0 +1,3 @@ +{ + "name": "docapp" +}