diff --git a/lib/services/project-templates-service.ts b/lib/services/project-templates-service.ts index a9e1a04e42..ed6bd37602 100644 --- a/lib/services/project-templates-service.ts +++ b/lib/services/project-templates-service.ts @@ -92,7 +92,7 @@ export class ProjectTemplatesService implements IProjectTemplatesService { private getTemplateNameToBeTracked(templateName: string, packageJsonContent: any): string { try { if (this.$fs.exists(templateName)) { - const templateNameToBeTracked = this.$fs.exists(path.join(templateName, constants.PACKAGE_JSON_FILE_NAME)) ? packageJsonContent.name : path.basename(templateName); + const templateNameToBeTracked = (packageJsonContent && packageJsonContent.name) || path.basename(templateName); return `${constants.ANALYTICS_LOCAL_TEMPLATE_PREFIX}${templateNameToBeTracked}`; } diff --git a/test/project-templates-service.ts b/test/project-templates-service.ts index c60848b016..f01140b7f1 100644 --- a/test/project-templates-service.ts +++ b/test/project-templates-service.ts @@ -163,6 +163,8 @@ describe("project-templates-service", () => { const localTemplatePath = `/Users/username/${templateName}`; const fs = testInjector.resolve("fs"); fs.exists = (localPath: string): boolean => path.basename(localPath) !== constants.PACKAGE_JSON_FILE_NAME; + const pacoteService = testInjector.resolve("pacoteService"); + pacoteService.manifest = () => Promise.resolve({ }); await projectTemplatesService.prepareTemplate(localTemplatePath, "tempFolder"); assert.deepEqual(dataSentToGoogleAnalytics, [ {