Fix media library date ordering
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 1m21s
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile.player, player, pulse-signage-player) (push) Successful in 35s

This commit is contained in:
lzstealth committed 2026-10-17 20:15:13 +01:00
1 parent eb724167bc
commit a5d73e75d3
3 files changed
+43 -3

No files matched your search

+39
View File
@@ -25,6 +25,45 @@ test('media library normalizes only media URLs', () => {
assert.equal(normalizeMediaPath('/assets/photo.png'), null);
});
test('media library sorts Date-valued creation timestamps chronologically', async () => {
const originalSyncMediaAssets = mediaLibrary.syncMediaAssetsFromDirectory;
const originalCountReferences = mediaLibrary.countMediaAssetReferences;
const assets = [
{ id: 1, original_name: 'October 14', media_type: 'image', file_size: 1, created_at: new Date('2026-10-14T12:00:00Z') },
{ id: 2, original_name: 'October 15', media_type: 'image', file_size: 1, created_at: new Date('2026-10-15T12:00:00Z') },
{ id: 3, original_name: 'October 17', media_type: 'image', file_size: 1, created_at: new Date('2026-10-17T12:00:00Z') }
];
const handlers = {};
mediaLibrary.syncMediaAssetsFromDirectory = async function () { return 0; };
mediaLibrary.countMediaAssetReferences = async function () { return 0; };
try {
registerMediaLibraryRoutes({
get(route, ...middleware) { handlers[route] = middleware.at(-1); },
post() {}
}, {
pool: { async query() { return [assets]; } },
pages: {},
upload: { single() { return function () {}; } },
uploadDir: os.tmpdir(),
requirePermission() { return function () {}; }
});
const response = { json(data) { this.data = data; } };
const next = function (error) { if (error) throw error; };
const request = { currentUser: { permissions: [] }, query: { offset: '0', limit: '24', sort: 'date-desc' } };
await handlers['/media-library/assets'](request, response, next);
assert.deepEqual(response.data.assets.map(asset => asset.original_name), ['October 17', 'October 15', 'October 14']);
request.query.sort = 'date-asc';
await handlers['/media-library/assets'](request, response, next);
assert.deepEqual(response.data.assets.map(asset => asset.original_name), ['October 14', 'October 15', 'October 17']);
} finally {
mediaLibrary.syncMediaAssetsFromDirectory = originalSyncMediaAssets;
mediaLibrary.countMediaAssetReferences = originalCountReferences;
}
});
test('media library optimizes large raster uploads in place', async () => {
const uploadDir = await fs.promises.mkdtemp(path.join(os.tmpdir(), 'pulse-media-optimize-'));
const filePath = path.join(uploadDir, 'large.jpg');