From 83d016e4da6439e38e077d680ea47072d9cf544a Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Wed, 16 Jul 2025 11:17:39 +0200 Subject: [PATCH] lets start with coverage for app (#763) * lets start with coverage for app * lint * better setup --- app/.codecov.yml | 53 +++++++++++++++++++++++++ app/.github/workflows/test-coverage.yml | 43 ++++++++++++++++++++ app/package.json | 2 + 3 files changed, 98 insertions(+) create mode 100644 app/.codecov.yml create mode 100644 app/.github/workflows/test-coverage.yml diff --git a/app/.codecov.yml b/app/.codecov.yml new file mode 100644 index 000000000..4a530ac69 --- /dev/null +++ b/app/.codecov.yml @@ -0,0 +1,53 @@ +codecov: + require_ci_to_pass: yes + +coverage: + precision: 2 + round: down + range: '80...100' + status: + project: + default: + target: 80% + threshold: 5% + patch: + default: + target: 80% + threshold: 5% + +flags: + screens: + paths: + - 'src/screens/' + stores: + paths: + - 'src/stores/' + providers: + paths: + - 'src/providers/' + components: + paths: + - 'src/components/' + utils: + paths: + - 'src/utils/' + hooks: + paths: + - 'src/hooks/' + navigation: + paths: + - 'src/navigation/' + layouts: + paths: + - 'src/layouts/' + +ignore: + - 'src/mocks/**' + - 'src/types/**' + - 'src/**/*.d.ts' + - 'src/**/index.{ts,tsx}' + - 'src/**/*.test.{ts,tsx}' + - 'src/**/*.spec.{ts,tsx}' + - 'src/**/__tests__/**' + - 'src/**/__mocks__/**' + - 'tests/**' diff --git a/app/.github/workflows/test-coverage.yml b/app/.github/workflows/test-coverage.yml new file mode 100644 index 000000000..0b4e9a17c --- /dev/null +++ b/app/.github/workflows/test-coverage.yml @@ -0,0 +1,43 @@ +name: Test and Coverage + +on: + push: + branches: [main, dev] + paths: + - 'app/**' + - '.github/workflows/test-coverage.yml' + pull_request: + branches: [main, dev] + paths: + - 'app/**' + - '.github/workflows/test-coverage.yml' + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'yarn' + + - name: Install dependencies + run: | + yarn install + yarn build:deps + working-directory: ./app + + - name: Run tests with coverage + run: yarn test:coverage:ci + working-directory: ./app + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v4 + with: + file: ./app/coverage/lcov.info + flags: screens,stores,providers,components,utils,hooks,navigation,layouts + token: ${{ secrets.CODECOV_TOKEN }} diff --git a/app/package.json b/app/package.json index b28bfd3e5..b5f5dbd36 100644 --- a/app/package.json +++ b/app/package.json @@ -45,6 +45,8 @@ "tag:release": "node scripts/tag.js release", "tag:remove": "node scripts/tag.js remove", "test": "jest --passWithNoTests", + "test:coverage": "jest --coverage --passWithNoTests", + "test:coverage:ci": "jest --coverage --passWithNoTests --ci --coverageReporters=lcov --coverageReporters=text --coverageReporters=json", "test:fastlane": "bundle exec ruby -Itest fastlane/test/helpers_test.rb", "types": "tsc --noEmit", "web": "vite",