Skip to content

Commit 5992675

Browse files
Copilotposva
andcommitted
Address review feedback: Add warning checks, extract shared variables, remove redundant tests
Co-authored-by: posva <[email protected]>
1 parent dded05e commit 5992675

File tree

1 file changed

+10
-50
lines changed

1 file changed

+10
-50
lines changed

src/core/definePage.spec.ts

Lines changed: 10 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { TransformResult } from 'vite'
22
import { expect, describe, it } from 'vitest'
33
import { definePageTransform, extractDefinePageNameAndPath } from './definePage'
4+
import { mockWarn } from '../../tests/vitest-mock-warn'
45

56
const sampleCode = `
67
<script setup>
@@ -18,6 +19,7 @@ const b = 1
1819
`
1920

2021
describe('definePage', () => {
22+
mockWarn()
2123
it('removes definePage', async () => {
2224
const result = (await definePageTransform({
2325
code: sampleCode,
@@ -256,8 +258,7 @@ export default {
256258
})
257259

258260
describe('error handling', () => {
259-
it('handles syntax errors gracefully when extracting definePage', async () => {
260-
const codeWithSyntaxError = `
261+
const codeWithSyntaxError = `
261262
<script setup>
262263
definePage({
263264
name: 'test',, // syntax error: extra comma
@@ -270,17 +271,19 @@ definePage({
270271
</template>
271272
`
272273

274+
it('handles syntax errors gracefully when extracting definePage', async () => {
273275
const result = await definePageTransform({
274276
code: codeWithSyntaxError,
275277
id: 'src/pages/broken.vue?definePage&vue',
276278
})
277279

278280
// Should return empty object instead of crashing
279281
expect(result).toBe('export default {}')
282+
expect('Failed to process definePage:').toHaveBeenWarned()
280283
})
281284

282285
it('handles syntax errors gracefully when removing definePage from source', async () => {
283-
const codeWithSyntaxError = `
286+
const codeForRemoval = `
284287
<script setup>
285288
const a = 1
286289
definePage({
@@ -296,68 +299,24 @@ const b = 1
296299
`
297300

298301
const result = await definePageTransform({
299-
code: codeWithSyntaxError,
302+
code: codeForRemoval,
300303
id: 'src/pages/broken.vue',
301304
})
302305

303306
// Should return undefined (no transform) instead of crashing
304307
expect(result).toBeUndefined()
305-
})
306-
307-
it('handles malformed definePage object gracefully', async () => {
308-
const codeWithMalformedObject = `
309-
<script setup>
310-
definePage({
311-
name: 'test'
312-
path: '/test' // missing comma
313-
})
314-
</script>
315-
`
316-
317-
const result = await definePageTransform({
318-
code: codeWithMalformedObject,
319-
id: 'src/pages/malformed.vue?definePage&vue',
320-
})
321-
322-
expect(result).toBe('export default {}')
323-
})
324-
325-
it('handles completely invalid JavaScript syntax gracefully', async () => {
326-
const codeWithInvalidSyntax = `
327-
<script setup>
328-
definePage({
329-
name: 'test',
330-
path: '/test'
331-
invalid javascript syntax here ###
332-
})
333-
</script>
334-
`
335-
336-
const result = await definePageTransform({
337-
code: codeWithInvalidSyntax,
338-
id: 'src/pages/invalid.vue?definePage&vue',
339-
})
340-
341-
expect(result).toBe('export default {}')
308+
expect('Failed to process definePage:').toHaveBeenWarned()
342309
})
343310

344311
it('handles extractDefinePageNameAndPath with syntax errors gracefully', async () => {
345-
const codeWithSyntaxError = `
346-
<script setup>
347-
definePage({
348-
name: 'test',, // syntax error: extra comma
349-
path: '/test'
350-
})
351-
</script>
352-
`
353-
354312
const result = await extractDefinePageNameAndPath(
355313
codeWithSyntaxError,
356314
'src/pages/broken.vue'
357315
)
358316

359317
// Should return null/undefined instead of crashing
360318
expect(result).toBeUndefined()
319+
expect('Failed to extract definePage info:').toHaveBeenWarned()
361320
})
362321

363322
it('handles unclosed brackets in definePage gracefully', async () => {
@@ -376,6 +335,7 @@ definePage({
376335
})
377336

378337
expect(result).toBe('export default {}')
338+
expect('Failed to process definePage:').toHaveBeenWarned()
379339
})
380340
})
381341
})

0 commit comments

Comments
 (0)