@@ -225,6 +225,7 @@ describe('App', () => {
225225 renderAppWithOptionalData ( {
226226 comparison : {
227227 height : DEFAULT_PLOT_HEIGHT ,
228+ multiPlotValues : { } ,
228229 plots : [
229230 {
230231 path : 'training/plots/images/misclassified.jpg' ,
@@ -279,6 +280,7 @@ describe('App', () => {
279280 renderAppWithOptionalData ( {
280281 comparison : {
281282 height : DEFAULT_PLOT_HEIGHT ,
283+ multiPlotValues : { } ,
282284 plots : [
283285 {
284286 path : 'training/plots/images/image' ,
@@ -1757,6 +1759,25 @@ describe('App', () => {
17571759
17581760 const workspaceImgs =
17591761 comparisonTableFixture . plots [ 3 ] . revisions . workspace . imgs
1762+ const multiImgPlots = screen . getAllByTestId ( 'multi-image-cell' )
1763+ const slider = within ( multiImgPlots [ 0 ] ) . getByRole ( 'slider' )
1764+ const workspaceImgEl = within ( multiImgPlots [ 0 ] ) . getByRole ( 'img' )
1765+
1766+ expect ( workspaceImgEl ) . toHaveAttribute ( 'src' , workspaceImgs [ 0 ] . url )
1767+
1768+ fireEvent . change ( slider , { target : { value : 3 } } )
1769+
1770+ expect ( workspaceImgEl ) . toHaveAttribute ( 'src' , workspaceImgs [ 3 ] . url )
1771+ } )
1772+
1773+ it ( 'should send a message when the slider changes' , async ( ) => {
1774+ renderAppWithOptionalData ( {
1775+ comparison : comparisonTableFixture
1776+ } )
1777+
1778+ const multiImg = comparisonTableFixture . plots [ 3 ]
1779+ const workspacePlot = multiImg . revisions . workspace
1780+ const workspaceImgs = workspacePlot . imgs
17601781
17611782 const multiImgPlots = screen . getAllByTestId ( 'multi-image-cell' )
17621783 const slider = within ( multiImgPlots [ 0 ] ) . getByRole ( 'slider' )
@@ -1766,6 +1787,34 @@ describe('App', () => {
17661787
17671788 fireEvent . change ( slider , { target : { value : 3 } } )
17681789
1790+ await waitFor (
1791+ ( ) => {
1792+ expect ( mockPostMessage ) . toHaveBeenCalledWith ( {
1793+ payload : {
1794+ path : multiImg . path ,
1795+ revision : workspacePlot . id ,
1796+ value : 3
1797+ } ,
1798+ type : MessageFromWebviewType . SET_COMPARISON_MULTI_PLOT_VALUE
1799+ } )
1800+ } ,
1801+ { timeout : 1000 }
1802+ )
1803+ } )
1804+
1805+ it ( 'should set default slider value if given a saved value' , ( ) => {
1806+ const multiImg = comparisonTableFixture . plots [ 3 ]
1807+ renderAppWithOptionalData ( {
1808+ comparison : {
1809+ ...comparisonTableFixture ,
1810+ multiPlotValues : { workspace : { [ multiImg . path ] : 3 } }
1811+ }
1812+ } )
1813+
1814+ const workspaceImgs = multiImg . revisions . workspace . imgs
1815+ const multiImgPlots = screen . getAllByTestId ( 'multi-image-cell' )
1816+ const workspaceImgEl = within ( multiImgPlots [ 0 ] ) . getByRole ( 'img' )
1817+
17691818 expect ( workspaceImgEl ) . toHaveAttribute ( 'src' , workspaceImgs [ 3 ] . url )
17701819 } )
17711820
@@ -1795,7 +1844,6 @@ describe('App', () => {
17951844 } )
17961845
17971846 const mainImgs = comparisonTableFixture . plots [ 3 ] . revisions . main . imgs
1798-
17991847 const multiImgPlots = screen . getAllByTestId ( 'multi-image-cell' )
18001848 const slider = within ( multiImgPlots [ 1 ] ) . getByRole ( 'slider' )
18011849
0 commit comments