perf: performance improvements 1
This commit is contained in:
+46
@@ -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);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user