mirror of
https://github.com/samsonjs/immich.git
synced 2026-03-25 09:15:56 +00:00
feat: make progressive system config optional (#25486)
This commit is contained in:
parent
ccc0961ba3
commit
7e5592fec5
7 changed files with 38 additions and 10 deletions
Binary file not shown.
Binary file not shown.
|
|
@ -22625,6 +22625,7 @@
|
|||
]
|
||||
},
|
||||
"progressive": {
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"quality": {
|
||||
|
|
@ -22636,7 +22637,6 @@
|
|||
"required": [
|
||||
"enabled",
|
||||
"format",
|
||||
"progressive",
|
||||
"quality"
|
||||
],
|
||||
"type": "object"
|
||||
|
|
@ -22651,6 +22651,7 @@
|
|||
]
|
||||
},
|
||||
"progressive": {
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"quality": {
|
||||
|
|
@ -22665,7 +22666,6 @@
|
|||
},
|
||||
"required": [
|
||||
"format",
|
||||
"progressive",
|
||||
"quality",
|
||||
"size"
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1538,12 +1538,12 @@ export type SystemConfigFFmpegDto = {
|
|||
export type SystemConfigGeneratedFullsizeImageDto = {
|
||||
enabled: boolean;
|
||||
format: ImageFormat;
|
||||
progressive: boolean;
|
||||
progressive?: boolean;
|
||||
quality: number;
|
||||
};
|
||||
export type SystemConfigGeneratedImageDto = {
|
||||
format: ImageFormat;
|
||||
progressive: boolean;
|
||||
progressive?: boolean;
|
||||
quality: number;
|
||||
size: number;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -70,5 +70,33 @@ describe(SystemConfigController.name, () => {
|
|||
expect(body).toEqual(errorDto.badRequest(['nightlyTasks.databaseCleanup must be a boolean value']));
|
||||
});
|
||||
});
|
||||
|
||||
describe('image', () => {
|
||||
it('should accept config without optional progressive property', async () => {
|
||||
const config = _.cloneDeep(defaults);
|
||||
delete config.image.thumbnail.progressive;
|
||||
delete config.image.preview.progressive;
|
||||
delete config.image.fullsize.progressive;
|
||||
const { status } = await request(ctx.getHttpServer()).put('/system-config').send(config);
|
||||
expect(status).toBe(200);
|
||||
});
|
||||
|
||||
it('should accept config with progressive set to true', async () => {
|
||||
const config = _.cloneDeep(defaults);
|
||||
config.image.thumbnail.progressive = true;
|
||||
config.image.preview.progressive = true;
|
||||
config.image.fullsize.progressive = true;
|
||||
const { status } = await request(ctx.getHttpServer()).put('/system-config').send(config);
|
||||
expect(status).toBe(200);
|
||||
});
|
||||
|
||||
it('should reject invalid progressive value', async () => {
|
||||
const config = _.cloneDeep(defaults);
|
||||
(config.image.thumbnail.progressive as any) = 'invalid';
|
||||
const { status, body } = await request(ctx.getHttpServer()).put('/system-config').send(config);
|
||||
expect(status).toBe(400);
|
||||
expect(body).toEqual(errorDto.badRequest(['image.thumbnail.progressive must be a boolean value']));
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -586,8 +586,8 @@ class SystemConfigGeneratedImageDto {
|
|||
@ApiProperty({ type: 'integer' })
|
||||
size!: number;
|
||||
|
||||
@ValidateBoolean()
|
||||
progressive!: boolean;
|
||||
@ValidateBoolean({ optional: true, default: false })
|
||||
progressive?: boolean;
|
||||
}
|
||||
|
||||
class SystemConfigGeneratedFullsizeImageDto {
|
||||
|
|
@ -604,8 +604,8 @@ class SystemConfigGeneratedFullsizeImageDto {
|
|||
@ApiProperty({ type: 'integer' })
|
||||
quality!: number;
|
||||
|
||||
@ValidateBoolean()
|
||||
progressive!: boolean;
|
||||
@ValidateBoolean({ optional: true, default: false })
|
||||
progressive?: boolean;
|
||||
}
|
||||
|
||||
export class SystemConfigImageDto {
|
||||
|
|
|
|||
|
|
@ -36,14 +36,14 @@ export type FullsizeImageOptions = {
|
|||
format: ImageFormat;
|
||||
quality: number;
|
||||
enabled: boolean;
|
||||
progressive: boolean;
|
||||
progressive?: boolean;
|
||||
};
|
||||
|
||||
export type ImageOptions = {
|
||||
format: ImageFormat;
|
||||
quality: number;
|
||||
size: number;
|
||||
progressive: boolean;
|
||||
progressive?: boolean;
|
||||
};
|
||||
|
||||
export type RawImageInfo = {
|
||||
|
|
|
|||
Loading…
Reference in a new issue