chore: fix Page.emulateMedia doclint failure (#5584)

This is expected as we now alias `emulateMedia` in `index.js` which isn't a file checked by DocLint. We alias there to avoid having the function overriden by the `asyncInstallHooks` code.

This commit updates doclint to know about methods that we expect it will find are missing and in that case just skip over them. We should only do this for methods where we plan to deprecate them or we have to define them in an odd way to work around some problem (and if that's the case long term we should fix that problem so we can define them as normal).

Co-authored-by: Mathias Bynens <mathias@qiwi.be>
This commit is contained in:
Jack Franklin 2020-04-06 09:38:05 +01:00 committed by GitHub
parent a99a3cf757
commit 4ee2c43f06
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -154,6 +154,13 @@ function checkDuplicates(doc) {
return errors;
}
const expectedNonExistingMethods = new Map([
/* Expected to be missing as the method is deprecated
* and we alias it to Page.prototype.emulateMediaType in index.js
* which is not checked by DocLint
*/
['Page', new Set(['emulateMedia'])],
]);
/**
* @param {!Documentation} actual
* @param {!Documentation} expected
@ -176,8 +183,12 @@ function compareDocumentations(actual, expected) {
const actualMethods = Array.from(actualClass.methods.keys()).sort();
const expectedMethods = Array.from(expectedClass.methods.keys()).sort();
const methodDiff = diff(actualMethods, expectedMethods);
for (const methodName of methodDiff.extra)
for (const methodName of methodDiff.extra) {
const missingMethodsForClass = expectedNonExistingMethods.get(className);
if (!missingMethodsForClass) continue;
if (missingMethodsForClass.has(methodName)) continue;
errors.push(`Non-existing method found: ${className}.${methodName}()`);
}
for (const methodName of methodDiff.missing)
errors.push(`Method not found: ${className}.${methodName}()`);
@ -335,4 +346,3 @@ function diff(actual, expected) {
return i < 0 || j < 0 ? 0 : d[i][j];
}
}