@toptal/davinci-monorepo 8.1.4-alpha-CRT-5891-create-coverage-command-23386c1d.2 → 8.1.4-alpha-CRT-5891-create-coverage-command-082cae9e.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toptal/davinci-monorepo",
3
- "version": "8.1.4-alpha-CRT-5891-create-coverage-command-23386c1d.2+23386c1d",
3
+ "version": "8.1.4-alpha-CRT-5891-create-coverage-command-082cae9e.3+082cae9e",
4
4
  "description": "Monorepo utility tools",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -35,13 +35,14 @@
35
35
  "dependencies": {
36
36
  "@nodelib/fs.walk": "^1.2.6",
37
37
  "@oclif/core": "^1.16.1",
38
- "@toptal/davinci-cli-shared": "2.3.1-alpha-CRT-5891-create-coverage-command-23386c1d.34+23386c1d",
38
+ "@toptal/davinci-cli-shared": "2.3.1-alpha-CRT-5891-create-coverage-command-082cae9e.35+082cae9e",
39
39
  "chalk": "^4.1.2",
40
40
  "codeowners": "5.1.1",
41
41
  "dependency-cruiser": "^12.5.0",
42
42
  "ervy": "^1.0.7",
43
43
  "execa": "^5.1.1",
44
44
  "find-up": "5.0.0",
45
+ "find-yarn-workspace-root": "^2.0.0",
45
46
  "glob": "^8.0.3",
46
47
  "ignore": "^5.2.0",
47
48
  "is-directory": "^0.3.1",
@@ -53,5 +54,5 @@
53
54
  "devDependencies": {
54
55
  "@jest/globals": "^29.4.2"
55
56
  },
56
- "gitHead": "23386c1d709c03d921ae81f6e8ede8bbaccd64aa"
57
+ "gitHead": "082cae9ecf302c878d2dcbe004d88ff1ba737381"
57
58
  }
@@ -4,8 +4,8 @@ import { groupCoverageByCodeownersCommand } from './group-coverage-by-codeowners
4
4
  export const coverageCommand = program => {
5
5
  const coverage = program.createCommand('coverage').description('TODO ..')
6
6
 
7
- generateTeamCoverageCommand(coverage)
8
7
  groupCoverageByCodeownersCommand(coverage)
8
+ generateTeamCoverageCommand(coverage)
9
9
 
10
10
  return coverage
11
11
  }
@@ -3,11 +3,16 @@ import * as url from 'url'
3
3
  import execa from 'execa'
4
4
  import fs from 'fs'
5
5
  import { print } from '@toptal/davinci-cli-shared'
6
+ import getWorkspaceRoot from 'find-yarn-workspace-root'
6
7
 
7
8
  import Codeowners from './codeowners/core/codeowners/codeowners.js'
8
9
 
9
10
  const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
10
11
  const rootProjectPath = path.join(__dirname, '../../')
12
+ const workspaceRoot = getWorkspaceRoot()
13
+
14
+ console.log('workspaceRoot', workspaceRoot)
15
+ console.log('rootProjectPath', rootProjectPath)
11
16
 
12
17
  const sanitizeTeamName = team => team.replace('/', '-').replace('@', '')
13
18
 
@@ -18,7 +23,7 @@ const sanitizeNycPercentage = percentage =>
18
23
  const generateTeamCoverage = async options => {
19
24
  print.header('generateTeamCoverage')
20
25
 
21
- const codeowners = new Codeowners(rootProjectPath)
26
+ const codeowners = new Codeowners(workspaceRoot)
22
27
 
23
28
  const ownerEntries = codeowners.ownerEntries
24
29
  const uniqueTeams = ownerEntries
@@ -2,15 +2,20 @@ import path from 'path'
2
2
  import fs from 'fs'
3
3
  import * as url from 'url'
4
4
  import { print } from '@toptal/davinci-cli-shared'
5
+ import getWorkspaceRoot from 'find-yarn-workspace-root'
5
6
 
6
7
  import Codeowners from './codeowners/core/codeowners/codeowners.js'
7
8
 
8
9
  const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
9
10
  const rootProjectPath = path.join(__dirname, '../../')
11
+ const workspaceRoot = getWorkspaceRoot()
12
+
13
+ console.log('workspaceRoot', workspaceRoot)
14
+ console.log('rootProjectPath', rootProjectPath)
10
15
 
11
16
  const readJestCoverageReport = () => {
12
17
  const jestCoverageReportPath = path.join(
13
- rootProjectPath,
18
+ workspaceRoot,
14
19
  'coverage/jest/coverage-final-jest.json'
15
20
  )
16
21
 
@@ -21,7 +26,7 @@ const readJestCoverageReport = () => {
21
26
 
22
27
  const readCypressCoverageReport = () => {
23
28
  const cypressCoverageReportPath = path.join(
24
- rootProjectPath,
29
+ workspaceRoot,
25
30
  'coverage/cypress/coverage-final-cypress.json'
26
31
  )
27
32
 
@@ -38,8 +43,12 @@ const splitReportIntoTeams = (reportObj, teams, codeowners, coveragePath) => {
38
43
  Object.entries(reportObj).forEach(([reportPathKey, report]) => {
39
44
  const file = report.path
40
45
  const relativePath = path.relative(rootProjectPath, file)
46
+ const relativeWorkspacePath = path.relative(workspaceRoot, file)
47
+
48
+ console.log('relativePath', relativePath)
49
+ console.log('relativeWorkspacePath', relativeWorkspacePath)
41
50
 
42
- const owners = codeowners.getOwner(relativePath)
51
+ const owners = codeowners.getOwner(relativeWorkspacePath)
43
52
 
44
53
  owners.forEach(owner => {
45
54
  teamsReport[owner] = {
@@ -54,7 +63,7 @@ const splitReportIntoTeams = (reportObj, teams, codeowners, coveragePath) => {
54
63
  const sanitizedTeamPath = sanitizeTeamName(team)
55
64
 
56
65
  const reportPath = path.join(
57
- rootProjectPath,
66
+ workspaceRoot,
58
67
  `${coveragePath}/coverage-final-${sanitizedTeamPath}.json`
59
68
  )
60
69
 
@@ -81,7 +90,7 @@ const groupCoverageByCodeowners = async () => {
81
90
  const jestReport = readJestCoverageReport()
82
91
  const cypressReport = readCypressCoverageReport()
83
92
 
84
- const codeowners = new Codeowners(rootProjectPath)
93
+ const codeowners = new Codeowners(workspaceRoot)
85
94
  const teams = getAllTeams(codeowners)
86
95
 
87
96
  splitReportIntoTeams(jestReport, teams, codeowners, 'coverage/jest')
@@ -94,9 +103,5 @@ export const groupCoverageByCodeownersCommand = program => {
94
103
  return program
95
104
  .command('group-coverage-by-codeowners')
96
105
  .description('TODO: group-coverage-by-codeowners')
97
- .requiredOption(
98
- '-r, --repository <repository_name>',
99
- 'specify repository name'
100
- )
101
106
  .action(groupCoverageByCodeowners)
102
107
  }