feat(serializers): add config serializer

This commit is contained in:
Ali BARIN
2024-09-20 11:21:47 +00:00
parent c554fff048
commit e7d1f26034
5 changed files with 28 additions and 8 deletions

View File

@@ -13,10 +13,7 @@ export default async (request, response) => {
const dynamicConfig = await Config.get(); const dynamicConfig = await Config.get();
const dynamicAndStaticConfig = { const dynamicAndStaticConfig = Object.assign(dynamicConfig, staticConfig);
...dynamicConfig,
...staticConfig,
};
renderObject(response, dynamicAndStaticConfig); renderObject(response, dynamicAndStaticConfig);
}; };

View File

@@ -10,7 +10,7 @@ describe('GET /api/v1/automatisch/config', () => {
it('should return Automatisch config', async () => { it('should return Automatisch config', async () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true); vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
const logoConfig = await updateConfig({ const config = await updateConfig({
logoSvgData: '<svg>Sample</svg>', logoSvgData: '<svg>Sample</svg>',
palettePrimaryDark: '#001f52', palettePrimaryDark: '#001f52',
palettePrimaryLight: '#4286FF', palettePrimaryLight: '#4286FF',
@@ -22,9 +22,9 @@ describe('GET /api/v1/automatisch/config', () => {
.get('/api/v1/automatisch/config') .get('/api/v1/automatisch/config')
.expect(200); .expect(200);
const expectedPayload = configMock(logoConfig); const expectedPayload = configMock(config);
expect(response.body).toEqual(expectedPayload); expect(response.body).toStrictEqual(expectedPayload);
}); });
it('should return additional environment variables', async () => { it('should return additional environment variables', async () => {

View File

@@ -0,0 +1,17 @@
const configSerializer = (config) => {
return {
id: config.id,
updatedAt: config.updatedAt.getTime(),
createdAt: config.createdAt.getTime(),
disableFavicon: config.disableFavicon,
disableNotificationsPage: config.disableNotificationsPage,
logoSvgData: config.logoSvgData,
palettePrimaryDark: config.palettePrimaryDark,
palettePrimaryMain: config.palettePrimaryMain,
palettePrimaryLight: config.palettePrimaryLight,
installationCompleted: config.installationCompleted,
title: config.title,
};
};
export default configSerializer;

View File

@@ -17,6 +17,7 @@ import executionSerializer from './execution.js';
import executionStepSerializer from './execution-step.js'; import executionStepSerializer from './execution-step.js';
import subscriptionSerializer from './subscription.ee.js'; import subscriptionSerializer from './subscription.ee.js';
import adminUserSerializer from './admin/user.js'; import adminUserSerializer from './admin/user.js';
import configSerializer from './config.js';
const serializers = { const serializers = {
AdminUser: adminUserSerializer, AdminUser: adminUserSerializer,
@@ -38,6 +39,7 @@ const serializers = {
Execution: executionSerializer, Execution: executionSerializer,
ExecutionStep: executionStepSerializer, ExecutionStep: executionStepSerializer,
Subscription: subscriptionSerializer, Subscription: subscriptionSerializer,
Config: configSerializer,
}; };
export default serializers; export default serializers;

View File

@@ -1,12 +1,16 @@
const configMock = (config) => { const configMock = (config) => {
return { return {
data: { data: {
id: config.id,
updatedAt: config.updatedAt.getTime(),
createdAt: config.createdAt.getTime(),
disableFavicon: false, disableFavicon: false,
disableNotificationsPage: false, disableNotificationsPage: false,
logoSvgData: config.logoSvgData, logoSvgData: config.logoSvgData,
palettePrimaryDark: config.palettePrimaryDark, palettePrimaryDark: config.palettePrimaryDark,
palettePrimaryMain: config.palettePrimaryMain, palettePrimaryMain: config.palettePrimaryMain,
palettePrimaryLight: config.palettePrimaryLight, palettePrimaryLight: config.palettePrimaryLight,
installationCompleted: config.installationCompleted || false,
title: config.title, title: config.title,
}, },
meta: { meta: {
@@ -14,7 +18,7 @@ const configMock = (config) => {
currentPage: null, currentPage: null,
isArray: false, isArray: false,
totalPages: null, totalPages: null,
type: 'Object', type: 'Config',
}, },
}; };
}; };