perf: performance improvements 1

This commit is contained in:
2026-07-14 01:34:33 +02:00
parent edc4d935d8
commit 59dfd2de85
27 changed files with 762 additions and 94 deletions
@@ -0,0 +1,46 @@
import { shouldHydrateInlineImageForVisibility, shouldHydratePlayableMediaForVisibility } from './attachment-hydration-visibility.rules';
const diskBackedImage = {
available: false,
filename: 'photo.png',
id: 'att-1',
isImage: true,
mime: 'image/png',
savedPath: '/appdata/photo.png'
};
const diskBackedVideo = {
available: false,
mime: 'video/mp4',
savedPath: '/appdata/clip.mp4'
};
describe('attachment hydration visibility rules', () => {
it('hydrates a disk-backed image only when the message is visible', () => {
expect(shouldHydrateInlineImageForVisibility(diskBackedImage, true)).toBe(true);
expect(shouldHydrateInlineImageForVisibility(diskBackedImage, false)).toBe(false);
});
it('never hydrates an image that is already displayable', () => {
const displayable = {
...diskBackedImage,
available: true,
objectUrl: 'blob:http://localhost/abc'
};
expect(shouldHydrateInlineImageForVisibility(displayable, true)).toBe(false);
});
it('hydrates disk-backed playable media only when the message is visible', () => {
expect(shouldHydratePlayableMediaForVisibility(diskBackedVideo, true)).toBe(true);
expect(shouldHydratePlayableMediaForVisibility(diskBackedVideo, false)).toBe(false);
});
it('never hydrates media that already has an object URL', () => {
const hydrated = {
...diskBackedVideo,
objectUrl: 'blob:http://localhost/def'
};
expect(shouldHydratePlayableMediaForVisibility(hydrated, true)).toBe(false);
});
});