From f14f5a7422f005b6ab77463db47ded38bb8627f3 Mon Sep 17 00:00:00 2001 From: abdou6666 Date: Mon, 30 Dec 2024 16:46:22 +0100 Subject: [PATCH] fix: getDefaultLanguage --- api/src/config/index.ts | 6 ++++-- api/src/i18n/services/language.service.ts | 14 ++++++++++++-- api/src/user/controllers/auth.controller.spec.ts | 8 ++++++-- api/src/user/controllers/user.controller.spec.ts | 10 +++++++--- api/src/user/services/invitation.service.spec.ts | 6 +++++- .../user/services/passwordReset.service.spec.ts | 6 +++++- .../user/services/validate-account.service.spec.ts | 6 +++++- 7 files changed, 44 insertions(+), 12 deletions(-) diff --git a/api/src/config/index.ts b/api/src/config/index.ts index 9a9936b6..abba4b5a 100644 --- a/api/src/config/index.ts +++ b/api/src/config/index.ts @@ -73,7 +73,7 @@ export const config: Config = { grant3rdPartyCookie: true, onlyAllowOrigins: process.env.FRONTEND_ORIGIN ? process.env.FRONTEND_ORIGIN.split(',').map((origin) => origin.trim()) - : [undefined], // ['http://example.com', 'https://example.com'], + : [], // ['http://example.com', 'https://example.com'], }, session: { secret: process.env.SESSION_SECRET || 'changeme', @@ -91,7 +91,9 @@ export const config: Config = { emails: { isEnabled: process.env.EMAIL_SMTP_ENABLED === 'true' || false, smtp: { - port: parseInt(process.env.EMAIL_SMTP_PORT) || 25, + port: process.env.EMAIL_SMTP_PORT + ? parseInt(process.env.EMAIL_SMTP_PORT) + : 25, host: process.env.EMAIL_SMTP_HOST || 'localhost', ignoreTLS: false, secure: process.env.EMAIL_SMTP_SECURE === 'true' || false, diff --git a/api/src/i18n/services/language.service.ts b/api/src/i18n/services/language.service.ts index 4b532101..7fbeeb70 100644 --- a/api/src/i18n/services/language.service.ts +++ b/api/src/i18n/services/language.service.ts @@ -7,7 +7,11 @@ */ import { CACHE_MANAGER } from '@nestjs/cache-manager'; -import { Inject, Injectable } from '@nestjs/common'; +import { + Inject, + Injectable, + InternalServerErrorException, +} from '@nestjs/common'; import { Cache } from 'cache-manager'; import { @@ -53,7 +57,13 @@ export class LanguageService extends BaseService { */ @Cacheable(DEFAULT_LANGUAGE_CACHE_KEY) async getDefaultLanguage() { - return await this.findOne({ isDefault: true }); + const defaultLanguage = await this.findOne({ isDefault: true }); + if (!defaultLanguage) { + throw new InternalServerErrorException( + 'Default language not found: getDefaultLanguage()', + ); + } + return defaultLanguage; } /** diff --git a/api/src/user/controllers/auth.controller.spec.ts b/api/src/user/controllers/auth.controller.spec.ts index 706de31f..5b3ca462 100644 --- a/api/src/user/controllers/auth.controller.spec.ts +++ b/api/src/user/controllers/auth.controller.spec.ts @@ -28,6 +28,7 @@ import { I18nService } from '@/i18n/services/i18n.service'; import { LanguageService } from '@/i18n/services/language.service'; import { LoggerService } from '@/logger/logger.service'; import { getRandom } from '@/utils/helpers/safeRandom'; +import { installLanguageFixtures } from '@/utils/test/fixtures/language'; import { installUserFixtures } from '@/utils/test/fixtures/user'; import { closeInMongodConnection, @@ -43,7 +44,7 @@ import { RoleRepository } from '../repositories/role.repository'; import { UserRepository } from '../repositories/user.repository'; import { InvitationModel } from '../schemas/invitation.schema'; import { PermissionModel } from '../schemas/permission.schema'; -import { RoleModel, Role } from '../schemas/role.schema'; +import { Role, RoleModel } from '../schemas/role.schema'; import { UserModel } from '../schemas/user.schema'; import { InvitationService } from '../services/invitation.service'; import { PermissionService } from '../services/permission.service'; @@ -66,7 +67,10 @@ describe('AuthController', () => { const module: TestingModule = await Test.createTestingModule({ controllers: [LocalAuthController], imports: [ - rootMongooseTestModule(installUserFixtures), + rootMongooseTestModule(async () => { + await installLanguageFixtures(); + await installUserFixtures(); + }), MongooseModule.forFeature([ UserModel, RoleModel, diff --git a/api/src/user/controllers/user.controller.spec.ts b/api/src/user/controllers/user.controller.spec.ts index d7b6504f..041d8e27 100644 --- a/api/src/user/controllers/user.controller.spec.ts +++ b/api/src/user/controllers/user.controller.spec.ts @@ -25,6 +25,7 @@ import { I18nService } from '@/i18n/services/i18n.service'; import { LanguageService } from '@/i18n/services/language.service'; import { LoggerService } from '@/logger/logger.service'; import { IGNORED_TEST_FIELDS } from '@/utils/test/constants'; +import { installLanguageFixtures } from '@/utils/test/fixtures/language'; import { installPermissionFixtures } from '@/utils/test/fixtures/permission'; import { getUserFixtures, userFixtures } from '@/utils/test/fixtures/user'; import { getPageQuery } from '@/utils/test/pagination'; @@ -45,8 +46,8 @@ import { RoleRepository } from '../repositories/role.repository'; import { UserRepository } from '../repositories/user.repository'; import { InvitationModel } from '../schemas/invitation.schema'; import { PermissionModel } from '../schemas/permission.schema'; -import { RoleModel, Role } from '../schemas/role.schema'; -import { UserModel, User } from '../schemas/user.schema'; +import { Role, RoleModel } from '../schemas/role.schema'; +import { User, UserModel } from '../schemas/user.schema'; import { PasswordResetService } from '../services/passwordReset.service'; import { PermissionService } from '../services/permission.service'; import { RoleService } from '../services/role.service'; @@ -71,7 +72,10 @@ describe('UserController', () => { const module: TestingModule = await Test.createTestingModule({ controllers: [ReadWriteUserController], imports: [ - rootMongooseTestModule(installPermissionFixtures), + rootMongooseTestModule(async () => { + await installLanguageFixtures(); + await installPermissionFixtures(); + }), MongooseModule.forFeature([ UserModel, RoleModel, diff --git a/api/src/user/services/invitation.service.spec.ts b/api/src/user/services/invitation.service.spec.ts index e15a2c11..003f605a 100644 --- a/api/src/user/services/invitation.service.spec.ts +++ b/api/src/user/services/invitation.service.spec.ts @@ -25,6 +25,7 @@ import { installInvitationFixtures, invitationsFixtures, } from '@/utils/test/fixtures/invitation'; +import { installLanguageFixtures } from '@/utils/test/fixtures/language'; import { closeInMongodConnection, rootMongooseTestModule, @@ -53,7 +54,10 @@ describe('InvitationService', () => { beforeAll(async () => { const module: TestingModule = await Test.createTestingModule({ imports: [ - rootMongooseTestModule(installInvitationFixtures), + rootMongooseTestModule(async () => { + await installLanguageFixtures(); + await installInvitationFixtures(); + }), MongooseModule.forFeature([ RoleModel, PermissionModel, diff --git a/api/src/user/services/passwordReset.service.spec.ts b/api/src/user/services/passwordReset.service.spec.ts index 0ab45ca3..cdef472a 100644 --- a/api/src/user/services/passwordReset.service.spec.ts +++ b/api/src/user/services/passwordReset.service.spec.ts @@ -25,6 +25,7 @@ import { LanguageModel } from '@/i18n/schemas/language.schema'; import { I18nService } from '@/i18n/services/i18n.service'; import { LanguageService } from '@/i18n/services/language.service'; import { LoggerService } from '@/logger/logger.service'; +import { installLanguageFixtures } from '@/utils/test/fixtures/language'; import { installUserFixtures, users } from '@/utils/test/fixtures/user'; import { closeInMongodConnection, @@ -49,7 +50,10 @@ describe('PasswordResetService', () => { beforeAll(async () => { const module: TestingModule = await Test.createTestingModule({ imports: [ - rootMongooseTestModule(installUserFixtures), + rootMongooseTestModule(async () => { + await installLanguageFixtures(); + await installUserFixtures(); + }), MongooseModule.forFeature([ UserModel, RoleModel, diff --git a/api/src/user/services/validate-account.service.spec.ts b/api/src/user/services/validate-account.service.spec.ts index b3ca7753..ac3b2ae9 100644 --- a/api/src/user/services/validate-account.service.spec.ts +++ b/api/src/user/services/validate-account.service.spec.ts @@ -22,6 +22,7 @@ import { LanguageModel } from '@/i18n/schemas/language.schema'; import { I18nService } from '@/i18n/services/i18n.service'; import { LanguageService } from '@/i18n/services/language.service'; import { LoggerService } from '@/logger/logger.service'; +import { installLanguageFixtures } from '@/utils/test/fixtures/language'; import { installUserFixtures, users } from '@/utils/test/fixtures/user'; import { closeInMongodConnection, @@ -44,7 +45,10 @@ describe('ValidateAccountService', () => { beforeAll(async () => { const module: TestingModule = await Test.createTestingModule({ imports: [ - rootMongooseTestModule(installUserFixtures), + rootMongooseTestModule(async () => { + await installLanguageFixtures(); + await installUserFixtures(); + }), MongooseModule.forFeature([ UserModel, RoleModel,