Skip to content

Commit d2074ed

Browse files
authored
Merge branch 'development' into 14-implement-logical-database-scheme
2 parents 3d57893 + f7aa4cd commit d2074ed

File tree

96 files changed

+176
-65
lines changed

Some content is hidden

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

96 files changed

+176
-65
lines changed

.github/workflows/ci.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
lint-and-test:
9+
runs-on: self-hosted
10+
steps:
11+
- name: Checkout repo
12+
uses: actions/checkout@v4
13+
14+
- name: Start containers
15+
run: docker compose up -d --build
16+
17+
- name: Lint backend
18+
run: docker exec $(docker ps -qf "name=backend") npm run lint
19+
20+
- name: Lint frontend
21+
run: docker exec $(docker ps -qf "name=frontend") npm run lint
22+
23+
- name: Test backend
24+
run: docker exec $(docker ps -qf "name=backend") npm test
25+
26+
- name: Test frontend
27+
run: docker exec $(docker ps -qf "name=frontend") npm test
28+
29+
- name: Stop containers
30+
run: docker compose down

Dockerfile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ COPY ./frontend/ ./
2020
RUN npm install
2121
RUN npm install -g @angular/cli
2222

23+
# Install chromium for headless browser testing
24+
RUN apk add --no-cache chromium harfbuzz ttf-freefont
25+
# Set the chromium binary path
26+
ENV CHROME_BIN=/usr/bin/chromium
27+
2328
EXPOSE 4200
2429
CMD ["npm", "start"]
2530

README.md

Lines changed: 4 additions & 5 deletions

backend/.devcontainer/devcontainer.json

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

backend/.eslintrc.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
module.exports = {
2+
parser: "@typescript-eslint/parser",
3+
parserOptions: {
4+
ecmaVersion: "latest",
5+
sourceType: "module",
6+
},
7+
plugins: ["@typescript-eslint"],
8+
extends: [
9+
"eslint:recommended",
10+
"plugin:@typescript-eslint/recommended",
11+
],
12+
rules: {
13+
"@typescript-eslint/no-unused-vars": "warn", // Turns unused var error into warning
14+
}
15+
};

backend/jest.config.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import type { Config } from 'jest';
2+
3+
const config: Config = {
4+
preset: 'ts-jest',
5+
testEnvironment: 'node',
6+
transform: {
7+
'^.+\\.ts$': 'ts-jest',
8+
},
9+
moduleFileExtensions: ['ts', 'js'],
10+
collectCoverage: true, // Enable code coverage
11+
coverageDirectory: 'coverage',
12+
testMatch: ['**/tests/**/*.test.ts'], // Only test files ending in .test.ts
13+
};
14+
15+
export default config;

backend/package.json

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
"scripts": {
77
"build": "npx tsc",
88
"start": "node dist/index.js",
9-
"dev": "nodemon --exec ts-node -r tsconfig-paths/register src/index.ts"
9+
"dev": "nodemon --exec ts-node -r tsconfig-paths/register src/index.ts",
10+
"lint": "eslint --config .eslintrc.js --ext .ts ./src/",
11+
"test": "jest --coverage",
12+
"test:watch": "jest --watch"
1013
},
1114
"repository": {
1215
"type": "git",
@@ -41,6 +44,13 @@
4144
"nodemon": "^3.1.9",
4245
"ts-node": "^10.9.1",
4346
"tsconfig-paths": "^4.0.0",
44-
"typescript": "^5.7.3"
47+
"typescript": "^5.7.3",
48+
"eslint": "^8.57.0",
49+
"@typescript-eslint/parser": "^6.14.0",
50+
"@typescript-eslint/eslint-plugin": "^6.14.0",
51+
"jest": "^29.7.0",
52+
"ts-jest": "^29.1.0",
53+
"@types/jest": "^29.5.0",
54+
"supertest": "^6.3.0"
4555
}
4656
}

backend/src/application/controllers/assignment_controller.ts

Whitespace-only changes.

backend/src/application/controllers/class_controller.ts

Whitespace-only changes.

backend/src/application/controllers/group_controller.ts

Whitespace-only changes.

0 commit comments

Comments
 (0)