Skip to content

Commit 3b23585

Browse files
authored
Maint 782 migrate from cra to vite (#840)
* pushing * fix: converted from jest to vitest * chore: changed env variables * fix: workflow * chore: update build script * fix: add recording * fix: set env to staging * feat: add record with record key secret env * fix: build steph * fix: workflow yaml * chore: remove unnecessary dependencie
1 parent e72d9c9 commit 3b23585

File tree

92 files changed

+15389
-38595
lines changed

Some content is hidden

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

92 files changed

+15389
-38595
lines changed

.github/workflows/workflow.yml

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -332,9 +332,9 @@ jobs:
332332
AUTH0_BASE_URL: ${{ secrets.AUTH0_BASE_URL }}
333333
AUTH0_ACCESS_TOKEN_URL: ${{ secrets.AUTH0_ACCESS_TOKEN_URL }}
334334
AUTH0_AUTH_URL: ${{ secrets.AUTH0_AUTH_URL }}
335-
REACT_APP_AUTH0_CLIENT_ID: ${{ secrets.REACT_APP_AUTH0_CLIENT_ID }}
336-
REACT_APP_AUTH0_DOMAIN: ${{ secrets.REACT_APP_AUTH0_DOMAIN }}
337-
REACT_APP_AUTH0_CLIENT_SECRET: ${{ secrets.REACT_APP_AUTH0_CLIENT_SECRET }}
335+
VITE_APP_AUTH0_CLIENT_ID: ${{ secrets.VITE_APP_AUTH0_CLIENT_ID }}
336+
VITE_APP_AUTH0_DOMAIN: ${{ secrets.VITE_APP_AUTH0_DOMAIN }}
337+
VITE_APP_AUTH0_CLIENT_SECRET: ${{ secrets.VITE_APP_AUTH0_CLIENT_SECRET }}
338338
run: |
339339
cp neurosynth-frontend/.env.example neurosynth-frontend/.env.dev && \
340340
docker compose run \
@@ -344,14 +344,14 @@ jobs:
344344
-e "AUTH0_BASE_URL=${AUTH0_BASE_URL}" \
345345
-e "AUTH0_ACCESS_TOKEN_URL=${AUTH0_ACCESS_TOKEN_URL}" \
346346
-e "AUTH0_AUTH_URL=${AUTH0_AUTH_URL}" \
347-
-e "REACT_APP_AUTH0_DOMAIN=${REACT_APP_AUTH0_DOMAIN}" \
348-
-e "REACT_APP_AUTH0_CLIENT_ID=${REACT_APP_AUTH0_CLIENT_ID}" \
349-
-e "REACT_APP_AUTH0_AUDIENCE=localhost" \
350-
-e "REACT_APP_AUTH0_CLIENT_SECRET=${REACT_APP_AUTH0_CLIENT_SECRET}" \
351-
-e "REACT_APP_ENV=DEV" \
352-
-e "REACT_APP_NEUROSTORE_API_DOMAIN=http://localhost/api" \
347+
-e "VITE_APP_AUTH0_DOMAIN=${VITE_APP_AUTH0_DOMAIN}" \
348+
-e "VITE_APP_AUTH0_CLIENT_ID=${VITE_APP_AUTH0_CLIENT_ID}" \
349+
-e "VITE_APP_AUTH0_AUDIENCE=https://neurostore.xyz/api/" \
350+
-e "VITE_APP_AUTH0_CLIENT_SECRET=${VITE_APP_AUTH0_CLIENT_SECRET}" \
351+
-e "VITE_APP_ENV=STAGING" \
352+
-e "VITE_APP_NEUROSTORE_API_DOMAIN=http://localhost/api" \
353353
-e "CI=true" \
354-
-e "REACT_APP_NEUROSYNTH_API_DOMAIN=http://localhost:81/api" \
354+
-e "VITE_APP_NEUROSYNTH_API_DOMAIN=http://localhost:81/api" \
355355
--rm -w /compose/neurosynth-frontend \
356356
compose \
357357
bash -c "cd /compose/neurosynth-frontend && \
@@ -475,20 +475,22 @@ jobs:
475475
name: Frontend Cypress E2E Tests
476476
uses: cypress-io/github-action@v6
477477
env:
478-
CYPRESS_auth0ClientId: ${{ secrets.REACT_APP_AUTH0_CLIENT_ID }}
479-
CYPRESS_auth0ClientSecret: ${{ secrets.REACT_APP_AUTH0_CLIENT_SECRET }}
480-
CYPRESS_auth0Domain: ${{ secrets.REACT_APP_AUTH0_DOMAIN }}
481-
CYPRESS_auth0Audience: localhost
482-
REACT_APP_AUTH0_AUDIENCE: localhost
483-
REACT_APP_AUTH0_CLIENT_ID: ${{ secrets.REACT_APP_AUTH0_CLIENT_ID }}
484-
REACT_APP_AUTH0_DOMAIN: ${{ secrets.REACT_APP_AUTH0_DOMAIN }}
485-
REACT_APP_AUTH0_CLIENT_SECRET: ${{ secrets.REACT_APP_AUTH0_CLIENT_SECRET }}
486-
REACT_APP_ENV: DEV
487-
REACT_APP_NEUROSTORE_API_DOMAIN: ${{ secrets.REACT_APP_NEUROSTORE_API_DOMAIN }}
488-
REACT_APP_NEUROSYNTH_API_DOMAIN: ${{ secrets.REACT_APP_NEUROSYNTH_API_DOMAIN }}
478+
CYPRESS_auth0ClientId: ${{ secrets.VITE_APP_AUTH0_CLIENT_ID }}
479+
CYPRESS_auth0ClientSecret: ${{ secrets.VITE_APP_AUTH0_CLIENT_SECRET }}
480+
CYPRESS_: ${{ secrets.VITE_APP_AUTH0_DOMAIN }}
481+
CYPRESS_auth0Audience: https://neurostore.xyz/api/
482+
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
483+
VITE_APP_AUTH0_AUDIENCE: https://neurostore.xyz/api/
484+
VITE_APP_AUTH0_CLIENT_ID: ${{ secrets.VITE_APP_AUTH0_CLIENT_ID }}
485+
VITE_APP_AUTH0_DOMAIN: ${{ secrets.VITE_APP_AUTH0_DOMAIN }}
486+
VITE_APP_AUTH0_CLIENT_SECRET: ${{ secrets.VITE_APP_AUTH0_CLIENT_SECRET }}
487+
VITE_APP_ENV: STAGING
488+
VITE_APP_NEUROSTORE_API_DOMAIN: ${{ secrets.VITE_APP_NEUROSTORE_API_DOMAIN }}
489+
VITE_APP_NEUROSYNTH_API_DOMAIN: ${{ secrets.VITE_APP_NEUROSYNTH_API_DOMAIN }}
489490
with:
490-
build: npm run build:dev
491-
start: npm run start-ci:dev
491+
build: npm run build:staging
492+
record: true
493+
start: npm run serve-build
492494
browser: chrome
493495
wait-on: http://localhost:3000
494496
working-directory: /home/runner/work/neurostore/neurostore/compose/neurosynth-frontend
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
REACT_APP_AUTH0_DOMAIN=dev-mui7zm42.us.auth0.com
2-
REACT_APP_AUTH0_CLIENT_ID=YOUR_NEUROSTORE_API_AUTH0_CLIENT_ID
3-
REACT_APP_AUTH0_CLIENT_SECRET=YOUR_AUTH0_CLIENT_SECRET
4-
REACT_APP_AUTH0_AUDIENCE=localhost
5-
REACT_APP_NEUROSTORE_API_DOMAIN=http://localhost/api
6-
REACT_APP_NEUROSYNTH_API_DOMAIN=http://localhost:81/api
7-
REACT_APP_ENV=DEV
8-
REACT_APP_PUBMED_API_KEY=YOUR_PUBMED_KEY
1+
VITE_APP_AUTH0_DOMAIN=dev-mui7zm42.us.auth0.com
2+
VITE_APP_AUTH0_CLIENT_ID=YOUR_NEUROSTORE_API_AUTH0_CLIENT_ID
3+
VITE_APP_AUTH0_CLIENT_SECRET=YOUR_AUTH0_CLIENT_SECRET
4+
VITE_APP_AUTH0_AUDIENCE=localhost
5+
VITE_APP_NEUROSTORE_API_DOMAIN=http://localhost/api
6+
VITE_APP_NEUROSYNTH_API_DOMAIN=http://localhost:81/api
7+
VITE_APP_ENV=DEV
8+
VITE_APP_PUBMED_API_KEY=YOUR_PUBMED_KEY
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { vi } from 'vitest';
2+
3+
const useAuth0 = vi.fn().mockReturnValue({
4+
getAccessTokenSilently: vi.fn().mockImplementation(() => {
5+
return Promise.resolve('test-token');
6+
}),
7+
loginWithPopup: vi.fn(),
8+
logout: vi.fn(),
9+
isAuthenticated: false,
10+
isLoading: false,
11+
user: {
12+
sub: 'some-github-user',
13+
},
14+
});
15+
16+
export { useAuth0 };
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { vi } from 'vitest';
2+
3+
const useSnackbar = vi.fn().mockReturnValue({
4+
enqueueSnackbar: vi.fn(),
5+
});
6+
7+
export { useSnackbar };
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { vi } from 'vitest';
2+
3+
const useQueryClient = vi.fn().mockReturnValue({
4+
invalidateQueries: vi.fn(),
5+
});
6+
7+
const useQuery = vi.fn().mockReturnValue({
8+
data: null,
9+
isLoading: false,
10+
isError: false,
11+
});
12+
13+
export { useQueryClient, useQuery };

compose/neurosynth-frontend/src/__mocks__/react-router-dom.tsx renamed to compose/neurosynth-frontend/__mocks__/react-router-dom.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1+
import { vi } from 'vitest';
12
import { NavigateProps } from 'react-router-dom';
23

3-
const useParams = jest.fn().mockReturnValue({
4+
const useParams = vi.fn().mockReturnValue({
45
projectId: 'test-project-id',
56
});
67

7-
const useNavigate = jest.fn().mockReturnValue(jest.fn());
8+
const useNavigate = vi.fn().mockReturnValue(vi.fn());
89

9-
const useLocation = jest.fn().mockReturnValue({
10+
const useLocation = vi.fn().mockReturnValue({
1011
location: {
1112
search: '',
1213
},

compose/neurosynth-frontend/cypress.config.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ export default defineConfig({
2424
env: {
2525
auth0Username: '[email protected]',
2626
auth0Password: 'password',
27-
auth0ClientId: process.env.REACT_APP_AUTH0_CLIENT_ID,
28-
auth0ClientSecret: process.env.REACT_APP_AUTH0_CLIENT_SECRET,
29-
auth0Domain: process.env.REACT_APP_AUTH0_DOMAIN,
30-
auth0Audience: process.env.REACT_APP_AUTH0_AUDIENCE,
31-
neurostoreAPIBaseURL: process.env.REACT_APP_NEUROSTORE_API_DOMAIN,
32-
neurosynthAPIBaseURL: process.env.REACT_APP_NEUROSYNTH_API_DOMAIN,
27+
auth0ClientId: process.env.VITE_APP_AUTH0_CLIENT_ID,
28+
auth0ClientSecret: process.env.VITE_APP_AUTH0_CLIENT_SECRET,
29+
auth0Domain: process.env.VITE_APP_AUTH0_DOMAIN,
30+
auth0Audience: process.env.VITE_APP_AUTH0_AUDIENCE,
31+
neurostoreAPIBaseURL: process.env.VITE_APP_NEUROSTORE_API_DOMAIN,
32+
neurosynthAPIBaseURL: process.env.VITE_APP_NEUROSYNTH_API_DOMAIN,
3333
},
3434
});

compose/neurosynth-frontend/public/index.html renamed to compose/neurosynth-frontend/index.html

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,23 @@
22
<html lang="en">
33
<head>
44
<meta charset="utf-8" />
5-
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
5+
<link rel="icon" href="/favicon.ico" />
66
<meta name="viewport" content="width=device-width, initial-scale=1" />
77
<meta name="theme-color" content="#000000" />
88
<meta name="description" content="Neurosynth-Compose App" />
9-
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
9+
<link rel="apple-touch-icon" href="/logo192.png" />
1010
<!--
1111
manifest.json provides metadata used when your web app is installed on a
1212
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
1313
-->
14-
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
14+
<link rel="manifest" href="/manifest.json" />
1515

1616
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
1717

1818
<link rel="preload" as="image" href="/static/brain-analysis.png" type="image/png">
1919

20+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/handsontable/dist/handsontable.full.min.css" />
21+
2022
<link
2123
rel="stylesheet"
2224
media="print"
@@ -46,16 +48,6 @@
4648
<script async src="https://w.appzi.io/w.js"></script>
4749

4850
<!-- End Appzi -->
49-
50-
<!--
51-
Notice the use of %PUBLIC_URL% in the tags above.
52-
It will be replaced with the URL of the `public` folder during the build.
53-
Only files inside the `public` folder can be referenced from the HTML.
54-
55-
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
56-
work correctly both with client-side routing and a non-root public URL.
57-
Learn how to configure a non-root public URL by running `npm run build`.
58-
-->
5951
<title>neurosynth compose</title>
6052
</head>
6153
<body>
@@ -71,6 +63,7 @@
7163
To begin the development, run `npm start` or `yarn start`.
7264
To create a production bundle, use `npm run build` or `yarn build`.
7365
-->
74-
<div id="portal" style="position: fixed; left: 0; top: 0; z-index: 9999;" />
66+
<div id="portal" style="position: fixed; left: 0; top: 0; z-index: 9999;"></div>
67+
<script type="module" src="/src/index.tsx"></script>
7568
</body>
7669
</html>

compose/neurosynth-frontend/jest.config.js

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

0 commit comments

Comments
 (0)