@@ -11,8 +11,10 @@ import {
1111 getCompositorLayers ,
1212 getCompositorPreviewOverride ,
1313 hasCompositorLayers ,
14+ restoreCompositorLayers ,
1415 setCompositorLayers ,
15- setCompositorPreviewOverride
16+ setCompositorPreviewOverride ,
17+ snapshotCompositorLayers
1618} from './useCompositorLayers'
1719
1820const layerRef = { filename : 'a.png' , subfolder : '' , type : 'temp' }
@@ -97,6 +99,32 @@ describe('useCompositorLayers', () => {
9799 expect ( getCompositorBBoxes ( node ) ) . toBeUndefined ( )
98100 } )
99101
102+ it ( 'survives a workflow switch through snapshot and restore' , ( ) => {
103+ setCompositorLayers ( node , [ layerRef ] , [ 'hash-a' ] , [ bbox ] )
104+ const snapshot = snapshotCompositorLayers ( )
105+
106+ clearCompositorLayers ( node )
107+ expect ( hasCompositorLayers ( node ) ) . toBe ( false )
108+
109+ restoreCompositorLayers ( snapshot )
110+ expect ( getCompositorLayers ( node ) ) . toEqual ( [ layerRef ] )
111+ expect ( getCompositorInputsFingerprint ( node ) ) . toEqual ( [ 'hash-a' ] )
112+ expect ( getCompositorBBoxes ( node ) ) . toEqual ( [ bbox ] )
113+ } )
114+
115+ it ( 'restoring another workflow snapshot replaces the whole cache' , ( ) => {
116+ setCompositorLayers ( node , [ layerRef ] )
117+ const otherWorkflow = snapshotCompositorLayers ( )
118+ setCompositorLayers ( subgraphNode , [ layerRef ] )
119+
120+ restoreCompositorLayers ( otherWorkflow )
121+ expect ( hasCompositorLayers ( node ) ) . toBe ( true )
122+ expect ( hasCompositorLayers ( subgraphNode ) ) . toBe ( false )
123+
124+ restoreCompositorLayers ( undefined )
125+ expect ( hasCompositorLayers ( node ) ) . toBe ( false )
126+ } )
127+
100128 it ( 'stores, replaces and clears the preview override per node' , ( ) => {
101129 expect ( getCompositorPreviewOverride ( node ) ) . toBeUndefined ( )
102130 setCompositorPreviewOverride ( node , 'blob:first' )
0 commit comments