Skip to content

Commit a1b188a

Browse files
authored
Merge branch 'master' into master
2 parents 7356b7b + 85cf944 commit a1b188a

File tree

204 files changed

+7222
-5034
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

204 files changed

+7222
-5034
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
runs-on: ubuntu-latest
2323
strategy:
2424
matrix:
25-
commands: [tsc, 'format:ci', eslint, build, test, test-coveralls]
25+
commands: [tsc, 'format:ci', eslint, build, 'test --bail=1', test-coveralls]
2626
steps:
2727
- name: Checkout repository
2828
uses: actions/checkout@v4
@@ -43,5 +43,5 @@ jobs:
4343
if: matrix.commands == 'test-coveralls'
4444
uses: coverallsapp/github-action@master
4545
with:
46-
path-to-lcov: lcov.info
46+
path-to-lcov: coverage/lcov.info
4747
github-token: ${{ secrets.GITHUB_TOKEN }}

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ To start contributing, create a fork from our repo and send a PR. Refer to [this
1616

1717
The frontend comes with an extensive test suite. To run the tests after you made your modifications, run
1818
`yarn test`. Regression tests are run automatically when you want to push changes to this repository.
19-
The regression tests are generated using `jest` and stored as snapshots in `src/\_\_tests\_\_`. After modifying the frontend, carefully inspect any failing regression tests reported in red in the command line. If you are convinced that the regression tests and not your changes are at fault, you can update the regression tests by running:
19+
The regression tests are generated using `vitest` and stored as snapshots in `src/\_\_tests\_\_`. After modifying the frontend, carefully inspect any failing regression tests reported in red in the command line. If you are convinced that the regression tests and not your changes are at fault, you can update the regression tests by running:
2020

2121
```bash
22-
yarn test --updateSnapshot
22+
yarn test --update
2323
```
2424

2525
## Manually testing the frontend

jest.config.js

Lines changed: 0 additions & 104 deletions
This file was deleted.

jsdom-env.js

Lines changed: 0 additions & 12 deletions
This file was deleted.

package.json

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,22 @@
2121
"format:scss": "prettier --list-different --parser scss \"src/**/*.scss\"",
2222
"format:ci": "yarn run format:tsx && yarn run format:scss",
2323
"start": "rsbuild dev",
24-
"test": "cross-env TZ=Asia/Singapore jest",
24+
"test": "cross-env TZ=Asia/Singapore vitest run",
25+
"test:watch": "cross-env TZ=Asia/Singapore vitest",
26+
"test:ui": "cross-env TZ=Asia/Singapore vitest --ui --no-open",
2527
"test-coveralls": "./scripts/test-coveralls.sh",
26-
"update-ui-snapshots": "jest --updateSnapshot",
28+
"update-ui-snapshots": "vitest run --update",
2729
"eslint": "eslint src",
2830
"prepare": "husky",
2931
"preview": "rsbuild preview"
3032
},
3133
"dependencies": {
3234
"@blueprintjs/core": "^5.10.1",
3335
"@blueprintjs/datetime2": "^2.3.3",
34-
"@blueprintjs/icons": "^5.9.0",
36+
"@blueprintjs/icons": "^6.0.0",
3537
"@blueprintjs/select": "^5.1.3",
3638
"@mantine/hooks": "^7.11.2",
37-
"@octokit/rest": "^20.0.0",
39+
"@octokit/rest": "^22.0.0",
3840
"@reduxjs/toolkit": "^1.9.7",
3941
"@sentry/browser": "^8.33.0",
4042
"@sourceacademy/c-slang": "^1.0.21",
@@ -69,15 +71,15 @@
6971
"mdast-util-from-markdown": "^2.0.0",
7072
"mdast-util-to-hast": "^13.0.0",
7173
"normalize.css": "^8.0.1",
72-
"phaser": "~3.87.0",
74+
"phaser": "~3.90.0",
7375
"query-string": "^9.0.0",
7476
"re-resizable": "^6.9.9",
7577
"react": "^18.3.1",
7678
"react-ace": "^14.0.0",
7779
"react-copy-to-clipboard": "^5.1.0",
7880
"react-debounce-render": "^8.0.2",
7981
"react-dom": "^18.3.1",
80-
"react-drag-drop-files": "^2.3.10",
82+
"react-drag-drop-files": "^3.0.0",
8183
"react-draggable": "^4.4.5",
8284
"react-dropzone": "^14.2.3",
8385
"react-i18next": "^15.0.0",
@@ -87,7 +89,7 @@
8789
"react-papaparse": "^4.0.2",
8890
"react-qr-reader": "^3.0.0-beta-1",
8991
"react-redux": "^8.1.1",
90-
"react-router-dom": "^6.14.1",
92+
"react-router": "^7.6.2",
9193
"react-select": "^5.7.3",
9294
"react-simple-keyboard": "^3.6.27",
9395
"react-sortable-hoc": "^2.0.0",
@@ -108,6 +110,7 @@
108110
"yareco": "^0.1.5"
109111
},
110112
"devDependencies": {
113+
"@aaroon/workbox-rspack-plugin": "^0.3.2",
111114
"@babel/core": "^7.24.5",
112115
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
113116
"@babel/preset-typescript": "^7.24.1",
@@ -121,19 +124,17 @@
121124
"@rsbuild/plugin-svgr": "^1.2.0",
122125
"@svgr/webpack": "^8.0.0",
123126
"@swc/core": "^1.11.22",
124-
"@swc/jest": "^0.2.38",
127+
"@testing-library/dom": "^10.4.0",
125128
"@testing-library/jest-dom": "^6.0.0",
126-
"@testing-library/react": "^15.0.6",
129+
"@testing-library/react": "^16.0.0",
127130
"@testing-library/user-event": "^14.4.3",
128-
"@types/dompurify": "^3.0.5",
129131
"@types/estree": "^1.0.5",
130-
"@types/gapi": "^0.0.44",
131-
"@types/gapi.auth2": "^0.0.57",
132+
"@types/gapi": "^0.0.47",
133+
"@types/gapi.auth2": "^0.0.61",
132134
"@types/gapi.client": "^1.0.5",
133135
"@types/gapi.client.drive-v3": "^0.0.5",
134-
"@types/google.picker": "^0.0.39",
136+
"@types/google.picker": "^0.0.51",
135137
"@types/identity-obj-proxy": "^3",
136-
"@types/jest": "^29.0.0",
137138
"@types/js-cookie": "^3.0.6",
138139
"@types/js-yaml": "^4.0.5",
139140
"@types/lodash": "^4.14.195",
@@ -146,7 +147,9 @@
146147
"@types/redux-mock-store": "^1.0.3",
147148
"@types/showdown": "^2.0.1",
148149
"@types/xml2js": "^0.4.11",
149-
"babel-jest": "^29.7.0",
150+
"@vitejs/plugin-react-swc": "^3.11.0",
151+
"@vitest/coverage-v8": "3.2.4",
152+
"@vitest/ui": "^3.2.4",
150153
"buffer": "^6.0.3",
151154
"canvas": "^3.1.0",
152155
"constants-browserify": "^1.0.0",
@@ -160,8 +163,7 @@
160163
"https-browserify": "^1.0.0",
161164
"husky": "^9.0.0",
162165
"identity-obj-proxy": "^3.0.0",
163-
"jest": "^29.7.0",
164-
"jest-environment-jsdom": "^29.7.0",
166+
"jsdom": "^25.0.1",
165167
"npm-run-all2": "^8.0.0",
166168
"os-browserify": "^0.3.0",
167169
"path": "^0.12.7",
@@ -180,6 +182,7 @@
180182
"typescript": "^5.8.2",
181183
"typescript-eslint": "^8.1.0",
182184
"url": "^0.11.1",
185+
"vitest": "^3.2.4",
183186
"webpack-bundle-analyzer": "^4.9.0"
184187
},
185188
"browserslist": {

public/assets/Sample_Profile_1.jpg

6.84 KB
Loading

public/assets/Sample_Profile_2.jpg

8.79 KB
Loading

public/assets/Sample_Profile_3.jpg

10.8 KB
Loading

public/assets/Sample_Profile_4.jpg

75.7 KB
Loading

public/assets/Sample_Profile_5.jpg

17.9 KB
Loading

0 commit comments

Comments
 (0)