@@ -32,7 +32,7 @@ describe("createWritableMemo", () => {
3232 const [ count , setCount ] = createSignal ( 1 ) ;
3333 let prevCb : number | undefined ;
3434 const { result, setResult, dispose } = createRoot ( dispose => {
35- const [ result , setResult ] = createWritableMemo ( p => ( ( prevCb = p ) , count ( ) * 2 ) , - 2 ) ;
35+ const [ result , setResult ] = createWritableMemo ( ( p ?: number ) => ( ( prevCb = p ) , count ( ) * 2 ) , - 2 ) ;
3636 expect ( prevCb ) . toBe ( - 2 ) ;
3737 expect ( result ( ) ) . toBe ( 2 ) ;
3838 return { result, dispose, setResult } ;
@@ -101,4 +101,23 @@ describe("createWritableMemo", () => {
101101 expect ( memo ( ) ) . toBe ( - 2 ) ;
102102 dispose ( ) ;
103103 } ) ) ;
104+
105+ // https://github.com/solidjs-community/solid-primitives/issues/772
106+ test ( "issue 772" , ( ) => {
107+ const [ source , setSource ] = createSignal ( 0 ) ;
108+ const [ [ value , setValue ] , dispose ] = createRoot ( dispose => [ createWritableMemo ( ( ) => ! ! source ( ) ) , dispose ] )
109+
110+ expect ( value ( ) ) . toBe ( false )
111+
112+ setSource ( 1 ) ;
113+ expect ( value ( ) ) . toBe ( true )
114+
115+ setValue ( false ) ;
116+ expect ( value ( ) ) . toBe ( false )
117+
118+ setSource ( 2 ) ;
119+ expect ( value ( ) ) . toBe ( true )
120+
121+ dispose ( )
122+ } )
104123} ) ;
0 commit comments