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 dynamicAndStaticConfig = {
...dynamicConfig,
...staticConfig,
};
const dynamicAndStaticConfig = Object.assign(dynamicConfig, staticConfig);
renderObject(response, dynamicAndStaticConfig);
};

View File

@@ -10,7 +10,7 @@ describe('GET /api/v1/automatisch/config', () => {
it('should return Automatisch config', async () => {
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
const logoConfig = await updateConfig({
const config = await updateConfig({
logoSvgData: '<svg>Sample</svg>',
palettePrimaryDark: '#001f52',
palettePrimaryLight: '#4286FF',
@@ -22,9 +22,9 @@ describe('GET /api/v1/automatisch/config', () => {
.get('/api/v1/automatisch/config')
.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 () => {

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

View File

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