Skip to content

Commit 5514bef

Browse files
test only this, without other judge-* deps
Signed-off-by: Arnav Gupta <arnav@codingblocks.com>
1 parent ca420b3 commit 5514bef

File tree

9 files changed

+78
-13
lines changed

9 files changed

+78
-13
lines changed

.circleci/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
- run:
2020
name: Build Docker Image
2121
command: |
22-
docker build -t codingblocks/judge-api .
22+
docker-compose build
2323
- run:
2424
name: Docker Compose
2525
command: |
@@ -35,7 +35,7 @@ jobs:
3535
command: |
3636
mkdir -p coverage
3737
docker kill judgecompose_api_1
38-
docker run -t --env-file .env \
38+
docker run -t --env-file test.env \
3939
-v "$PWD/coverage:/usr/src/judge-api/coverage" \
4040
--network judgecompose_default \
4141
--env "DEBUG=test:* JUDGEAPI_HOST=api JUDGEAPI_PORT=2222" codingblocks/judge-api \

.dockerignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,6 @@ crashlytics.properties
110110
crashlytics-build.properties
111111
fabric.properties
112112

113+
.circleci
114+
.travis.yml
115+
docker-compose.yml

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ before_install:
1818
- curl -L https://raw.githubusercontent.com/coding-blocks/judge-compose/master/judgeapi-example.env > .env
1919

2020
install:
21-
- docker build -t codingblocks/judge-api .
21+
- docker-compose build
2222
- docker-compose -p judgecompose up -d
2323

2424
before_script:
@@ -28,7 +28,7 @@ script:
2828
- docker kill judgecompose_api_1
2929
- mkdir -p coverage
3030
- |
31-
docker run -t --env-file .env \
31+
docker run -t --env-file test.env \
3232
-v "$PWD/coverage:/usr/src/judge-api/coverage" \
3333
--network judgecompose_default \
3434
--env "DEBUG=test:* JUDGEAPI_HOST=api JUDGEAPI_PORT=2222" codingblocks/judge-api \

docker-compose.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
version: '3'
2+
services:
3+
postgres:
4+
image: postgres:9.6
5+
environment:
6+
- POSTGRES_USER=judgeapi
7+
- POSTGRES_PASSWORD=judgeapi
8+
- POSTGRES_DB=judgeapi-dev
9+
rabbitmq:
10+
image: rabbitmq:3-management-alpine
11+
environment:
12+
- RABBITMQ_DEFAULT_USER=codingblocks
13+
- RABBITMQ_DEFAULT_PASS=codingblocks
14+
ports:
15+
- "5672:5672"
16+
- "15672:15672"
17+
api:
18+
build: .
19+
image: codingblocks/judge-api
20+
depends_on:
21+
- postgres
22+
ports:
23+
- "3737:3737"
24+
env_file:
25+
- test.env

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"apidoc": "apidoc -i src -o docs",
4141
"prestart": "npm run build && npm run apidoc",
4242
"start": "scripts/wait-for-it.sh ${AMQP_HOST}:${AMQP_PORT} -- node dist/run.js",
43-
"test": "node_modules/.bin/mocha --timeout 10000 --exit --require ts-node/register test/utils/setup.ts test/*.ts",
43+
"test": "node_modules/.bin/mocha --timeout 10000 --exit --require ts-node/register test/utils/setup*.ts test/*.ts",
4444
"cover": "nyc npm test",
4545
"seedlangs": "node dist/db/scripts/seed-defaultlangs.js",
4646
"precodecov": "npm run cover",

scripts/test-local.sh

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
11
#!/usr/bin/env bash
22

3-
curl -L https://raw.githubusercontent.com/coding-blocks/judge-compose/master/docker-compose-withdb.yml > docker-compose.yml
4-
curl -L https://raw.githubusercontent.com/coding-blocks/judge-compose/master/judgeapi-example.env > .env
5-
6-
docker build -t codingblocks/judge-api .
3+
docker-compose build
74
docker-compose -p judgecompose up -d
85

96
docker exec judgecompose_api_1 scripts/wait-for-it.sh -t 180 api:3737 -- npm run seedlangs
107
docker kill judgecompose_api_1
11-
docker run -t --env-file .env \
8+
docker run -t --env-file test.env \
129
--network judgecompose_default \
1310
--env "DEBUG=test:* JUDGEAPI_HOST=api JUDGEAPI_PORT=2222" codingblocks/judge-api \
1411
npm run cover
1512

1613
docker-compose kill
1714
docker-compose down
1815

19-
rm docker-compose.yml
20-
rm .env
21-
2216
docker system prune -f
2317
docker volume prune -f

test.env

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Copy this to .env and use real values (and remove this comment line)
2+
AMQP_USER=codingblocks
3+
AMQP_PASS=codingblocks
4+
AMQP_HOST=rabbitmq
5+
AMQP_PORT=5672
6+
DB_HOST=postgres
7+
DB_NAME=judgeapi-dev
8+
DB_USER=judgeapi
9+
DB_PASS=judgeapi
10+
JUDGEAPI_HOST=localhost
11+
JUDGEAPI_PORT=3737
12+
DEBUG=test:*
File renamed without changes.

test/utils/setup-mock-queue.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import {RunResponse} from '../../src/routes/api/run'
2+
import * as amqp from 'amqplib/callback_api'
3+
import {Channel, Connection} from 'amqplib/callback_api'
4+
import app, {config} from '../../src/server'
5+
6+
const jobQ = 'job_queue'
7+
const successQ = 'success_queue'
8+
9+
before((done) => {
10+
amqp.connect(`amqp://${config.AMQP.USER}:${config.AMQP.PASS}@${config.AMQP.HOST}:${config.AMQP.PORT}`,
11+
(err, connection) => {
12+
if (err) throw err
13+
14+
connection.createChannel((err2, channel) => {
15+
16+
channel.assertQueue(successQ)
17+
channel.assertQueue(jobQ)
18+
channel.consume(jobQ, (msg) => {
19+
let job = JSON.parse(msg.content.toString())
20+
channel.sendToQueue(successQ, (new Buffer(JSON.stringify(<RunResponse>{
21+
id: job.id,
22+
stderr: 'stderr',
23+
stdout: 'stdout'
24+
}))))
25+
channel.ack(msg)
26+
})
27+
28+
29+
})
30+
})
31+
})

0 commit comments

Comments
 (0)