Skip to content

Commit d5fc344

Browse files
authored
Merge pull request #68 from nicolelim02/chore/tests
Fix signup and login tests
2 parents 9923e8f + 367cf10 commit d5fc344

File tree

8 files changed

+87
-36
lines changed

8 files changed

+87
-36
lines changed

.github/workflows/ci.yml

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,34 @@ on:
77

88
env:
99
NODE_VERSION: 20
10-
FIREBASE_PROJECT_ID: ${{ secrets.FIREBASE_PROJECT_ID }}
11-
FIREBASE_PRIVATE_KEY: ${{ secrets.FIREBASE_PRIVATE_KEY }}
12-
FIREBASE_CLIENT_EMAIL: ${{ secrets.FIREBASE_CLIENT_EMAIL }}
13-
FIREBASE_STORAGE_BUCKET: ${{ secrets.FIREBASE_STORAGE_BUCKET }}
14-
JWT_SECRET: ${{ secrets.JWT_SECRET }}
1510

1611
permissions:
1712
contents: read
1813

1914
jobs:
20-
ci:
15+
frontend-ci:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
- name: Setting node version
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version: ${{ env.NODE_VERSION }}
24+
- name: Install dependencies
25+
working-directory: frontend
26+
run: npm install
27+
- name: Linting
28+
working-directory: frontend
29+
run: npm run lint
30+
- name: Frontend tests
31+
working-directory: frontend
32+
run: docker compose -f docker-compose-test.yml run --rm test-frontend
33+
backend-ci:
2134
runs-on: ubuntu-latest
2235
strategy:
2336
matrix:
24-
service: [frontend, backend/question-service, backend/user-service]
37+
service: [question-service, user-service]
2538
steps:
2639
- name: Checkout code
2740
uses: actions/checkout@v4
@@ -30,21 +43,16 @@ jobs:
3043
with:
3144
node-version: ${{ env.NODE_VERSION }}
3245
- name: Install dependencies
33-
working-directory: ${{ matrix.service }}
46+
working-directory: backend/${{ matrix.service }}
3447
run: npm install
3548
- name: Linting
36-
working-directory: ${{ matrix.service }}
49+
working-directory: backend/${{ matrix.service }}
3750
run: npm run lint
38-
- name: Set .env variables
39-
working-directory: ${{ matrix.service }}
40-
run: |
41-
touch .env
42-
echo "FIREBASE_PROJECT_ID=${{ env.FIREBASE_PROJECT_ID }}" >> .env
43-
echo "FIREBASE_PRIVATE_KEY=${{ env.FIREBASE_PRIVATE_KEY }}" >> .env
44-
echo "FIREBASE_CLIENT_EMAIL=${{ env.FIREBASE_CLIENT_EMAIL }}" >> .env
45-
echo "FIREBASE_CLIENT_EMAIL=${{ env.FIREBASE_CLIENT_EMAIL }}" >> .env
46-
echo "FIREBASE_STORAGE_BUCKET=${{ env.FIREBASE_STORAGE_BUCKET }}" >> .env
47-
echo "JWT_SECRET=${{ env.JWT_SECRET }}" >> .env
48-
- name: Tests
49-
working-directory: ${{ matrix.service }}
50-
run: npm test
51+
- name: Backend tests
52+
env:
53+
FIREBASE_PROJECT_ID: ${{ secrets.FIREBASE_PROJECT_ID }}
54+
FIREBASE_PRIVATE_KEY: ${{ secrets.FIREBASE_PRIVATE_KEY }}
55+
FIREBASE_CLIENT_EMAIL: ${{ secrets.FIREBASE_CLIENT_EMAIL }}
56+
FIREBASE_STORAGE_BUCKET: ${{ secrets.FIREBASE_STORAGE_BUCKET }}
57+
JWT_SECRET: ${{ secrets.JWT_SECRET }}
58+
run: docker compose -f docker-compose-test.yml run --rm test-${{ matrix.service }}

backend/question-service/.env.sample

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,5 @@ FIREBASE_STORAGE_BUCKET=>FIREBASE_STORAGE_BUCKET>
1212
ORIGINS=http://localhost:5173,http://127.0.0.1:5173
1313

1414
USER_SERVICE_URL=http://user-service:3001/api
15+
16+
MONGO_URI_TEST=mongodb://mongo:mongo@test-mongo:27017/

backend/question-service/tests/setup.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
import mongoose from "mongoose";
2-
import { MongoMemoryServer } from "mongodb-memory-server";
3-
4-
let mongo: MongoMemoryServer;
52

