@@ -155,6 +155,87 @@ describe('linter and formatter', () => {
155155 clean ( ) ;
156156 } ) ;
157157
158+ test ( 'should create React project with eslint as expected' , async ( ) => {
159+ const { dir, pkgJson, clean } = createAndValidate (
160+ __dirname ,
161+ createCase ( 'react' , 'ts' ) ,
162+ {
163+ name : 'test-temp-react-eslint' ,
164+ tools : [ 'eslint' ] ,
165+ clean : false ,
166+ } ,
167+ ) ;
168+ expect ( pkgJson . devDependencies . eslint ) . toBeTruthy ( ) ;
169+ expect ( pkgJson . devDependencies [ 'eslint-plugin-react-hooks' ] ) . toBeTruthy ( ) ;
170+ expect ( pkgJson . devDependencies [ 'eslint-plugin-react-refresh' ] ) . toBeTruthy ( ) ;
171+
172+ const configContent = readFileSync ( join ( dir , 'eslint.config.mjs' ) , 'utf-8' ) ;
173+ expect ( configContent ) . toContain (
174+ "reactHooks.configs.flat['recommended-latest']" ,
175+ ) ;
176+ expect ( configContent ) . toContain ( 'reactRefresh.configs.recommended' ) ;
177+ clean ( ) ;
178+ } ) ;
179+
180+ test ( 'should create Vue project with eslint as expected' , async ( ) => {
181+ const { dir, pkgJson, clean } = createAndValidate (
182+ __dirname ,
183+ createCase ( 'vue' , 'ts' ) ,
184+ {
185+ name : 'test-temp-vue-eslint' ,
186+ tools : [ 'eslint' ] ,
187+ clean : false ,
188+ } ,
189+ ) ;
190+ expect ( pkgJson . devDependencies . eslint ) . toBeTruthy ( ) ;
191+ expect ( pkgJson . devDependencies [ 'eslint-plugin-vue' ] ) . toBeTruthy ( ) ;
192+ expect (
193+ pkgJson . devDependencies [ '@vue/eslint-config-typescript' ] ,
194+ ) . toBeTruthy ( ) ;
195+
196+ const configContent = readFileSync ( join ( dir , 'eslint.config.mjs' ) , 'utf-8' ) ;
197+ expect ( configContent ) . toContain ( "pluginVue.configs['flat/essential']" ) ;
198+ expect ( configContent ) . toContain ( 'vueTsConfigs.recommended' ) ;
199+ clean ( ) ;
200+ } ) ;
201+
202+ test ( 'should create React project with rslint as expected' , async ( ) => {
203+ const { dir, pkgJson, clean } = createAndValidate (
204+ __dirname ,
205+ createCase ( 'react' , 'ts' ) ,
206+ {
207+ name : 'test-temp-react-rslint' ,
208+ tools : [ 'rslint' ] ,
209+ clean : false ,
210+ } ,
211+ ) ;
212+ expect ( pkgJson . devDependencies [ '@rslint/core' ] ) . toBeTruthy ( ) ;
213+
214+ const configContent = readFileSync ( join ( dir , 'rslint.config.ts' ) , 'utf-8' ) ;
215+ expect ( configContent ) . toContain ( 'reactPlugin.configs.recommended' ) ;
216+ expect ( configContent ) . toContain ( 'ts.configs.recommended' ) ;
217+ clean ( ) ;
218+ } ) ;
219+
220+ test ( 'should create Vue project with vanilla rslint as expected' , async ( ) => {
221+ const { dir, pkgJson, clean } = createAndValidate (
222+ __dirname ,
223+ createCase ( 'vue' , 'js' ) ,
224+ {
225+ name : 'test-temp-vue-rslint' ,
226+ tools : [ 'rslint' ] ,
227+ clean : false ,
228+ } ,
229+ ) ;
230+ expect ( pkgJson . devDependencies [ '@rslint/core' ] ) . toBeTruthy ( ) ;
231+
232+ const configContent = readFileSync ( join ( dir , 'rslint.config.ts' ) , 'utf-8' ) ;
233+ expect ( configContent ) . toContain ( 'js.configs.recommended' ) ;
234+ expect ( configContent ) . not . toContain ( 'ts.configs.recommended' ) ;
235+ expect ( configContent ) . not . toContain ( 'reactPlugin' ) ;
236+ clean ( ) ;
237+ } ) ;
238+
158239 test ( 'should create project with prettier as expected' , async ( ) => {
159240 const { dir, pkgJson, clean } = createAndValidate (
160241 __dirname ,
0 commit comments