feat(providence-analytics): cli arguments extend-docs
chore: fix failing tests
This commit is contained in:
parent
54d06b9faa
commit
729966504b
5 changed files with 76 additions and 12 deletions
|
|
@ -33,6 +33,10 @@ function setQueryMethod(m) {
|
|||
* @returns {string[]}
|
||||
*/
|
||||
function pathsArrayFromCs(t, cwd = process.cwd()) {
|
||||
if (!t) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return flatten(
|
||||
t.split(',').map(t => {
|
||||
if (t.startsWith('/')) {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ const {
|
|||
pathsArrayFromCollectionName,
|
||||
pathsArrayFromCs,
|
||||
} = require('./cli-helpers.js');
|
||||
const { launchProvidenceWithExtendDocs } = require('./generate-extend-docs-data.js');
|
||||
const extendDocsModule = require('./generate-extend-docs-data.js');
|
||||
const { version } = require('../../package.json');
|
||||
|
||||
async function cli({ cwd, addProjectDependencyPaths } = {}) {
|
||||
|
|
@ -111,12 +111,10 @@ async function cli({ cwd, addProjectDependencyPaths } = {}) {
|
|||
providenceModule.providence(queryConfig, {
|
||||
gatherFilesConfig: {
|
||||
extensions: commander.extensions,
|
||||
// ...(commander.filteredTarget ? { excludeFolders: commander.filteredTarget } : {}),
|
||||
filter: commander.whitelist,
|
||||
},
|
||||
gatherFilesConfigReference: {
|
||||
extensions: commander.extensions,
|
||||
// ...(commander.filteredTarget ? { excludeFolders: commander.filteredTarget } : {}),
|
||||
filter: commander.whitelistReference,
|
||||
},
|
||||
debugEnabled: commander.debug,
|
||||
|
|
@ -275,7 +273,17 @@ async function cli({ cwd, addProjectDependencyPaths } = {}) {
|
|||
process.exit(1);
|
||||
}
|
||||
const prefixCfg = { from: options.prefixFrom, to: options.prefixTo };
|
||||
launchProvidenceWithExtendDocs(commander.referencePaths, prefixCfg, options.outputFolder);
|
||||
extendDocsModule
|
||||
.launchProvidenceWithExtendDocs({
|
||||
referenceProjectPaths: commander.referencePaths,
|
||||
prefixCfg,
|
||||
outputFolder: options.outputFolder,
|
||||
extensions: commander.referencePaths,
|
||||
whitelist: commander.whitelist,
|
||||
whitelistReference: commander.whitelistReference,
|
||||
})
|
||||
.then(() => resolveCli())
|
||||
.catch(() => rejectCli());
|
||||
});
|
||||
|
||||
commander
|
||||
|
|
|
|||
|
|
@ -6,20 +6,31 @@ const { providence } = require('../program/providence.js');
|
|||
const { QueryService } = require('../program/services/QueryService.js');
|
||||
const { LogService } = require('../program/services/LogService.js');
|
||||
|
||||
async function launchProvidenceWithExtendDocs(referencePaths, prefixObj, outputFolder) {
|
||||
async function launchProvidenceWithExtendDocs({
|
||||
referenceProjectPaths,
|
||||
prefixCfg,
|
||||
outputFolder,
|
||||
extensions,
|
||||
whitelist,
|
||||
whitelistReference,
|
||||
}) {
|
||||
const t0 = performance.now();
|
||||
|
||||
const results = await providence(
|
||||
QueryService.getQueryConfigFromAnalyzer('match-paths', { prefix: prefixObj }),
|
||||
QueryService.getQueryConfigFromAnalyzer('match-paths', { prefix: prefixCfg }),
|
||||
{
|
||||
gatherFilesConfig: {
|
||||
extensions: ['.js', '.html'],
|
||||
excludeFolders: ['coverage', 'test'],
|
||||
extensions: extensions || ['.js'],
|
||||
filter: whitelist || ['!coverage', '!test'],
|
||||
},
|
||||
gatherFilesConfigReference: {
|
||||
extensions: extensions || ['.js'],
|
||||
filter: whitelistReference || ['!coverage', '!test'],
|
||||
},
|
||||
queryMethod: 'ast',
|
||||
report: false,
|
||||
targetProjectPaths: [pathLib.resolve(process.cwd())],
|
||||
referenceProjectPaths: referencePaths,
|
||||
referenceProjectPaths,
|
||||
},
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ class Analyzer {
|
|||
`skipping ${LogService.pad(this.name, 16)} for ${
|
||||
this.identifier
|
||||
}: (${reason})\n${cfg.targetProjectPath.replace(
|
||||
'/Users/hu84jr/git/providence/providence-input-data/search-targets/',
|
||||
`${process.cwd()}/providence-input-data/search-targets/`,
|
||||
'',
|
||||
)}`,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -15,9 +15,10 @@ const {
|
|||
} = require('../../test-helpers/mock-log-service-helpers.js');
|
||||
|
||||
const { QueryService } = require('../../src/program/services/QueryService.js');
|
||||
const { LogService } = require('../../src/program/services/LogService.js');
|
||||
|
||||
const providenceModule = require('../../src/program/providence.js');
|
||||
const extendDocsModule = require('../../src/cli/generate-extend-docs-data.js');
|
||||
|
||||
const dummyAnalyzer = require('../../test-helpers/templates/analyzer-template.js');
|
||||
const { cli } = require('../../src/cli/cli.js');
|
||||
const { pathsArrayFromCs } = require('../../src/cli/cli-helpers.js');
|
||||
|
|
@ -27,7 +28,6 @@ const rootDir = pathLib.resolve(__dirname, '../../');
|
|||
|
||||
describe('Providence CLI', () => {
|
||||
before(() => {
|
||||
LogService.debugEnabled = true;
|
||||
suppressNonCriticalLogs();
|
||||
mockWriteToJson(queryResults);
|
||||
|
||||
|
|
@ -142,6 +142,47 @@ describe('Providence CLI', () => {
|
|||
describe('Query', () => {});
|
||||
describe('Search', () => {});
|
||||
describe('Manage', () => {});
|
||||
describe('Extend docs', () => {
|
||||
let extendDocsStub;
|
||||
beforeEach(() => {
|
||||
extendDocsStub = sinon.stub(extendDocsModule, 'launchProvidenceWithExtendDocs').returns(
|
||||
new Promise(resolve => {
|
||||
resolve();
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
extendDocsStub.restore();
|
||||
});
|
||||
|
||||
it('allows configuration', async () => {
|
||||
await runCli(
|
||||
[
|
||||
'extend-docs',
|
||||
'-t /xyz',
|
||||
'-r /xyz/x',
|
||||
'--prefix-from pfrom --prefix-to pto',
|
||||
'--output-folder /outp',
|
||||
'--extensions bla',
|
||||
'--whitelist wl --whitelist-reference wlr',
|
||||
].join(' '),
|
||||
rootDir,
|
||||
);
|
||||
expect(extendDocsStub.called).to.be.true;
|
||||
expect(extendDocsStub.args[0][0]).to.eql({
|
||||
referenceProjectPaths: ['/xyz/x'],
|
||||
prefixCfg: {
|
||||
from: 'pfrom',
|
||||
to: 'pto',
|
||||
},
|
||||
outputFolder: '/outp',
|
||||
extensions: ['/xyz/x'],
|
||||
whitelist: [`${process.cwd()}/wl`],
|
||||
whitelistReference: [`${process.cwd()}/wlr`],
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue