diff --git a/.github/workflows/test-backend.yml b/.github/workflows/test-backend.yml index 03e517826..e2e20a747 100644 --- a/.github/workflows/test-backend.yml +++ b/.github/workflows/test-backend.yml @@ -127,6 +127,7 @@ jobs: if: ${{ needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.docker == 'true' }} needs: [files-changed, unit_test_backend] runs-on: ubuntu-latest + permissions: write-all continue-on-error: true steps: - name: Delete cache diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 02d65ba9e..46ed27d33 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -101,6 +101,7 @@ jobs: name: Cleanup needs: [docker_preparation, fullstack_tests] runs-on: ubuntu-latest + permissions: write-all continue-on-error: true steps: - name: Delete cache diff --git a/.github/workflows/test-webapp.yml b/.github/workflows/test-webapp.yml index 2b1e144a5..6a0bbf9e2 100644 --- a/.github/workflows/test-webapp.yml +++ b/.github/workflows/test-webapp.yml @@ -103,6 +103,7 @@ jobs: if: ${{ needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.webapp == 'true' }} needs: [files-changed, unit_test_webapp] runs-on: ubuntu-latest + permissions: write-all continue-on-error: true steps: - name: Delete cache diff --git a/backend/src/middleware/languages/languages.spec.ts b/backend/src/middleware/languages/languages.spec.ts index f4f57adc4..8daa311e1 100644 --- a/backend/src/middleware/languages/languages.spec.ts +++ b/backend/src/middleware/languages/languages.spec.ts @@ -131,4 +131,25 @@ describe('languagesMiddleware', () => { }, }) }) + + describe('detects no language', () => { + it('has default language', async () => { + variables = { + ...variables, + content: '', + } + await expect( + mutate({ + mutation: createPostMutation, + variables, + }), + ).resolves.toMatchObject({ + data: { + CreatePost: { + language: 'en', + }, + }, + }) + }) + }) }) diff --git a/backend/src/middleware/languages/languages.ts b/backend/src/middleware/languages/languages.ts index 83d4e424c..3c043ceec 100644 --- a/backend/src/middleware/languages/languages.ts +++ b/backend/src/middleware/languages/languages.ts @@ -1,20 +1,24 @@ import LanguageDetect from 'languagedetect' import { removeHtmlTags } from '../helpers/cleanHtml' -const setPostLanguage = (text) => { +const setPostLanguage = (text, defaultLanguage) => { const lngDetector = new LanguageDetect() lngDetector.setLanguageType('iso2') - return lngDetector.detect(removeHtmlTags(text), 1)[0][0] + let languages = lngDetector.detect(removeHtmlTags(text), 1) + if (!(Array.isArray(languages) && languages.length > 0)) { + languages = [[defaultLanguage, 1.0]] + } + return languages[0][0] } export default { Mutation: { CreatePost: async (resolve, root, args, context, info) => { - args.language = await setPostLanguage(args.content) + args.language = await setPostLanguage(args.content, context.user.locale) return resolve(root, args, context, info) }, UpdatePost: async (resolve, root, args, context, info) => { - args.language = await setPostLanguage(args.content) + args.language = await setPostLanguage(args.content, context.user.locale) return resolve(root, args, context, info) }, }, diff --git a/backend/src/schema/resolvers/embeds/scraper.ts b/backend/src/schema/resolvers/embeds/scraper.ts index bcaa6e462..79dd5a368 100644 --- a/backend/src/schema/resolvers/embeds/scraper.ts +++ b/backend/src/schema/resolvers/embeds/scraper.ts @@ -20,7 +20,6 @@ const metascraper = Metascraper([ require('metascraper-publisher')(), require('metascraper-title')(), require('metascraper-url')(), - require('metascraper-audio')(), require('metascraper-soundcloud')(), require('metascraper-video')(), require('metascraper-youtube')(), diff --git a/webapp/jsconfig.json b/webapp/jsconfig.json new file mode 100644 index 000000000..7e3695e4e --- /dev/null +++ b/webapp/jsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "~/*": [ + "./*" + ], + "~*": [ + "./*" + ], + } + } +} \ No newline at end of file