Skip to content

Commit 4cd0908

Browse files
committed
chore: add CI test setup script and update workflow for test environment
1 parent 7a17c9e commit 4cd0908

File tree

3 files changed

+147
-1
lines changed

3 files changed

+147
-1
lines changed

.github/workflows/tests.yml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,35 @@ jobs:
1515
runs-on: ubuntu-latest
1616
env:
1717
THUMBNAIL_URL: ${{ vars.THUMBNAIL_URL }}
18+
# Test environment variables
19+
NODE_ENV: test
20+
GITHUB_CLIENT_ID: test_client_id
21+
GITHUB_CLIENT_SECRET: test_client_secret
22+
GOOGLE_CLIENT_ID: test_client_id
23+
GOOGLE_CLIENT_SECRET: test_client_secret
24+
DISCORD_CLIENT_ID: test_client_id
25+
DISCORD_CLIENT_SECRET: test_client_secret
26+
MAGIC_LINK_SECRET: test_magic_link_secret
27+
COOKIE_EXPIRES_IN: 604800
28+
JWT_SECRET: test_jwt_secret
29+
JWT_EXPIRES_IN: 1h
30+
JWT_REFRESH_SECRET: test_jwt_refresh_secret
31+
JWT_REFRESH_EXPIRES_IN: 7d
32+
MONGO_URL: mongodb://localhost:27017/test
33+
SERVER_URL: http://localhost:4000
34+
FRONTEND_URL: http://localhost:3000
35+
APP_DOMAIN: localhost
36+
RECAPTCHA_KEY: disabled
37+
S3_ENDPOINT: http://localhost:9000
38+
S3_BUCKET_SONGS: test-songs
39+
S3_BUCKET_THUMBS: test-thumbs
40+
S3_KEY: test_key
41+
S3_SECRET: test_secret
42+
S3_REGION: us-east-1
43+
WHITELISTED_USERS: ''
44+
DISCORD_WEBHOOK_URL: https://discord.com/api/webhooks/test
45+
MAIL_TRANSPORT: smtp://test:test@localhost:1025
46+
MAIL_FROM: 'Test <[email protected]>'
1847

1948
steps:
2049
- name: Checkout
@@ -26,5 +55,45 @@ jobs:
2655
- name: Install dependencies
2756
run: bun install
2857

58+
- name: Create test environment file
59+
run: |
60+
cat > apps/backend/.env.test << EOF
61+
NODE_ENV=test
62+
GITHUB_CLIENT_ID=test_client_id
63+
GITHUB_CLIENT_SECRET=test_client_secret
64+
GOOGLE_CLIENT_ID=test_client_id
65+
GOOGLE_CLIENT_SECRET=test_client_secret
66+
DISCORD_CLIENT_ID=test_client_id
67+
DISCORD_CLIENT_SECRET=test_client_secret
68+
MAGIC_LINK_SECRET=test_magic_link_secret
69+
COOKIE_EXPIRES_IN=604800
70+
JWT_SECRET=test_jwt_secret
71+
JWT_EXPIRES_IN=1h
72+
JWT_REFRESH_SECRET=test_jwt_refresh_secret
73+
JWT_REFRESH_EXPIRES_IN=7d
74+
MONGO_URL=mongodb://localhost:27017/test
75+
SERVER_URL=http://localhost:4000
76+
FRONTEND_URL=http://localhost:3000
77+
APP_DOMAIN=localhost
78+
RECAPTCHA_KEY=disabled
79+
S3_ENDPOINT=http://localhost:9000
80+
S3_BUCKET_SONGS=test-songs
81+
S3_BUCKET_THUMBS=test-thumbs
82+
S3_KEY=test_key
83+
S3_SECRET=test_secret
84+
S3_REGION=us-east-1
85+
WHITELISTED_USERS=
86+
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/test
87+
MAIL_TRANSPORT=smtp://test:test@localhost:1025
88+
MAIL_FROM=Test <[email protected]>
89+
EOF
90+
91+
- name: Debug environment
92+
run: |
93+
echo "Environment variables:"
94+
env | grep -E "(NODE_ENV|JWT|MONGO|S3|MAIL)" | sort
95+
echo "Files in apps/backend:"
96+
ls -la apps/backend/.env* || echo "No .env files found"
97+
2998
- name: Run tests
3099
run: bun test

