diff --git a/.travis.yml b/.travis.yml index 8da18b9a8579a..ac86d00e06ec7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -65,7 +65,6 @@ jobs: script: - npm run compare-protocol-d-ts - npm run lint - - npm run test-doclint - npm run ensure-new-docs-up-to-date # This bot runs separately as it changes package.json to test puppeteer-core diff --git a/package.json b/package.json index 881f4f9320f00..8a9c2b33d93d4 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,7 @@ "assert-unit-coverage": "cross-env COVERAGE=1 mocha --config mocha-config/coverage-tests.js", "funit": "PUPPETEER_PRODUCT=firefox npm run unit", "debug-unit": "node --inspect-brk test/test.js", - "test-doclint": "mocha --config mocha-config/doclint-tests.js", - "test": "npm run tsc && npm run lint --silent && npm run unit-with-coverage && npm run test-doclint && npm run test-types", + "test": "npm run tsc && npm run lint --silent && npm run unit-with-coverage && npm run test-types", "prepare": "node typescript-if-required.js", "prepublishOnly": "npm run tsc", "dev-install": "npm run tsc && node install.js", diff --git a/src/api.ts b/src/api.ts deleted file mode 100644 index 05a79d8dcb3e6..0000000000000 --- a/src/api.ts +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright 2019 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* This file is used in one place: - * 1) the coverage-utils use it to gain a list of all methods we check for test - * coverage on - */ -module.exports = { - Accessibility: require('./common/Accessibility').Accessibility, - Browser: require('./common/Browser').Browser, - BrowserContext: require('./common/Browser').BrowserContext, - BrowserFetcher: require('./node/BrowserFetcher').BrowserFetcher, - CDPSession: require('./common/Connection').CDPSession, - ConsoleMessage: require('./common/ConsoleMessage').ConsoleMessage, - Coverage: require('./common/Coverage').Coverage, - Dialog: require('./common/Dialog').Dialog, - ElementHandle: require('./common/JSHandle').ElementHandle, - ExecutionContext: require('./common/ExecutionContext').ExecutionContext, - EventEmitter: require('./common/EventEmitter').EventEmitter, - FileChooser: require('./common/FileChooser').FileChooser, - Frame: require('./common/FrameManager').Frame, - JSHandle: require('./common/JSHandle').JSHandle, - Keyboard: require('./common/Input').Keyboard, - Mouse: require('./common/Input').Mouse, - Page: require('./common/Page').Page, - Puppeteer: require('./common/Puppeteer').Puppeteer, - HTTPRequest: require('./common/HTTPRequest').HTTPRequest, - HTTPResponse: require('./common/HTTPResponse').HTTPResponse, - SecurityDetails: require('./common/SecurityDetails').SecurityDetails, - Target: require('./common/Target').Target, - TimeoutError: require('./common/Errors').TimeoutError, - Touchscreen: require('./common/Input').Touchscreen, - Tracing: require('./common/Tracing').Tracing, - WebWorker: require('./common/WebWorker').WebWorker, -}; diff --git a/test/coverage-utils.js b/test/coverage-utils.js index 2e6084bb7dbd6..b320b787561ff 100644 --- a/test/coverage-utils.js +++ b/test/coverage-utils.js @@ -34,13 +34,43 @@ const path = require('path'); const fs = require('fs'); /** - * @param {Map} apiCoverage - * @param {Object} events - * @param {string} className - * @param {!Object} classType + * This object is also used by DocLint to know which classes to check are + * documented. It's a pretty hacky solution but DocLint is going away soon as + * part of the TSDoc migration. */ -function traceAPICoverage(apiCoverage, events, className, classType) { - className = className.substring(0, 1).toLowerCase() + className.substring(1); +const MODULES_TO_CHECK_FOR_COVERAGE = { + Accessibility: '../src/common/Accessibility', + Browser: '../src/common/Browser', + BrowserContext: '../src/common/Browser', + BrowserFetcher: '../src/node/BrowserFetcher', + CDPSession: '../src/common/Connection', + ConsoleMessage: '../src/common/ConsoleMessage', + Coverage: '../src/common/Coverage', + Dialog: '../src/common/Dialog', + ElementHandle: '../src/common/JSHandle', + ExecutionContext: '../src/common/ExecutionContext', + EventEmitter: '../src/common/EventEmitter', + FileChooser: '../src/common/FileChooser', + Frame: '../src/common/FrameManager', + JSHandle: '../src/common/JSHandle', + Keyboard: '../src/common/Input', + Mouse: '../src/common/Input', + Page: '../src/common/Page', + Puppeteer: '../src/common/Puppeteer', + HTTPRequest: '../src/common/HTTPRequest', + HTTPResponse: '../src/common/HTTPResponse', + SecurityDetails: '../src/common/SecurityDetails', + Target: '../src/common/Target', + TimeoutError: '../src/common/Errors', + Touchscreen: '../src/common/Input', + Tracing: '../src/common/Tracing', + WebWorker: '../src/common/WebWorker', +}; + +function traceAPICoverage(apiCoverage, className, modulePath) { + const loadedModule = require(modulePath); + const classType = loadedModule[className]; + if (!classType || !classType.prototype) { console.error( `Coverage error: could not find class for ${className}. Is src/api.ts up to date?` @@ -63,8 +93,14 @@ function traceAPICoverage(apiCoverage, events, className, classType) { }); } - if (events[classType.name]) { - for (const event of Object.values(events[classType.name])) { + /** + * If classes emit events, those events are exposed via an object in the same + * module named XEmittedEvents, where X is the name of the class. For example, + * the Page module exposes PageEmittedEvents. + */ + const eventsName = `${className}EmittedEvents`; + if (loadedModule[eventsName]) { + for (const event of Object.values(loadedModule[eventsName])) { if (typeof event !== 'symbol') apiCoverage.set(`${className}.emit(${JSON.stringify(event)})`, false); } @@ -108,10 +144,11 @@ const trackCoverage = () => { return { beforeAll: () => { - const api = require('../src/api'); - const events = require('../src/common/Events'); - for (const [className, classType] of Object.entries(api)) - traceAPICoverage(coverageMap, events, className, classType); + for (const [className, moduleFilePath] of Object.entries( + MODULES_TO_CHECK_FOR_COVERAGE + )) { + traceAPICoverage(coverageMap, className, moduleFilePath); + } }, afterAll: () => { writeCoverage(coverageMap); @@ -122,4 +159,5 @@ const trackCoverage = () => { module.exports = { trackCoverage, getCoverageResults, + MODULES_TO_CHECK_FOR_COVERAGE, }; diff --git a/utils/doclint/check_public_api/index.js b/utils/doclint/check_public_api/index.js index d40b3ec219efe..7638aa2f1664f 100644 --- a/utils/doclint/check_public_api/index.js +++ b/utils/doclint/check_public_api/index.js @@ -18,6 +18,9 @@ const jsBuilder = require('./JSBuilder'); const mdBuilder = require('./MDBuilder'); const Documentation = require('./Documentation'); const Message = require('../Message'); +const { + MODULES_TO_CHECK_FOR_COVERAGE, +} = require('../../../test/coverage-utils'); const EXCLUDE_PROPERTIES = new Set([ 'Browser.create', @@ -39,10 +42,7 @@ const EXCLUDE_PROPERTIES = new Set([ module.exports = async function lint(page, mdSources, jsSources) { const mdResult = await mdBuilder(page, mdSources); const jsResult = await jsBuilder(jsSources); - const jsDocumentation = filterJSDocumentation( - jsSources, - jsResult.documentation - ); + const jsDocumentation = filterJSDocumentation(jsResult.documentation); const mdDocumentation = mdResult.documentation; const jsErrors = jsResult.errors; @@ -124,14 +124,11 @@ function checkSorting(doc) { } /** - * @param {!Array} jsSources * @param {!Documentation} jsDocumentation * @returns {!Documentation} */ -function filterJSDocumentation(jsSources, jsDocumentation) { - const apijs = jsSources.find((source) => source.name() === 'api.js'); - let includedClasses = null; - if (apijs) includedClasses = new Set(Object.keys(require(apijs.filePath()))); +function filterJSDocumentation(jsDocumentation) { + const includedClasses = new Set(Object.keys(MODULES_TO_CHECK_FOR_COVERAGE)); // Filter private classes and methods. const classes = []; for (const cls of jsDocumentation.classesArray) { diff --git a/utils/doclint/check_public_api/test/.gitignore b/utils/doclint/check_public_api/test/.gitignore deleted file mode 100644 index 17526b1162a50..0000000000000 --- a/utils/doclint/check_public_api/test/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -result-actual.txt -result-diff.html diff --git a/utils/doclint/check_public_api/test/check-duplicates/doc.md b/utils/doclint/check_public_api/test/check-duplicates/doc.md deleted file mode 100644 index ea743ecd1e317..0000000000000 --- a/utils/doclint/check_public_api/test/check-duplicates/doc.md +++ /dev/null @@ -1,15 +0,0 @@ -### class: Bar - -### class: Foo - -#### foo.test() - -#### foo.test() - -#### foo.title(arg, arg) -- `arg` <[number]> -- `arg` <[number]> - -### class: Bar - -[number]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type "Number" diff --git a/utils/doclint/check_public_api/test/check-duplicates/foo.js b/utils/doclint/check_public_api/test/check-duplicates/foo.js deleted file mode 100644 index 640271ae4928a..0000000000000 --- a/utils/doclint/check_public_api/test/check-duplicates/foo.js +++ /dev/null @@ -1,13 +0,0 @@ -class Foo { - test() { - } - - /** - * @param {number} arg - */ - title(arg) { - } -} - -class Bar { -} diff --git a/utils/doclint/check_public_api/test/check-duplicates/result.txt b/utils/doclint/check_public_api/test/check-duplicates/result.txt deleted file mode 100644 index d9994416e9163..0000000000000 --- a/utils/doclint/check_public_api/test/check-duplicates/result.txt +++ /dev/null @@ -1,3 +0,0 @@ -[MarkDown] Duplicate declaration of method Foo.test() -[MarkDown] Duplicate declaration of argument Foo.title "arg" -[MarkDown] Duplicate declaration of class Bar \ No newline at end of file diff --git a/utils/doclint/check_public_api/test/check-returns/doc.md b/utils/doclint/check_public_api/test/check-returns/doc.md deleted file mode 100644 index 1dffb8b6f0deb..0000000000000 --- a/utils/doclint/check_public_api/test/check-returns/doc.md +++ /dev/null @@ -1,14 +0,0 @@ -### class: Foo - -#### foo.asyncFunction() - -#### foo.return42() - -#### foo.returnNothing() -- returns: <[number]> - -#### foo.www() -- returns <[string]> - -[string]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type "String" -[number]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type "Number" diff --git a/utils/doclint/check_public_api/test/check-returns/foo.js b/utils/doclint/check_public_api/test/check-returns/foo.js deleted file mode 100644 index 5833c14699640..0000000000000 --- a/utils/doclint/check_public_api/test/check-returns/foo.js +++ /dev/null @@ -1,20 +0,0 @@ -class Foo { - return42() { - return 42; - } - - returnNothing() { - let e = () => { - return 10; - } - e(); - } - - www() { - if (1 === 1) - return 'df'; - } - - async asyncFunction() { - } -} diff --git a/utils/doclint/check_public_api/test/check-returns/result.txt b/utils/doclint/check_public_api/test/check-returns/result.txt deleted file mode 100644 index ceb202b25f51b..0000000000000 --- a/utils/doclint/check_public_api/test/check-returns/result.txt +++ /dev/null @@ -1,4 +0,0 @@ -[MarkDown] foo.www() has mistyped 'return' type declaration: expected exactly 'returns: ', found 'returns '. -[MarkDown] Method Foo.asyncFunction is missing return type description -[MarkDown] Method Foo.return42 is missing return type description -[MarkDown] Method Foo.returnNothing has unneeded description of return type \ No newline at end of file diff --git a/utils/doclint/check_public_api/test/check-sorting/Events.js b/utils/doclint/check_public_api/test/check-sorting/Events.js deleted file mode 100644 index 55f20be064b1d..0000000000000 --- a/utils/doclint/check_public_api/test/check-sorting/Events.js +++ /dev/null @@ -1,8 +0,0 @@ -const Events = { - Foo: { - a: 'a', - b: 'b', - c: 'c', - }, -}; -module.exports = {Events}; diff --git a/utils/doclint/check_public_api/test/check-sorting/doc.md b/utils/doclint/check_public_api/test/check-sorting/doc.md deleted file mode 100644 index 9b3162824a6d1..0000000000000 --- a/utils/doclint/check_public_api/test/check-sorting/doc.md +++ /dev/null @@ -1,15 +0,0 @@ -### class: Foo - -#### event: 'c' - -#### event: 'a' - -#### foo.aaa() - -#### event: 'b' - -#### foo.ddd - -#### foo.ccc() - -#### foo.bbb() diff --git a/utils/doclint/check_public_api/test/check-sorting/foo.js b/utils/doclint/check_public_api/test/check-sorting/foo.js deleted file mode 100644 index 9a61bf11a4d98..0000000000000 --- a/utils/doclint/check_public_api/test/check-sorting/foo.js +++ /dev/null @@ -1,12 +0,0 @@ -class Foo { - constructor() { - this.ddd = 10; - } - - aaa() {} - - bbb() {} - - ccc() {} -} - diff --git a/utils/doclint/check_public_api/test/check-sorting/result.txt b/utils/doclint/check_public_api/test/check-sorting/result.txt deleted file mode 100644 index fee39688e695b..0000000000000 --- a/utils/doclint/check_public_api/test/check-sorting/result.txt +++ /dev/null @@ -1,4 +0,0 @@ -[MarkDown] Events should go first. Event 'b' in class Foo breaks order -[MarkDown] Event 'c' in class Foo breaks alphabetic ordering of events -[MarkDown] Bad alphabetic ordering of Foo members: Foo.ddd should go after Foo.ccc() -[MarkDown] Bad alphabetic ordering of Foo members: Foo.ccc() should go after Foo.bbb() \ No newline at end of file diff --git a/utils/doclint/check_public_api/test/diff-arguments/doc.md b/utils/doclint/check_public_api/test/diff-arguments/doc.md deleted file mode 100644 index a991bfa66b90b..0000000000000 --- a/utils/doclint/check_public_api/test/diff-arguments/doc.md +++ /dev/null @@ -1,14 +0,0 @@ -### class: Foo -#### foo.bar(options) -- `options` <[Object]> - - `visibility` <[boolean]> -#### foo.foo(arg1, arg2) -- `arg1` <[string]> -- `arg2` <[string]> - -#### foo.test(...files) -- `...filePaths` <...[string]> - -[Object]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object "Object" -[string]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type "String" -[boolean]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type "Boolean" diff --git a/utils/doclint/check_public_api/test/diff-arguments/foo.js b/utils/doclint/check_public_api/test/diff-arguments/foo.js deleted file mode 100644 index d102f6f7ae185..0000000000000 --- a/utils/doclint/check_public_api/test/diff-arguments/foo.js +++ /dev/null @@ -1,19 +0,0 @@ -class Foo { - /** - * @param {string} arg1 - */ - foo(arg1, arg3 = {}) { - } - - /** - * @param {...string} filePaths - */ - test(...filePaths) { - } - - /** - * @param {{visibility?: boolean}} options - */ - bar(options) { - } -} diff --git a/utils/doclint/check_public_api/test/diff-arguments/result.txt b/utils/doclint/check_public_api/test/diff-arguments/result.txt deleted file mode 100644 index bd6b1f0eb10b4..0000000000000 --- a/utils/doclint/check_public_api/test/diff-arguments/result.txt +++ /dev/null @@ -1,4 +0,0 @@ -[MarkDown] Heading arguments for "foo.test(...files)" do not match described ones, i.e. "...files" != "...filePaths" -[MarkDown] Method Foo.foo() fails to describe its parameters: -- Argument not found: arg3 -- Non-existing argument found: arg2 \ No newline at end of file diff --git a/utils/doclint/check_public_api/test/diff-classes/doc.md b/utils/doclint/check_public_api/test/diff-classes/doc.md deleted file mode 100644 index 7e51ca4754d12..0000000000000 --- a/utils/doclint/check_public_api/test/diff-classes/doc.md +++ /dev/null @@ -1,5 +0,0 @@ -### class: Foo - -### class: Bar - -### class: Baz diff --git a/utils/doclint/check_public_api/test/diff-classes/foo.js b/utils/doclint/check_public_api/test/diff-classes/foo.js deleted file mode 100644 index f230fa0f41dde..0000000000000 --- a/utils/doclint/check_public_api/test/diff-classes/foo.js +++ /dev/null @@ -1,2 +0,0 @@ -class Foo { -} diff --git a/utils/doclint/check_public_api/test/diff-classes/other.js b/utils/doclint/check_public_api/test/diff-classes/other.js deleted file mode 100644 index 1b94418eb0af4..0000000000000 --- a/utils/doclint/check_public_api/test/diff-classes/other.js +++ /dev/null @@ -1,2 +0,0 @@ -class Other { -} diff --git a/utils/doclint/check_public_api/test/diff-classes/result.txt b/utils/doclint/check_public_api/test/diff-classes/result.txt deleted file mode 100644 index 2852a437c6ef6..0000000000000 --- a/utils/doclint/check_public_api/test/diff-classes/result.txt +++ /dev/null @@ -1,3 +0,0 @@ -[MarkDown] Non-existing class found: Bar -[MarkDown] Non-existing class found: Baz -[MarkDown] Class not found: Other \ No newline at end of file diff --git a/utils/doclint/check_public_api/test/diff-events/Events.js b/utils/doclint/check_public_api/test/diff-events/Events.js deleted file mode 100644 index 7ef8bcdfdb01d..0000000000000 --- a/utils/doclint/check_public_api/test/diff-events/Events.js +++ /dev/null @@ -1,8 +0,0 @@ -const Events = { - Foo: { - Start: 'start', - Finish: 'finish', - }, -}; - -module.exports = {Events}; diff --git a/utils/doclint/check_public_api/test/diff-events/doc.md b/utils/doclint/check_public_api/test/diff-events/doc.md deleted file mode 100644 index 3da9c7951139c..0000000000000 --- a/utils/doclint/check_public_api/test/diff-events/doc.md +++ /dev/null @@ -1,5 +0,0 @@ -### class: Foo - -#### event: 'start' - -#### event: 'stop' diff --git a/utils/doclint/check_public_api/test/diff-events/foo.js b/utils/doclint/check_public_api/test/diff-events/foo.js deleted file mode 100644 index fbb14b31366de..0000000000000 --- a/utils/doclint/check_public_api/test/diff-events/foo.js +++ /dev/null @@ -1,3 +0,0 @@ -class Foo { -} - diff --git a/utils/doclint/check_public_api/test/diff-events/result.txt b/utils/doclint/check_public_api/test/diff-events/result.txt deleted file mode 100644 index 8a18433aeda8c..0000000000000 --- a/utils/doclint/check_public_api/test/diff-events/result.txt +++ /dev/null @@ -1,2 +0,0 @@ -[MarkDown] Non-existing event found in class Foo: 'stop' -[MarkDown] Event not found in class Foo: 'finish' \ No newline at end of file diff --git a/utils/doclint/check_public_api/test/diff-methods/doc.md b/utils/doclint/check_public_api/test/diff-methods/doc.md deleted file mode 100644 index 489d014988332..0000000000000 --- a/utils/doclint/check_public_api/test/diff-methods/doc.md +++ /dev/null @@ -1,10 +0,0 @@ -### class: Foo - -#### foo.$() - -#### foo.money$$money() - -#### foo.proceed() - -#### foo.start() - diff --git a/utils/doclint/check_public_api/test/diff-methods/foo.js b/utils/doclint/check_public_api/test/diff-methods/foo.js deleted file mode 100644 index 76f44edab7730..0000000000000 --- a/utils/doclint/check_public_api/test/diff-methods/foo.js +++ /dev/null @@ -1,16 +0,0 @@ -class Foo { - start() { - } - - stop() { - } - - get zzz() { - } - - $() { - } - - money$$money() { - } -} diff --git a/utils/doclint/check_public_api/test/diff-methods/result.txt b/utils/doclint/check_public_api/test/diff-methods/result.txt deleted file mode 100644 index d919f52e99ce1..0000000000000 --- a/utils/doclint/check_public_api/test/diff-methods/result.txt +++ /dev/null @@ -1,3 +0,0 @@ -[MarkDown] Non-existing method found: Foo.proceed() -[MarkDown] Method not found: Foo.stop() -[MarkDown] Property not found: Foo.zzz \ No newline at end of file diff --git a/utils/doclint/check_public_api/test/diff-properties/doc.md b/utils/doclint/check_public_api/test/diff-properties/doc.md deleted file mode 100644 index 75d4fd106fe35..0000000000000 --- a/utils/doclint/check_public_api/test/diff-properties/doc.md +++ /dev/null @@ -1,5 +0,0 @@ -### class: Foo - -#### foo.a - -#### foo.c diff --git a/utils/doclint/check_public_api/test/diff-properties/foo.js b/utils/doclint/check_public_api/test/diff-properties/foo.js deleted file mode 100644 index a978379f2cefe..0000000000000 --- a/utils/doclint/check_public_api/test/diff-properties/foo.js +++ /dev/null @@ -1,7 +0,0 @@ -class Foo { - constructor() { - this.a = 42; - this.b = 'hello'; - this.emit('done'); - } -} diff --git a/utils/doclint/check_public_api/test/diff-properties/result.txt b/utils/doclint/check_public_api/test/diff-properties/result.txt deleted file mode 100644 index 382a4d41b8fea..0000000000000 --- a/utils/doclint/check_public_api/test/diff-properties/result.txt +++ /dev/null @@ -1,2 +0,0 @@ -[MarkDown] Non-existing property found: Foo.c -[MarkDown] Property not found: Foo.b \ No newline at end of file diff --git a/utils/doclint/check_public_api/test/js-builder-common/Events.js b/utils/doclint/check_public_api/test/js-builder-common/Events.js deleted file mode 100644 index da44ad81a1b68..0000000000000 --- a/utils/doclint/check_public_api/test/js-builder-common/Events.js +++ /dev/null @@ -1,6 +0,0 @@ -const Events = { - A: { - AnEvent: 'anevent' - }, -}; -module.exports = { Events }; diff --git a/utils/doclint/check_public_api/test/js-builder-common/foo.js b/utils/doclint/check_public_api/test/js-builder-common/foo.js deleted file mode 100644 index cf82646e3c3e9..0000000000000 --- a/utils/doclint/check_public_api/test/js-builder-common/foo.js +++ /dev/null @@ -1,13 +0,0 @@ -class A { - constructor(delegate) { - this.property1 = 1; - this._property2 = 2; - } - - get getter() { - return null; - } - - async method(foo, bar) { - } -} diff --git a/utils/doclint/check_public_api/test/js-builder-common/result.txt b/utils/doclint/check_public_api/test/js-builder-common/result.txt deleted file mode 100644 index 40e9475b020b0..0000000000000 --- a/utils/doclint/check_public_api/test/js-builder-common/result.txt +++ /dev/null @@ -1,50 +0,0 @@ -{ - "classes": [ - { - "name": "A", - "members": [ - { - "name": "anevent", - "kind": "event" - }, - { - "name": "property1", - "type": { - "name": "number" - }, - "kind": "property" - }, - { - "name": "getter", - "type": { - "name": "Object" - }, - "kind": "property" - }, - { - "name": "method", - "type": { - "name": "Promise" - }, - "kind": "method", - "args": [ - { - "name": "foo", - "type": { - "name": "Object" - }, - "kind": "property" - }, - { - "name": "bar", - "type": { - "name": "Object" - }, - "kind": "property" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/utils/doclint/check_public_api/test/js-builder-inheritance/Events.js b/utils/doclint/check_public_api/test/js-builder-inheritance/Events.js deleted file mode 100644 index f22e6aadc4785..0000000000000 --- a/utils/doclint/check_public_api/test/js-builder-inheritance/Events.js +++ /dev/null @@ -1,8 +0,0 @@ -const Events = { - B: { - // Event with the same name as a super class method. - foo: 'foo', - }, -}; - -module.exports = {Events}; diff --git a/utils/doclint/check_public_api/test/js-builder-inheritance/foo.js b/utils/doclint/check_public_api/test/js-builder-inheritance/foo.js deleted file mode 100644 index 1d5cb154d48e3..0000000000000 --- a/utils/doclint/check_public_api/test/js-builder-inheritance/foo.js +++ /dev/null @@ -1,15 +0,0 @@ -class A { - constructor() { - } - - foo(a) { - } - - bar() { - } -} - -class B extends A { - bar(override) { - } -} diff --git a/utils/doclint/check_public_api/test/js-builder-inheritance/result.txt b/utils/doclint/check_public_api/test/js-builder-inheritance/result.txt deleted file mode 100644 index 0975d03ab39c2..0000000000000 --- a/utils/doclint/check_public_api/test/js-builder-inheritance/result.txt +++ /dev/null @@ -1,61 +0,0 @@ -{ - "classes": [ - { - "name": "A", - "members": [ - { - "name": "foo", - "kind": "method", - "args": [ - { - "name": "a", - "type": { - "name": "Object" - }, - "kind": "property" - } - ] - }, - { - "name": "bar", - "kind": "method" - } - ] - }, - { - "name": "B", - "members": [ - { - "name": "foo", - "kind": "event" - }, - { - "name": "bar", - "kind": "method", - "args": [ - { - "name": "override", - "type": { - "name": "Object" - }, - "kind": "property" - } - ] - }, - { - "name": "foo", - "kind": "method", - "args": [ - { - "name": "a", - "type": { - "name": "Object" - }, - "kind": "property" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/utils/doclint/check_public_api/test/md-builder-common/doc.md b/utils/doclint/check_public_api/test/md-builder-common/doc.md deleted file mode 100644 index 42695c4cd42b7..0000000000000 --- a/utils/doclint/check_public_api/test/md-builder-common/doc.md +++ /dev/null @@ -1,24 +0,0 @@ -### class: Foo - -This is a class. - -#### event: 'frame' -- <[Frame]> - -This event is dispatched. - -#### foo.$(selector) -- `selector` <[string]> A selector to query page for -- returns: <[Promise]<[ElementHandle]>> - -The method runs document.querySelector. - -#### foo.url -- <[string]> - -Contains the URL of the request. - -[string]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type "String" -[Promise]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise" -[ElementHandle]: # "ElementHandle" -[ElementHandle]: # "Frame" diff --git a/utils/doclint/check_public_api/test/md-builder-common/result.txt b/utils/doclint/check_public_api/test/md-builder-common/result.txt deleted file mode 100644 index 46c065f26b359..0000000000000 --- a/utils/doclint/check_public_api/test/md-builder-common/result.txt +++ /dev/null @@ -1,39 +0,0 @@ -{ - "classes": [ - { - "name": "Foo", - "members": [ - { - "name": "frame", - "type": { - "name": "[Frame]" - }, - "kind": "event" - }, - { - "name": "$", - "type": { - "name": "Promise" - }, - "kind": "method", - "args": [ - { - "name": "selector", - "type": { - "name": "string" - }, - "kind": "property" - } - ] - }, - { - "name": "url", - "type": { - "name": "string" - }, - "kind": "property" - } - ] - } - ] -} \ No newline at end of file diff --git a/utils/doclint/check_public_api/test/public-api.spec.js b/utils/doclint/check_public_api/test/public-api.spec.js deleted file mode 100644 index 51fedbc77e4c4..0000000000000 --- a/utils/doclint/check_public_api/test/public-api.spec.js +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Copyright 2017 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const path = require('path'); -const puppeteer = require('../../../..'); -const checkPublicAPI = require('..'); -const Source = require('../../Source'); -const mdBuilder = require('../MDBuilder'); -const jsBuilder = require('../JSBuilder'); -const expect = require('expect') -const GoldenUtils = require('../../../../test/golden-utils'); - -const testUtils = require('../../../../test/utils') - - -describe('DocLint Public API', function() { - let browser; - let page; - - before(async function() { - browser = await puppeteer.launch(); - page = await browser.newPage(); - }); - - after(async function() { - await browser.close(); - }); - - describe('checkPublicAPI', function() { - it('diff-classes', testLint('diff-classes')); - it('diff-methods', testLint('diff-methods')); - it('diff-properties', testLint('diff-properties')); - it('diff-arguments', testLint('diff-arguments')); - it('diff-events', testLint('diff-events')); - it('check-duplicates', testLint('check-duplicates')); - it('check-sorting', testLint('check-sorting')); - it('check-returns', testLint('check-returns')); - it('js-builder-common', testJSBuilder('js-builder-common')); - it('js-builder-inheritance', testJSBuilder('js-builder-inheritance')); - it('md-builder-common', testMDBuilder('md-builder-common')); - }); - - function testLint(testName) { - return async () => { - const dirPath = path.join(__dirname, testName); - testUtils.extendExpectWithToBeGolden(dirPath, dirPath) - - const mdSources = await Source.readdir(dirPath, '.md'); - const jsSources = await Source.readdir(dirPath, '.js'); - const messages = await checkPublicAPI(page, mdSources, jsSources); - const errors = messages.map(message => message.text); - expect(errors.join('\n')).toBeGolden('result.txt'); - } - } - - function testMDBuilder(testName) { - return async () => { - const dirPath = path.join(__dirname, testName); - testUtils.extendExpectWithToBeGolden(dirPath, dirPath); - - const sources = await Source.readdir(dirPath, '.md'); - const { documentation } = await mdBuilder(page, sources); - expect(serialize(documentation)).toBeGolden('result.txt'); - } - } - - function testJSBuilder(testName) { - return async () => { - const dirPath = path.join(__dirname, testName); - testUtils.extendExpectWithToBeGolden(dirPath, dirPath); - - const sources = await Source.readdir(dirPath, '.js'); - const { documentation } = await jsBuilder(sources); - expect(serialize(documentation)).toBeGolden('result.txt'); - } - } - - /** - * @param {import('../Documentation')} doc - */ - function serialize(doc) { - const result = { - classes: doc.classesArray.map(cls => ({ - name: cls.name, - members: cls.membersArray.map(serializeMember) - })) - }; - return JSON.stringify(result, null, 2); - } - /** - * @param {import('../Documentation').Member} member - */ - function serializeMember(member) { - return { - name: member.name, - type: serializeType(member.type), - kind: member.kind, - args: member.argsArray.length ? member.argsArray.map(serializeMember) : undefined - } - } - /** - * @param {import('../Documentation').Type} type - */ - function serializeType(type) { - if (!type) - return undefined; - return { - name: type.name, - properties: type.properties.length ? type.properties.map(serializeMember) : undefined - } - } - })