vuejs / vue-jest

Jest Vue transformer
MIT License
748 stars 156 forks source link

Wrong coverage lines due to missing template #500

Closed meufel closed 1 year ago

meufel commented 2 years ago

Hey everyone,

first of all thanks for your work!

I'm facing a problem since the latest version of vue2-jest 29.1.0:

Problem Description

The coverage resulting from my tests does not contain the <template> part of my SFC-files. This leads to

  1. wrong line numbers inside the cli text summary
  2. incomplete file representation inside the cobertura html report

Especially the 1) has a significant impact on my daily work writing tests.

SFC: sfc

Text Summary: text coverage

HTML Report: html coverage

Reproduction

The following project shows the impact when running the tests: https://github.com/meufel/vue-jest-coverage-repro

Reseach Results

Looking at the changes coming with script setup support I noted that the related commit contains a snapshot, which also lost its template part (resp. its // representation).

Since I have to stick with v29.0.0 for now, is there an option to reenable the correct line number generation?

meufel commented 1 year ago

Resolved by https://github.com/vuejs/vue-jest/pull/516. Thank You!

Rodigee commented 1 year ago

I'm still seeing a similar issue, even when on 29.2.2.

meufel commented 1 year ago

It may be a jest caching issue. I can reproduce the problem when only updating vue-jest but keeping the jest version: npm install -D @vue/vue2-jest@29.2.2 && npm test

Running npm test -- --clearCache once fixes the coverage report.

Updating the jest dependency invalidates the cache. I did that too when updating vue-jest, so I didn't run into this problem.