apps/backend/src/app.module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { UserModule } from './user/user.module';
2121
imports: [
2222
ConfigModule.forRoot({
2323
isGlobal: true,
24-
envFilePath: ['.env.development', '.env.production'],
24+
envFilePath: ['.env.test', '.env.development', '.env.production'],
2525
validate,
2626
}),
2727
//DatabaseModule,

test-ci-setup.sh

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#!/bin/bash
2+
3+
# Test script to simulate CI environment locally
4+
# This script sets up the same environment variables as CI and runs tests
5+
6+
echo "Setting up CI-like environment for testing..."
7+
8+
# Set test environment variables (same as CI)
9+
export NODE_ENV=test
10+
export GITHUB_CLIENT_ID=test_client_id
11+
export GITHUB_CLIENT_SECRET=test_client_secret
12+
export GOOGLE_CLIENT_ID=test_client_id
13+
export GOOGLE_CLIENT_SECRET=test_client_secret
14+
export DISCORD_CLIENT_ID=test_client_id
15+
export DISCORD_CLIENT_SECRET=test_client_secret
16+
export MAGIC_LINK_SECRET=test_magic_link_secret
17+
export COOKIE_EXPIRES_IN=604800
18+
export JWT_SECRET=test_jwt_secret
19+
export JWT_EXPIRES_IN=1h
20+
export JWT_REFRESH_SECRET=test_jwt_refresh_secret
21+
export JWT_REFRESH_EXPIRES_IN=7d
22+
export MONGO_URL=mongodb://localhost:27017/test
23+
export SERVER_URL=http://localhost:4000
24+
export FRONTEND_URL=http://localhost:3000
25+
export APP_DOMAIN=localhost
26+
export RECAPTCHA_KEY=disabled
27+
export S3_ENDPOINT=http://localhost:9000
28+
export S3_BUCKET_SONGS=test-songs
29+
export S3_BUCKET_THUMBS=test-thumbs
30+
export S3_KEY=test_key
31+
export S3_SECRET=test_secret
32+
export S3_REGION=us-east-1
33+
export WHITELISTED_USERS=""
34+
export DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/test
35+
export MAIL_TRANSPORT=smtp://test:test@localhost:1025
36+
export MAIL_FROM="Test <[email protected]>"
37+
export THUMBNAIL_URL=localhost:9000
38+
39+
# Create test environment file
40+
cat > apps/backend/.env.test << EOF
41+
NODE_ENV=test
42+
GITHUB_CLIENT_ID=test_client_id
43+
GITHUB_CLIENT_SECRET=test_client_secret
44+
GOOGLE_CLIENT_ID=test_client_id
45+
GOOGLE_CLIENT_SECRET=test_client_secret
46+
DISCORD_CLIENT_ID=test_client_id
47+
DISCORD_CLIENT_SECRET=test_client_secret
48+
MAGIC_LINK_SECRET=test_magic_link_secret
49+
COOKIE_EXPIRES_IN=604800
50+
JWT_SECRET=test_jwt_secret
51+
JWT_EXPIRES_IN=1h
52+
JWT_REFRESH_SECRET=test_jwt_refresh_secret
53+
JWT_REFRESH_EXPIRES_IN=7d
54+
MONGO_URL=mongodb://localhost:27017/test
55+
SERVER_URL=http://localhost:4000
56+
FRONTEND_URL=http://localhost:3000
57+
APP_DOMAIN=localhost
58+
RECAPTCHA_KEY=disabled
59+
S3_ENDPOINT=http://localhost:9000
60+
S3_BUCKET_SONGS=test-songs
61+
S3_BUCKET_THUMBS=test-thumbs
62+
S3_KEY=test_key
63+
S3_SECRET=test_secret
64+
S3_REGION=us-east-1
65+
WHITELISTED_USERS=
66+
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/test
67+
MAIL_TRANSPORT=smtp://test:test@localhost:1025
68+
MAIL_FROM=Test <[email protected]>
69+
EOF
70+
71+
echo "Environment variables set. Running tests..."
72+
73+
# Run tests
74+
bun test
75+
76+
echo "Test completed. Cleaning up..."
77+
rm -f apps/backend/.env.test

0 commit comments

Comments
 (0)