63
beforeAll(async () => {
7-
mongo = await MongoMemoryServer.create();
8-
const mongoUri = mongo.getUri();
4+
const mongoUri =
5+
process.env.MONGO_URI_TEST || "mongodb://mongo:mongo@test-mongo:27017/";
96

107
if (mongoose.connection.readyState !== 0) {
118
await mongoose.disconnect();
@@ -24,9 +21,5 @@ afterEach(async () => {
2421
});
2522

2623
afterAll(async () => {
27-
if (mongo) {
28-
await mongo.stop();
29-
}
30-
3124
await mongoose.connection.close();
3225
});

backend/user-service/.env.sample

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ USER=EMAIL_ADDRESS
2929
PASS=PASSWORD
3030

3131
# Redis configuration
32-
REDIS_URI=REDIS_URI
32+
REDIS_URI=redis://redis:6379
3333

3434
# Test
3535
MONGO_URI_TEST=mongodb://mongo:mongo@test-mongo:27017/

docker-compose-test.yml

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,22 @@ services:
44
test-user-service:
55
image: peerprep/user-service
66
build: ./backend/user-service
7-
env_file: ./backend/user-service/.env
7+
# env_file: ./backend/user-service/.env
8+
environment:
9+
- NODE_ENV=test
10+
- PORT=3001
11+
- JWT_SECRET
12+
- ADMIN_FIRST_NAME=Admin
13+
- ADMIN_LAST_NAME=User
14+
- ADMIN_USERNAME=administrator
15+
16+
- ADMIN_PASSWORD=Admin@123
17+
- FIREBASE_PROJECT_ID
18+
- FIREBASE_PRIVATE_KEY
19+
- FIREBASE_CLIENT_EMAIL
20+
- FIREBASE_STORAGE_BUCKET
21+
- MONGO_URI_TEST=mongodb://mongo:mongo@test-mongo:27017/
22+
- REDIS_URI_TEST=redis://test-redis:6379
823
depends_on:
924
- test-mongo
1025
- test-redis
@@ -16,6 +31,39 @@ services:
1631
restart: on-failure
1732
command: ["npm", "test"]
1833

34+
test-question-service:
35+
image: peerprep/question-service
36+
build: ./backend/question-service
37+
# env_file: ./backend/question-service/.env
38+
environment:
39+
- NODE_ENV=test
40+
- PORT=3000
41+
- FIREBASE_PROJECT_ID
42+
- FIREBASE_PRIVATE_KEY
43+
- FIREBASE_CLIENT_EMAIL
44+
- FIREBASE_STORAGE_BUCKET
45+
- MONGO_URI_TEST=mongodb://mongo:mongo@test-mongo:27017/
46+
depends_on:
47+
- test-mongo
48+
networks:
49+
- peerprep-network
50+
volumes:
51+
- ./backend/question-service:/question-service
52+
- /question-service/node_modules
53+
restart: on-failure
54+
command: ["npm", "test"]
55+
56+
test-frontend:
57+
image: peerprep/frontend
58+
build: ./frontend
59+
networks:
60+
- peerprep-network
61+
volumes:
62+
- ./frontend:/frontend
63+
- /frontend/node_modules
64+
restart: on-failure
65+
command: ["npm", "test"]
66+
1967
test-mongo:
2068
image: mongo
2169
restart: always

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ services:
107107
env_file: ./backend/matching-service/.env
108108
healthcheck:
109109
test: rabbitmq-diagnostics check_port_connectivity
110-
interval: 10s
110+
interval: 20s
111111
timeout: 10s
112112
retries: 10
113113

frontend/src/pages/LogIn/LogIn.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ describe("Log In Components", () => {
5959
expect(signUpButton).toBeInTheDocument();
6060

6161
fireEvent.click(signUpButton);
62-
expect(mockUseNavigate).toHaveBeenCalledWith("/signup");
62+
expect(mockUseNavigate).toHaveBeenCalledWith("/auth/signup");
6363
});
6464
});
6565

frontend/src/pages/SignUp/SignUp.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ describe("Sign Up Components", () => {
7474
expect(logInButton).toBeInTheDocument();
7575

7676
fireEvent.click(logInButton);
77-
expect(mockUseNavigate).toHaveBeenCalledWith("/login");
77+
expect(mockUseNavigate).toHaveBeenCalledWith("/auth/login");
7878
});
7979
});
8080

0 commit comments

Comments
 (0)