mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Merge branch 'master' into import-no-cycle-refactor-events
This commit is contained in:
commit
1daa7e2ef4
@ -5,7 +5,7 @@ module.exports = {
|
|||||||
node: true,
|
node: true,
|
||||||
},
|
},
|
||||||
parser: '@typescript-eslint/parser',
|
parser: '@typescript-eslint/parser',
|
||||||
plugins: ['prettier', '@typescript-eslint', 'type-graphql', 'jest', 'import'],
|
plugins: ['prettier', '@typescript-eslint', 'type-graphql', 'jest', 'import', 'n'],
|
||||||
extends: [
|
extends: [
|
||||||
'standard',
|
'standard',
|
||||||
'eslint:recommended',
|
'eslint:recommended',
|
||||||
@ -101,6 +101,45 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
'import/prefer-default-export': 'off', // TODO
|
'import/prefer-default-export': 'off', // TODO
|
||||||
|
// n
|
||||||
|
'n/handle-callback-err': 'error',
|
||||||
|
'n/no-callback-literal': 'error',
|
||||||
|
'n/no-exports-assign': 'error',
|
||||||
|
'n/no-extraneous-import': 'error',
|
||||||
|
'n/no-extraneous-require': 'error',
|
||||||
|
'n/no-hide-core-modules': 'error',
|
||||||
|
'n/no-missing-import': 'off', // not compatible with typescript
|
||||||
|
'n/no-missing-require': 'error',
|
||||||
|
'n/no-new-require': 'error',
|
||||||
|
'n/no-path-concat': 'error',
|
||||||
|
'n/no-process-exit': 'error',
|
||||||
|
'n/no-unpublished-bin': 'error',
|
||||||
|
'n/no-unpublished-import': 'off', // TODO need to exclude seeds
|
||||||
|
'n/no-unpublished-require': 'error',
|
||||||
|
'n/no-unsupported-features': ['error', { ignores: ['modules'] }],
|
||||||
|
'n/no-unsupported-features/es-builtins': 'error',
|
||||||
|
'n/no-unsupported-features/es-syntax': 'error',
|
||||||
|
'n/no-unsupported-features/node-builtins': 'error',
|
||||||
|
'n/process-exit-as-throw': 'error',
|
||||||
|
'n/shebang': 'error',
|
||||||
|
'n/callback-return': 'error',
|
||||||
|
'n/exports-style': 'error',
|
||||||
|
'n/file-extension-in-import': 'off',
|
||||||
|
'n/global-require': 'error',
|
||||||
|
'n/no-mixed-requires': 'error',
|
||||||
|
'n/no-process-env': 'error',
|
||||||
|
'n/no-restricted-import': 'error',
|
||||||
|
'n/no-restricted-require': 'error',
|
||||||
|
'n/no-sync': 'error',
|
||||||
|
'n/prefer-global/buffer': 'error',
|
||||||
|
'n/prefer-global/console': 'error',
|
||||||
|
'n/prefer-global/process': 'error',
|
||||||
|
'n/prefer-global/text-decoder': 'error',
|
||||||
|
'n/prefer-global/text-encoder': 'error',
|
||||||
|
'n/prefer-global/url': 'error',
|
||||||
|
'n/prefer-global/url-search-params': 'error',
|
||||||
|
'n/prefer-promises/dns': 'error',
|
||||||
|
'n/prefer-promises/fs': 'error',
|
||||||
},
|
},
|
||||||
overrides: [
|
overrides: [
|
||||||
// only for ts files
|
// only for ts files
|
||||||
|
|||||||
@ -22,10 +22,12 @@ module.exports = {
|
|||||||
'@repository/(.*)': '<rootDir>/src/typeorm/repository/$1',
|
'@repository/(.*)': '<rootDir>/src/typeorm/repository/$1',
|
||||||
'@test/(.*)': '<rootDir>/test/$1',
|
'@test/(.*)': '<rootDir>/test/$1',
|
||||||
'@entity/(.*)':
|
'@entity/(.*)':
|
||||||
|
// eslint-disable-next-line n/no-process-env
|
||||||
process.env.NODE_ENV === 'development'
|
process.env.NODE_ENV === 'development'
|
||||||
? '<rootDir>/../database/entity/$1'
|
? '<rootDir>/../database/entity/$1'
|
||||||
: '<rootDir>/../database/build/entity/$1',
|
: '<rootDir>/../database/build/entity/$1',
|
||||||
'@dbTools/(.*)':
|
'@dbTools/(.*)':
|
||||||
|
// eslint-disable-next-line n/no-process-env
|
||||||
process.env.NODE_ENV === 'development'
|
process.env.NODE_ENV === 'development'
|
||||||
? '<rootDir>/../database/src/$1'
|
? '<rootDir>/../database/src/$1'
|
||||||
: '<rootDir>/../database/build/src/$1',
|
: '<rootDir>/../database/build/src/$1',
|
||||||
|
|||||||
@ -65,6 +65,7 @@
|
|||||||
"eslint-import-resolver-typescript": "^3.5.3",
|
"eslint-import-resolver-typescript": "^3.5.3",
|
||||||
"eslint-plugin-import": "^2.27.5",
|
"eslint-plugin-import": "^2.27.5",
|
||||||
"eslint-plugin-jest": "^27.2.1",
|
"eslint-plugin-jest": "^27.2.1",
|
||||||
|
"eslint-plugin-n": "^15.6.1",
|
||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
"eslint-plugin-prettier": "^3.4.0",
|
"eslint-plugin-prettier": "^3.4.0",
|
||||||
"eslint-plugin-promise": "^5.1.0",
|
"eslint-plugin-promise": "^5.1.0",
|
||||||
@ -84,5 +85,8 @@
|
|||||||
"ignore": [
|
"ignore": [
|
||||||
"**/*.test.ts"
|
"**/*.test.ts"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
// ATTENTION: DO NOT PUT ANY SECRETS IN HERE (or the .env)
|
// ATTENTION: DO NOT PUT ANY SECRETS IN HERE (or the .env)
|
||||||
|
/* eslint-disable n/no-process-env */
|
||||||
|
|
||||||
import { Decimal } from 'decimal.js-light'
|
import { Decimal } from 'decimal.js-light'
|
||||||
import dotenv from 'dotenv'
|
import dotenv from 'dotenv'
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||||
|
|
||||||
// config
|
|
||||||
import CONFIG from './config'
|
import CONFIG from './config'
|
||||||
import { startValidateCommunities } from './federation/validateCommunities'
|
import { startValidateCommunities } from './federation/validateCommunities'
|
||||||
import createServer from './server/createServer'
|
import createServer from './server/createServer'
|
||||||
@ -22,5 +20,5 @@ async function main() {
|
|||||||
main().catch((e) => {
|
main().catch((e) => {
|
||||||
// eslint-disable-next-line no-console
|
// eslint-disable-next-line no-console
|
||||||
console.error(e)
|
console.error(e)
|
||||||
process.exit(1)
|
throw e
|
||||||
})
|
})
|
||||||
|
|||||||
@ -28,6 +28,7 @@ export const klicktippNewsletterStateMiddleware: MiddlewareFn = async (
|
|||||||
{ root, args, context, info },
|
{ root, args, context, info },
|
||||||
next,
|
next,
|
||||||
) => {
|
) => {
|
||||||
|
// eslint-disable-next-line n/callback-return
|
||||||
const result = await next()
|
const result = await next()
|
||||||
let klickTipp = new KlickTipp({ status: 'Unsubscribed' })
|
let klickTipp = new KlickTipp({ status: 'Unsubscribed' })
|
||||||
if (CONFIG.KLICKTIPP) {
|
if (CONFIG.KLICKTIPP) {
|
||||||
|
|||||||
@ -61,6 +61,7 @@ ${JSON.stringify(requestContext.response.errors, null, 2)}`)
|
|||||||
}
|
}
|
||||||
|
|
||||||
const plugins =
|
const plugins =
|
||||||
|
// eslint-disable-next-line n/no-process-env
|
||||||
process.env.NODE_ENV === 'development' ? [setHeadersPlugin] : [setHeadersPlugin, logPlugin]
|
process.env.NODE_ENV === 'development' ? [setHeadersPlugin] : [setHeadersPlugin, logPlugin]
|
||||||
|
|
||||||
export default plugins
|
export default plugins
|
||||||
|
|||||||
@ -1998,6 +1998,13 @@ buffer@^6.0.3:
|
|||||||
base64-js "^1.3.1"
|
base64-js "^1.3.1"
|
||||||
ieee754 "^1.2.1"
|
ieee754 "^1.2.1"
|
||||||
|
|
||||||
|
builtins@^5.0.1:
|
||||||
|
version "5.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9"
|
||||||
|
integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==
|
||||||
|
dependencies:
|
||||||
|
semver "^7.0.0"
|
||||||
|
|
||||||
busboy@^0.3.1:
|
busboy@^0.3.1:
|
||||||
version "0.3.1"
|
version "0.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b"
|
resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b"
|
||||||
@ -2937,6 +2944,14 @@ eslint-plugin-es@^3.0.0:
|
|||||||
eslint-utils "^2.0.0"
|
eslint-utils "^2.0.0"
|
||||||
regexpp "^3.0.0"
|
regexpp "^3.0.0"
|
||||||
|
|
||||||
|
eslint-plugin-es@^4.1.0:
|
||||||
|
version "4.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9"
|
||||||
|
integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==
|
||||||
|
dependencies:
|
||||||
|
eslint-utils "^2.0.0"
|
||||||
|
regexpp "^3.0.0"
|
||||||
|
|
||||||
eslint-plugin-import@^2.27.5:
|
eslint-plugin-import@^2.27.5:
|
||||||
version "2.27.5"
|
version "2.27.5"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65"
|
||||||
@ -2965,6 +2980,20 @@ eslint-plugin-jest@^27.2.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/utils" "^5.10.0"
|
"@typescript-eslint/utils" "^5.10.0"
|
||||||
|
|
||||||
|
eslint-plugin-n@^15.6.1:
|
||||||
|
version "15.6.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.6.1.tgz#f7e77f24abb92a550115cf11e29695da122c398c"
|
||||||
|
integrity sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==
|
||||||
|
dependencies:
|
||||||
|
builtins "^5.0.1"
|
||||||
|
eslint-plugin-es "^4.1.0"
|
||||||
|
eslint-utils "^3.0.0"
|
||||||
|
ignore "^5.1.1"
|
||||||
|
is-core-module "^2.11.0"
|
||||||
|
minimatch "^3.1.2"
|
||||||
|
resolve "^1.22.1"
|
||||||
|
semver "^7.3.8"
|
||||||
|
|
||||||
eslint-plugin-node@^11.1.0:
|
eslint-plugin-node@^11.1.0:
|
||||||
version "11.1.0"
|
version "11.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d"
|
||||||
@ -6300,7 +6329,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.2.0, semver@^6.3.0:
|
|||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
||||||
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
||||||
|
|
||||||
semver@^7.3.7:
|
semver@^7.0.0, semver@^7.3.7, semver@^7.3.8:
|
||||||
version "7.3.8"
|
version "7.3.8"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
|
||||||
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
|
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
|
||||||
|
|||||||
@ -6,12 +6,15 @@ const localVue = global.localVue
|
|||||||
const propsData = {
|
const propsData = {
|
||||||
link: '',
|
link: '',
|
||||||
}
|
}
|
||||||
|
const mocks = {
|
||||||
|
$t: jest.fn((t) => t),
|
||||||
|
}
|
||||||
|
|
||||||
describe('FigureQrCode', () => {
|
describe('FigureQrCode', () => {
|
||||||
let wrapper
|
let wrapper
|
||||||
|
|
||||||
const Wrapper = () => {
|
const Wrapper = () => {
|
||||||
return mount(FigureQrCode, { localVue, propsData })
|
return mount(FigureQrCode, { localVue, mocks, propsData })
|
||||||
}
|
}
|
||||||
|
|
||||||
describe('mount', () => {
|
describe('mount', () => {
|
||||||
@ -19,12 +22,55 @@ describe('FigureQrCode', () => {
|
|||||||
wrapper = Wrapper()
|
wrapper = Wrapper()
|
||||||
})
|
})
|
||||||
|
|
||||||
it('renders the Div Element ".figure-qr-code"', () => {
|
afterEach(() => {
|
||||||
expect(wrapper.find('div.figure-qr-code').exists()).toBeTruthy()
|
jest.clearAllMocks()
|
||||||
})
|
})
|
||||||
|
|
||||||
it('renders the Div Element "q-r-canvas"', () => {
|
it('has options filled', () => {
|
||||||
expect(wrapper.find('q-r-canvas'))
|
expect(wrapper.vm.options).toEqual({
|
||||||
|
cellSize: 8,
|
||||||
|
correctLevel: 'H',
|
||||||
|
data: '',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('renders the Div Element ".figure-qr-code"', () => {
|
||||||
|
expect(wrapper.find('div.figure-qr-code').exists()).toBe(true)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('renders the Div Element "qrbox"', () => {
|
||||||
|
expect(wrapper.find('div.qrbox').exists()).toBe(true)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('renders the Canvas Element "#qrcanvas"', () => {
|
||||||
|
const canvas = wrapper.find('#qrcanvas')
|
||||||
|
|
||||||
|
expect(canvas.exists()).toBe(true)
|
||||||
|
const canvasEl = canvas.element
|
||||||
|
const canvasWidth = canvasEl.width
|
||||||
|
const canvasHeight = canvasEl.height
|
||||||
|
|
||||||
|
expect(canvasWidth).toBeGreaterThan(0)
|
||||||
|
expect(canvasHeight).toBeGreaterThan(0)
|
||||||
|
|
||||||
|
const canvasContext = canvasEl.toDataURL('image/png')
|
||||||
|
expect(canvasContext).not.toBeNull()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('renders the A Element "#download"', () => {
|
||||||
|
const downloadLink = wrapper.find('#download')
|
||||||
|
expect(downloadLink.exists()).toBe(true)
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('Download QR-Code link', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
const downloadLink = wrapper.find('#download')
|
||||||
|
downloadLink.trigger('click')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('click the A Element "#download" set an href', () => {
|
||||||
|
expect(wrapper.find('#download').attributes('href')).toEqual('data:image/png;base64,00')
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,7 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="figure-qr-code">
|
<div class="figure-qr-code">
|
||||||
<div class="qrbox">
|
<div class="qrbox">
|
||||||
<q-r-canvas :options="options" class="canvas" />
|
<div>
|
||||||
|
<q-r-canvas :options="options" class="canvas mb-3" id="qrcanvas" ref="canvas" />
|
||||||
|
</div>
|
||||||
|
<a
|
||||||
|
id="download"
|
||||||
|
ref="download"
|
||||||
|
download="GradidoLinkQRCode.png"
|
||||||
|
href=""
|
||||||
|
@click="downloadImg(this)"
|
||||||
|
>
|
||||||
|
{{ $t('download') }}
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -37,6 +48,13 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
methods: {
|
||||||
|
downloadImg() {
|
||||||
|
const canvas = this.$refs.canvas.$el
|
||||||
|
const image = canvas.toDataURL('image/png')
|
||||||
|
this.$refs.download.href = image
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@ -100,6 +100,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"delete": "Löschen",
|
"delete": "Löschen",
|
||||||
|
"download": "Herunterladen",
|
||||||
"edit": "bearbeiten",
|
"edit": "bearbeiten",
|
||||||
"em-dash": "—",
|
"em-dash": "—",
|
||||||
"error": {
|
"error": {
|
||||||
|
|||||||
@ -100,6 +100,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"delete": "Delete",
|
"delete": "Delete",
|
||||||
|
"download": "Download",
|
||||||
"edit": "edit",
|
"edit": "edit",
|
||||||
"em-dash": "—",
|
"em-dash": "—",
|
||||||
"error": {
|
"error": {
|
||||||
|
|||||||
@ -88,6 +88,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"delete": "Supprimer",
|
"delete": "Supprimer",
|
||||||
|
"download": "Télécharger",
|
||||||
"edit": "modifier",
|
"edit": "modifier",
|
||||||
"em-dash": "—",
|
"em-dash": "—",
|
||||||
"error": {
|
"error": {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user