mirror of https://github.com/immich-app/immich.git
fix(server): Correctly set album start and end dates (#4698)
* fix(server): Correctly set album start and end dates Currently, the query that retrieves album assets uses `ORDER BY assets.fileCreatedAt DESC`, which makes the existing logic return the start/end dates reversed (with `startDate` being taken from the first asset in the array). Instead of using the index-based approach, this change iterates through assets to get the min/max `fileCreatedAt`. This will avoid any future issues, if the query ordering changes, or becomes customizable (e.g. in case the user prefers to visualize older assets first). * fix: Maintain constant cost and only swap variables if neededpull/4748/head
parent
87a0ba3db3
commit
b6f18cbe81
@ -0,0 +1,16 @@
|
||||
import { albumStub } from '@test';
|
||||
import { mapAlbum } from './album-response.dto';
|
||||
|
||||
describe('mapAlbum', () => {
|
||||
it('should set start and end dates', () => {
|
||||
const dto = mapAlbum(albumStub.twoAssets, false);
|
||||
expect(dto.startDate).toEqual(new Date('2023-02-22T05:06:29.716Z'));
|
||||
expect(dto.endDate).toEqual(new Date('2023-02-23T05:06:29.716Z'));
|
||||
});
|
||||
|
||||
it('should not set start and end dates for empty assets', () => {
|
||||
const dto = mapAlbum(albumStub.empty, false);
|
||||
expect(dto.startDate).toBeUndefined();
|
||||
expect(dto.endDate).toBeUndefined();
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue