@@ -2,7 +2,7 @@ import { dirname, join } from 'node:path';
2
2
import { fileURLToPath } from 'node:url' ;
3
3
import { setWorkspaceRoot , workspaceRoot } from 'nx/src/utils/workspace-root' ;
4
4
import type { MockInstance } from 'vitest' ;
5
- import { ESLintPluginConfig } from './config' ;
5
+ import { type ESLintTarget } from './config' ;
6
6
import { eslintConfigFromNxProject , eslintConfigFromNxProjects } from './nx' ;
7
7
8
8
describe ( 'Nx helpers' , ( ) => {
@@ -33,63 +33,53 @@ describe('Nx helpers', () => {
33
33
34
34
describe ( 'create config from all Nx projects' , ( ) => {
35
35
it ( 'should include eslintrc and patterns of each project' , async ( ) => {
36
- await expect ( eslintConfigFromNxProjects ( ) ) . resolves . toEqual ( {
37
- eslintrc : {
38
- root : true ,
39
- overrides : [
40
- {
41
- files : [ 'packages/cli/**/*.ts' , 'packages/cli/package.json' ] ,
42
- extends : './packages/cli/.eslintrc.json' ,
43
- } ,
44
- {
45
- files : [ 'packages/core/**/*.ts' , 'packages/core/package.json' ] ,
46
- extends : './packages/core/.eslintrc.json' ,
47
- } ,
48
- {
49
- files : [
50
- 'packages/nx-plugin/**/*.ts' ,
51
- 'packages/nx-plugin/package.json' ,
52
- 'packages/nx-plugin/generators.json' ,
53
- ] ,
54
- extends : './packages/nx-plugin/.eslintrc.json' ,
55
- } ,
56
- {
57
- files : [ 'packages/utils/**/*.ts' , 'packages/utils/package.json' ] ,
58
- extends : './packages/utils/.eslintrc.json' ,
59
- } ,
36
+ await expect ( eslintConfigFromNxProjects ( ) ) . resolves . toEqual ( [
37
+ {
38
+ eslintrc : './packages/cli/.eslintrc.json' ,
39
+ patterns : [
40
+ 'packages/cli/**/*.ts' ,
41
+ 'packages/cli/package.json' ,
42
+ 'packages/cli/src/*.spec.ts' ,
43
+ 'packages/cli/src/*.cy.ts' ,
44
+ 'packages/cli/src/*.stories.ts' ,
45
+ 'packages/cli/src/.storybook/main.ts' ,
60
46
] ,
61
47
} ,
62
- patterns : [
63
- 'packages/cli/**/*.ts' ,
64
- 'packages/cli/package.json' ,
65
- 'packages/cli/src/*.spec.ts' ,
66
- 'packages/cli/src/*.cy.ts' ,
67
- 'packages/cli/src/*.stories.ts' ,
68
- 'packages/cli/src/.storybook/main.ts' ,
69
-
70
- 'packages/core/**/*.ts' ,
71
- 'packages/core/package.json' ,
72
- 'packages/core/src/*.spec.ts' ,
73
- 'packages/core/src/*.cy.ts' ,
74
- 'packages/core/src/*.stories.ts' ,
75
- 'packages/core/src/.storybook/main.ts' ,
76
-
77
- 'packages/nx-plugin/**/*.ts' ,
78
- 'packages/nx-plugin/package.json' ,
79
- 'packages/nx-plugin/generators.json' ,
80
- 'packages/nx-plugin/src/*.spec.ts' ,
81
- 'packages/nx-plugin/src/*.cy.ts' ,
82
- 'packages/nx-plugin/src/*.stories.ts' ,
83
- 'packages/nx-plugin/src/.storybook/main.ts' ,
84
-
85
- 'packages/utils/**/*.ts' ,
86
- 'packages/utils/package.json' ,
87
- 'packages/utils/src/*.spec.ts' ,
88
- 'packages/utils/src/*.cy.ts' ,
89
- 'packages/utils/src/*.stories.ts' ,
90
- 'packages/utils/src/.storybook/main.ts' ,
91
- ] ,
92
- } satisfies ESLintPluginConfig ) ;
48
+ {
49
+ eslintrc : './packages/core/.eslintrc.json' ,
50
+ patterns : [
51
+ 'packages/core/**/*.ts' ,
52
+ 'packages/core/package.json' ,
53
+ 'packages/core/src/*.spec.ts' ,
54
+ 'packages/core/src/*.cy.ts' ,
55
+ 'packages/core/src/*.stories.ts' ,
56
+ 'packages/core/src/.storybook/main.ts' ,
57
+ ] ,
58
+ } ,
59
+ {
60
+ eslintrc : './packages/nx-plugin/.eslintrc.json' ,
61
+ patterns : [
62
+ 'packages/nx-plugin/**/*.ts' ,
63
+ 'packages/nx-plugin/package.json' ,
64
+ 'packages/nx-plugin/generators.json' ,
65
+ 'packages/nx-plugin/src/*.spec.ts' ,
66
+ 'packages/nx-plugin/src/*.cy.ts' ,
67
+ 'packages/nx-plugin/src/*.stories.ts' ,
68
+ 'packages/nx-plugin/src/.storybook/main.ts' ,
69
+ ] ,
70
+ } ,
71
+ {
72
+ eslintrc : './packages/utils/.eslintrc.json' ,
73
+ patterns : [
74
+ 'packages/utils/**/*.ts' ,
75
+ 'packages/utils/package.json' ,
76
+ 'packages/utils/src/*.spec.ts' ,
77
+ 'packages/utils/src/*.cy.ts' ,
78
+ 'packages/utils/src/*.stories.ts' ,
79
+ 'packages/utils/src/.storybook/main.ts' ,
80
+ ] ,
81
+ } ,
82
+ ] satisfies ESLintTarget [ ] ) ;
93
83
} ) ;
94
84
} ) ;
95
85
@@ -119,28 +109,14 @@ describe('Nx helpers', () => {
119
109
] ) (
120
110
'project %j - expected configurations for projects %j' ,
121
111
async ( project , expectedProjects ) => {
122
- const otherProjects = ALL_PROJECTS . filter (
123
- p => ! expectedProjects . includes ( p ) ,
124
- ) ;
125
-
126
- const config = await eslintConfigFromNxProject ( project ) ;
112
+ const targets = await eslintConfigFromNxProject ( project ) ;
127
113
128
- expect ( config . eslintrc ) . toEqual ( {
129
- root : true ,
130
- overrides : expectedProjects . map ( p => ( {
131
- files : expect . arrayContaining ( [ `packages/${ p } /**/*.ts` ] ) ,
132
- extends : `./packages/${ p } /.eslintrc.json` ,
133
- } ) ) ,
134
- } ) ;
135
-
136
- expect ( config . patterns ) . toEqual (
137
- expect . arrayContaining (
138
- expectedProjects . map ( p => `packages/${ p } /**/*.ts` ) ,
139
- ) ,
140
- ) ;
141
- expect ( config . patterns ) . toEqual (
142
- expect . not . arrayContaining (
143
- otherProjects . map ( p => `packages/${ p } /**/*.ts` ) ,
114
+ expect ( targets ) . toEqual (
115
+ expectedProjects . map (
116
+ ( p ) : ESLintTarget => ( {
117
+ eslintrc : `./packages/${ p } /.eslintrc.json` ,
118
+ patterns : expect . arrayContaining ( [ `packages/${ p } /**/*.ts` ] ) ,
119
+ } ) ,
144
120
) ,
145
121
) ;
146
122
} ,
0 commit comments