Compare commits
No commits in common. "3bd26a9d6cd29e13e7b7c9ee7fd32fef9465263c" and "0e672529768230fd10d2d74eb8fb1bba910f3873" have entirely different histories.
3bd26a9d6c
...
0e67252976
@ -14,4 +14,4 @@ jobs:
|
|||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
- name: Build Container
|
- name: Build Container
|
||||||
run: docker build --target compile .
|
run: docker build .
|
||||||
|
@ -21,7 +21,7 @@ jobs:
|
|||||||
- name: Log in to the Container registry
|
- name: Log in to the Container registry
|
||||||
run: docker login -u ${{ env.USER }} -p ${{ secrets.TOKEN }} ${{ env.REGISTRY }}
|
run: docker login -u ${{ env.USER }} -p ${{ secrets.TOKEN }} ${{ env.REGISTRY }}
|
||||||
- name: Build Container
|
- name: Build Container
|
||||||
run: docker build --target compile -t "${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest" -t "${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.VERSION }}" .
|
run: docker build -t "${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest" -t "${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.VERSION }}" .
|
||||||
env:
|
env:
|
||||||
version: $(cat package.json | awk 'match($0, /version/) {print $2}' | sed 's/[\",]//g') # extracts the version number from the package.json with bash magic
|
version: $(cat package.json | awk 'match($0, /version/) {print $2}' | sed 's/[\",]//g') # extracts the version number from the package.json with bash magic
|
||||||
- name: Push Container
|
- name: Push Container
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
name: Run unit tests
|
|
||||||
on: [pull_request]
|
|
||||||
env:
|
|
||||||
REGISTRY: gitea.brudi.xyz
|
|
||||||
IMAGE_NAME: ${{ gitea.repository }}
|
|
||||||
USER: ${{ gitea.actor }}
|
|
||||||
jobs:
|
|
||||||
test:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: catthehacker/ubuntu:act-latest
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run Tests
|
|
||||||
run: docker build --target test .
|
|
||||||
|
|
16
Dockerfile
16
Dockerfile
@ -1,21 +1,11 @@
|
|||||||
FROM node:alpine as files
|
FROM node:alpine as Build
|
||||||
ENV TZ="Europe/Berlin"
|
ENV NODE_ENV=production
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY [ "package-lock.json", "package.json", "index.ts", "tsconfig.json", "./" ]
|
COPY [ "package-lock.json", "package.json", "index.ts", "tsconfig.json", "./" ]
|
||||||
COPY server ./server
|
COPY server ./server
|
||||||
|
|
||||||
FROM files as proddependencies
|
|
||||||
ENV NODE_ENV=production
|
|
||||||
RUN npm ci --omit=dev
|
RUN npm ci --omit=dev
|
||||||
|
|
||||||
FROM proddependencies as compile
|
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
CMD ["npm","run","start"]
|
CMD ["npm","run","start"]
|
||||||
|
|
||||||
FROM files as dependencies
|
|
||||||
RUN npm ci
|
|
||||||
|
|
||||||
FROM dependencies as test
|
|
||||||
COPY jest.config.js .
|
|
||||||
COPY tests ./tests
|
|
||||||
RUN npm run test
|
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
'roots': [
|
|
||||||
'<rootDir>/tests',
|
|
||||||
'<rootDir>/server'
|
|
||||||
],
|
|
||||||
'transform': {
|
|
||||||
'^.+\\.tsx?$': 'ts-jest'
|
|
||||||
},
|
|
||||||
'testRegex': '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
|
|
||||||
'moduleFileExtensions': [
|
|
||||||
'ts',
|
|
||||||
'tsx',
|
|
||||||
'js',
|
|
||||||
'jsx',
|
|
||||||
'json',
|
|
||||||
'node'
|
|
||||||
],
|
|
||||||
};
|
|
27
package-lock.json
generated
27
package-lock.json
generated
@ -30,13 +30,12 @@
|
|||||||
"winston": "^3.8.2"
|
"winston": "^3.8.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^29.5.2",
|
"@types/jest": "^29.5.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.58.0",
|
"@typescript-eslint/eslint-plugin": "^5.58.0",
|
||||||
"@typescript-eslint/parser": "^5.58.0",
|
"@typescript-eslint/parser": "^5.58.0",
|
||||||
"eslint": "^8.38.0",
|
"eslint": "^8.38.0",
|
||||||
"jest": "^29.5.0",
|
"jest": "^29.5.0",
|
||||||
"jest-cli": "^29.5.0",
|
"jest-cli": "^29.5.0",
|
||||||
"mockdate": "^3.0.5",
|
|
||||||
"nodemon": "^2.0.22",
|
"nodemon": "^2.0.22",
|
||||||
"rimraf": "^5.0.0",
|
"rimraf": "^5.0.0",
|
||||||
"ts-jest": "^29.1.0"
|
"ts-jest": "^29.1.0"
|
||||||
@ -1569,9 +1568,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/jest": {
|
"node_modules/@types/jest": {
|
||||||
"version": "29.5.2",
|
"version": "29.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.0.tgz",
|
||||||
"integrity": "sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==",
|
"integrity": "sha512-3Emr5VOl/aoBwnWcH/EFQvlSAmjV+XtV9GGu5mwdYew5vhQh0IUZx/60x0TzHDu09Bi7HMx10t/namdJw5QIcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"expect": "^29.0.0",
|
"expect": "^29.0.0",
|
||||||
@ -4990,12 +4989,6 @@
|
|||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/mockdate": {
|
|
||||||
"version": "3.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/mockdate/-/mockdate-3.0.5.tgz",
|
|
||||||
"integrity": "sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/ms": {
|
"node_modules/ms": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
@ -8146,9 +8139,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/jest": {
|
"@types/jest": {
|
||||||
"version": "29.5.2",
|
"version": "29.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.0.tgz",
|
||||||
"integrity": "sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==",
|
"integrity": "sha512-3Emr5VOl/aoBwnWcH/EFQvlSAmjV+XtV9GGu5mwdYew5vhQh0IUZx/60x0TzHDu09Bi7HMx10t/namdJw5QIcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"expect": "^29.0.0",
|
"expect": "^29.0.0",
|
||||||
@ -10727,12 +10720,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
|
||||||
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
|
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
|
||||||
},
|
},
|
||||||
"mockdate": {
|
|
||||||
"version": "3.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/mockdate/-/mockdate-3.0.5.tgz",
|
|
||||||
"integrity": "sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"ms": {
|
"ms": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
|
@ -33,18 +33,15 @@
|
|||||||
"debuggable": "node build/index.js --inspect-brk",
|
"debuggable": "node build/index.js --inspect-brk",
|
||||||
"monitor": "nodemon build/index.js",
|
"monitor": "nodemon build/index.js",
|
||||||
"lint": "eslint . --ext .ts",
|
"lint": "eslint . --ext .ts",
|
||||||
"lint-fix": "eslint . --ext .ts --fix",
|
"lint-fix": "eslint . --ext .ts --fix"
|
||||||
"test": "jest",
|
|
||||||
"test-watch": "jest --watch"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^29.5.2",
|
"@types/jest": "^29.5.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.58.0",
|
"@typescript-eslint/eslint-plugin": "^5.58.0",
|
||||||
"@typescript-eslint/parser": "^5.58.0",
|
"@typescript-eslint/parser": "^5.58.0",
|
||||||
"eslint": "^8.38.0",
|
"eslint": "^8.38.0",
|
||||||
"jest": "^29.5.0",
|
"jest": "^29.5.0",
|
||||||
"jest-cli": "^29.5.0",
|
"jest-cli": "^29.5.0",
|
||||||
"mockdate": "^3.0.5",
|
|
||||||
"nodemon": "^2.0.22",
|
"nodemon": "^2.0.22",
|
||||||
"rimraf": "^5.0.0",
|
"rimraf": "^5.0.0",
|
||||||
"ts-jest": "^29.1.0"
|
"ts-jest": "^29.1.0"
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
import { GuildScheduledEvent } from "discord.js"
|
|
||||||
import { createDateStringFromEvent } from "../../server/helper/dateHelper"
|
|
||||||
import MockDate from 'mockdate'
|
|
||||||
|
|
||||||
beforeAll(() => {
|
|
||||||
MockDate.set('01-01-2023')
|
|
||||||
})
|
|
||||||
|
|
||||||
function getTestDate(date: string): GuildScheduledEvent {
|
|
||||||
return <GuildScheduledEvent>{ scheduledStartAt: new Date(date) }
|
|
||||||
}
|
|
||||||
test('createDateStringFromEvent - correct formatting', () => {
|
|
||||||
expect(createDateStringFromEvent(getTestDate('01-01-2023 12:30'), "")).toEqual('heute um 12:30')
|
|
||||||
expect(createDateStringFromEvent(getTestDate('01-02-2023 12:30'), "")).toEqual('am Montag 02.01 um 12:30')
|
|
||||||
expect(createDateStringFromEvent(getTestDate('01-03-2023 12:30'), "")).toEqual('am Dienstag 03.01 um 12:30')
|
|
||||||
})
|
|
@ -1,28 +0,0 @@
|
|||||||
import { Collection, GuildMember, Role } from "discord.js"
|
|
||||||
import { filterRolesFromMemberUpdate } from "../../server/helper/roleFilter"
|
|
||||||
|
|
||||||
function buildFakeRole(id: string, name: string): Role {
|
|
||||||
return <Role>{ id, name }
|
|
||||||
|
|
||||||
}
|
|
||||||
test('filterRolesFromMemberUpdate', () => {
|
|
||||||
const oldMemberRoles: Collection<string, Role> = new Collection<string, Role>()
|
|
||||||
oldMemberRoles.set('1', buildFakeRole('01', 'Role01'))
|
|
||||||
oldMemberRoles.set('2', buildFakeRole('02', 'Role02'))
|
|
||||||
|
|
||||||
const newMemberRoles: Collection<string, Role> = new Collection<string, Role>()
|
|
||||||
newMemberRoles.set('1', buildFakeRole('01', 'Role01'))
|
|
||||||
newMemberRoles.set('2', buildFakeRole('02', 'Role02'))
|
|
||||||
newMemberRoles.set('3', buildFakeRole('03', 'Role03'))
|
|
||||||
|
|
||||||
const oldMember: GuildMember = <GuildMember>{ roles: { cache: oldMemberRoles }, guild: { id: "guildid" } }
|
|
||||||
const newMember: GuildMember = <GuildMember>{ roles: { cache: newMemberRoles }, guild: { id: "guildid" } }
|
|
||||||
const output = filterRolesFromMemberUpdate(oldMember, newMember)
|
|
||||||
|
|
||||||
const expectedAddedRoles: Collection<string, Role> = new Collection<string, Role>()
|
|
||||||
expectedAddedRoles.set('3', buildFakeRole('03', 'Role03'))
|
|
||||||
const expectedRemovedRoles: Collection<string, Role> = new Collection<string, Role>()
|
|
||||||
|
|
||||||
expect(output.addedRoles).toEqual(expectedAddedRoles)
|
|
||||||
expect(output.removedRoles).toEqual(expectedRemovedRoles)
|
|
||||||
})
|
|
Loading…
Reference in New Issue
Block a user