-
-
Notifications
You must be signed in to change notification settings - Fork 750
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat!: Migrate Testing Framework from Jest to Vitest #2457
Changes from all commits
17baee2
a117b91
0fc12b2
4ab8e9b
565c161
3d8cb16
8708339
637f386
1c9ad17
9c24516
79a8903
c1ef506
297126a
265f5bd
1b9323d
1c34644
2cccb0b
b8d4c64
dab3625
2f56784
a7028fd
f0c45e0
220a555
2eac8c2
69f3217
05ae7b6
893d723
98acc2f
8bec841
11a6cb1
c905d29
a694964
55ec1cc
99d8566
47f196e
0e01e9a
96f9cd2
8c8cdd9
1d933f4
00c7b6b
32df6a5
0c23834
bec94ad
f4e1562
dbb8e2e
ab6d03d
6214b2f
eea3f32
220fc83
39d7676
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,6 @@ | ||
# Contains the PDF file of the Tag as JSON string, thus does not need to be linted | ||
src/components/CheckIn/tagTemplate.ts | ||
src/components/CheckIn/tagTemplate.ts | ||
package.json | ||
package-lock.json | ||
tsconfig.json | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -42,11 +42,11 @@ jobs: | |
- name: Get changed TypeScript files | ||
id: changed-files | ||
uses: tj-actions/changed-files@v45 | ||
uses: tj-actions/changed-files@v40 | ||
- name: Check formatting | ||
if: steps.changed-files.outputs.only_changed != 'true' | ||
run: npm run format:check | ||
|
||
- name: Run formatting if check fails | ||
if: failure() | ||
run: npm run format | ||
|
@@ -57,10 +57,10 @@ jobs: | |
|
||
- name: Check for linting errors in modified files | ||
if: steps.changed-files.outputs.only_changed != 'true' | ||
env: | ||
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} | ||
env: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @prayanshchh Another case of reverting a previous PR |
||
CHANGED_FILES: ${{ steps.changed_files.outputs.all_changed_files }} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Another case where a previous PR was overridden. |
||
run: npx eslint ${CHANGED_FILES} && python .github/workflows/eslint_disable_check.py | ||
prayanshchh marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
- name: Check for TSDoc comments | ||
run: npm run check-tsdoc # Run the TSDoc check script | ||
|
||
|
@@ -89,13 +89,12 @@ jobs: | |
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Get Changed Unauthorized files | ||
id: changed-unauth-files | ||
uses: tj-actions/changed-files@v45 | ||
uses: tj-actions/changed-files@v40 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @prayanshchh Another case of reverting a previous PR |
||
with: | ||
files: | | ||
.env* | ||
.github/** | ||
env.example | ||
.node-version | ||
|
@@ -124,16 +123,10 @@ jobs: | |
ISSUE_GUIDELINES.md | ||
PR_GUIDELINES.md | ||
README.md | ||
*.pem | ||
*.key | ||
*.cert | ||
*.password | ||
*.secret | ||
*.credentials | ||
- name: List all changed unauthorized files | ||
if: steps.changed-unauth-files.outputs.any_changed == 'true' || steps.changed-unauth-files.outputs.any_deleted == 'true' | ||
env: | ||
env: | ||
CHANGED_UNAUTH_FILES: ${{ steps.changed-unauth-files.outputs.all_changed_files }} | ||
run: | | ||
for file in ${CHANGED_UNAUTH_FILES}; do | ||
|
@@ -151,17 +144,17 @@ jobs: | |
|
||
- name: Get changed files | ||
id: changed-files | ||
uses: tj-actions/changed-files@v45 | ||
uses: tj-actions/changed-files@v40 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @prayanshchh Another case of reverting a previous PR |
||
|
||
- name: Echo number of changed files | ||
env: | ||
env: | ||
CHANGED_FILES_COUNT: ${{ steps.changed-files.outputs.all_changed_files_count }} | ||
run: | | ||
echo "Number of files changed: $CHANGED_FILES_COUNT" | ||
- name: Check if the number of changed files is less than 100 | ||
if: steps.changed-files.outputs.all_changed_files_count > 100 | ||
env: | ||
env: | ||
CHANGED_FILES_COUNT: ${{ steps.changed-files.outputs.all_changed_files_count }} | ||
run: | | ||
echo "Error: Too many files (greater than 100) changed in the pull request." | ||
|
@@ -201,15 +194,34 @@ jobs: | |
|
||
- name: Install Dependencies | ||
run: npm install | ||
|
||
- name: Get changed TypeScript files | ||
id: changed-files | ||
uses: tj-actions/changed-files@v45 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Another instance of a reversion |
||
uses: tj-actions/changed-files@v40 | ||
|
||
- name: Run Jest Tests | ||
if: steps.changed-files.outputs.only_changed != 'true' | ||
env: | ||
NODE_V8_COVERAGE: './coverage/jest' | ||
run: | | ||
varshith257 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
npm run test -- --watchAll=false --coverage | ||
- name: Run tests | ||
- name: Run Vitest Tests | ||
if: steps.changed-files.outputs.only_changed != 'true' | ||
run: npm run test -- --watchAll=false --coverage | ||
env: | ||
NODE_V8_COVERAGE: './coverage/vitest' | ||
run: | | ||
npm run test:vitest:coverage | ||
- name: Merge Coverage Reports | ||
if: steps.changed-files.outputs.only_changed != 'true' | ||
run: | | ||
mkdir -p coverage | ||
if ! npx lcov-result-merger 'coverage/*/lcov.info' > 'coverage/lcov.info'; then | ||
echo "Failed to merge coverage reports" | ||
exit 1 | ||
fi | ||
- name: TypeScript compilation for changed files | ||
run: | | ||
for file in ${{ steps.changed-files.outputs.all_files }}; do | ||
|
@@ -218,18 +230,19 @@ jobs: | |
fi | ||
done | ||
- name: Present and Upload coverage to Codecov as ${{env.CODECOV_UNIQUE_NAME}} | ||
- name: Upload Coverage to Codecov | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This line was added to create a unique ID for code coverage job creation to make troubleshooting easier. This needs to be restored |
||
uses: codecov/codecov-action@v4 | ||
with: | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
verbose: true | ||
fail_ci_if_error: false | ||
files: './coverage/lcov.info' | ||
name: '${{env.CODECOV_UNIQUE_NAME}}' | ||
fail_ci_if_error: false | ||
|
||
- name: Test acceptable level of code coverage | ||
uses: VeryGoodOpenSource/very_good_coverage@v3 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @prayanshchh Another case of reverting a previous PR |
||
uses: VeryGoodOpenSource/very_good_coverage@v2 | ||
with: | ||
path: './coverage/lcov.info' | ||
path: "./coverage/lcov.info" | ||
min_coverage: 95.0 | ||
prayanshchh marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Graphql-Inspector: | ||
|
@@ -247,161 +260,26 @@ jobs: | |
|
||
- name: resolve dependency | ||
run: npm install -g @graphql-inspector/cli | ||
|
||
- name: Clone API Repository | ||
run: | | ||
# Retrieve the complete branch name directly from the GitHub context | ||
FULL_BRANCH_NAME=${{ github.base_ref }} | ||
echo "FULL_Branch_NAME: $FULL_BRANCH_NAME" | ||
# Clone the specified repository using the extracted branch name | ||
git clone --branch $FULL_BRANCH_NAME https://github.com/PalisadoesFoundation/talawa-api && ls -a | ||
git clone --branch $FULL_BRANCH_NAME https://github.com/PalisadoesFoundation/talawa-api && ls -a | ||
- name: Validate Documents | ||
run: graphql-inspector validate './src/GraphQl/**/*.ts' './talawa-api/schema.graphql' | ||
|
||
Start-App-Without-Docker: | ||
name: Check if Talawa Admin app starts (No Docker) | ||
runs-on: ubuntu-latest | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is one of the most serious reversions of the code. We recently merged a PR that would test whether the app would start. Here you reverted the entire test. |
||
needs: [Code-Quality-Checks, Test-Application] | ||
if: github.actor != 'dependabot' | ||
steps: | ||
- name: Checkout the Repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '20.x' | ||
|
||
- name: Install Dependencies | ||
run: npm install | ||
|
||
- name: Build Production App | ||
run: npm run build | ||
|
||
- name: Start Production App | ||
run: | | ||
npm run preview & | ||
echo $! > .pidfile_prod | ||
- name: Check if Production App is running | ||
run: | | ||
timeout=120 | ||
echo "Starting production health check with ${timeout}s timeout" | ||
while ! nc -z localhost 4173 && [ $timeout -gt 0 ]; do | ||
sleep 1 | ||
timeout=$((timeout-1)) | ||
if [ $((timeout % 10)) -eq 0 ]; then | ||
echo "Still waiting for production app to start... ${timeout}s remaining" | ||
fi | ||
done | ||
if [ $timeout -eq 0 ]; then | ||
echo "Timeout waiting for production application to start" | ||
exit 1 | ||
fi | ||
echo "Production app started successfully" | ||
- name: Stop Production App | ||
run: | | ||
if [ -f .pidfile_prod ]; then | ||
kill "$(cat .pidfile_prod)" | ||
fi | ||
- name: Start Development App | ||
run: | | ||
npm run serve & | ||
echo $! > .pidfile_dev | ||
- name: Check if Development App is running | ||
run: | | ||
timeout=120 | ||
echo "Starting development health check with ${timeout}s timeout" | ||
while ! nc -z localhost 4321 && [ $timeout -gt 0 ]; do | ||
sleep 1 | ||
timeout=$((timeout-1)) | ||
if [ $((timeout % 10)) -eq 0 ]; then | ||
echo "Still waiting for development app to start... ${timeout}s remaining" | ||
fi | ||
done | ||
if [ $timeout -eq 0 ]; then | ||
echo "Timeout waiting for development application to start" | ||
exit 1 | ||
fi | ||
echo "Development app started successfully" | ||
- name: Stop Development App | ||
if: always() | ||
run: | | ||
if [ -f .pidfile_dev ]; then | ||
kill "$(cat .pidfile_dev)" | ||
fi | ||
Docker-Start-Check: | ||
name: Check if Talawa Admin app starts in Docker | ||
runs-on: ubuntu-latest | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You reverted the code that tested whether the app would start in docker. These tests were added for a very good reason. We need to ensure that the app starts. We have had severe difficulties in this area. |
||
needs: [Code-Quality-Checks, Test-Application] | ||
if: github.actor != 'dependabot' | ||
steps: | ||
- name: Checkout the Repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up Docker | ||
uses: docker/setup-buildx-action@v3 | ||
with: | ||
driver-opts: | | ||
image=moby/buildkit:latest | ||
- name: Build Docker image | ||
run: | | ||
set -e | ||
echo "Building Docker image..." | ||
docker build -t talawa-admin-app . | ||
echo "Docker image built successfully" | ||
- name: Run Docker Container | ||
run: | | ||
set -e | ||
echo "Started Docker container..." | ||
docker run -d --name talawa-admin-app-container -p 4321:4321 talawa-admin-app | ||
echo "Docker container started successfully" | ||
- name: Check if Talawa Admin App is running | ||
run: | | ||
timeout="${HEALTH_CHECK_TIMEOUT:-120}" | ||
echo "Starting health check with ${timeout}s timeout" | ||
while ! nc -z localhost 4321 && [ $timeout -gt 0 ]; do | ||
sleep 1 | ||
timeout=$((timeout-1)) | ||
if [ $((timeout % 10)) -eq 0 ]; then | ||
echo "Still waiting for app to start... ${timeout}s remaining" | ||
fi | ||
done | ||
if [ $timeout -eq 0 ]; then | ||
echo "Timeout waiting for application to start" | ||
echo "Container logs:" | ||
docker logs talawa-admin-app-container | ||
exit 1 | ||
fi | ||
echo "Port check passed, verifying health endpoint..." | ||
- name: Stop Docker Container | ||
if: always() | ||
run: | | ||
docker stop talawa-admin-app-container | ||
docker rm talawa-admin-app-container | ||
Check-Target-Branch: | ||
if: ${{ github.actor != 'dependabot[bot]' }} | ||
name: Check Target Branch | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Check if the target branch is develop | ||
if: github.event.pull_request.base.ref != 'develop-postgres' | ||
if: github.event.pull_request.base.ref != 'develop' | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @prayanshchh Another case of reverting a previous PR. You are working on the |
||
run: | | ||
echo "Error: Pull request target branch must be 'develop-postgres'. Please refer PR_GUIDELINES.md" | ||
exit 1 | ||
echo "Error: Pull request target branch must be 'develop'. Please refer PR_GUIDELINES.md" | ||
exit 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@prayanshchh There are several cases in this file where you reverted the code to a previous version. In this case you downgraded a package that was recently upgraded.