修复画布图层保存体积过大
画布布局不再写入图片base64正文 加载画布时从项目资源补回图层图片地址 补充大图素材保存布局回归测试
This commit is contained in:
@@ -1623,6 +1623,49 @@ describe('ImageCanvasEditorView', () => {
|
||||
expect(createEditorAssetMock).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('saves canvas layout without embedding image payloads in layer snapshots', async () => {
|
||||
loadEditorAssetLibraryMock.mockResolvedValueOnce({
|
||||
folders: [
|
||||
{
|
||||
folderId: 'project',
|
||||
label: '项目素材',
|
||||
sortOrder: 0,
|
||||
collapsed: false,
|
||||
systemDefault: true,
|
||||
},
|
||||
],
|
||||
assets: [
|
||||
{
|
||||
assetId: 'asset-data-heavy',
|
||||
folderId: 'project',
|
||||
label: '大图素材',
|
||||
imageSrc: 'data:image/png;base64,'.concat('a'.repeat(4000)),
|
||||
width: 1024,
|
||||
height: 768,
|
||||
sourceType: 'uploaded',
|
||||
},
|
||||
],
|
||||
});
|
||||
render(<ImageCanvasEditorView />);
|
||||
|
||||
await screen.findByRole('button', { name: '添加大图素材' });
|
||||
fireEvent.click(screen.getByRole('button', { name: '添加大图素材' }));
|
||||
|
||||
await waitFor(() => {
|
||||
expect(saveEditorProjectLayoutMock).toHaveBeenCalled();
|
||||
});
|
||||
const layoutCalls = saveEditorProjectLayoutMock.mock.calls;
|
||||
const lastLayout = layoutCalls.at(-1)?.[1];
|
||||
|
||||
expect(lastLayout.layers).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.not.objectContaining({
|
||||
src: expect.stringMatching(/^data:image/u),
|
||||
}),
|
||||
]),
|
||||
);
|
||||
});
|
||||
|
||||
it('adds an asset library image to the canvas with pointer dragging', async () => {
|
||||
await renderLoadedEditor();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user