11import '../../setup.ts'
22
3- import {
4- createComputed ,
5- createMemo ,
6- createRenderEffect ,
7- createRoot ,
8- createSignal ,
9- JSX ,
10- } from 'solid-js'
3+ import * as s from 'solid-js'
114import { beforeEach , describe , expect , it , vi } from 'vitest'
125import { getObjectById , getSdtId , ObjectType } from '../../main/id.ts'
136import setup from '../../main/setup.ts'
@@ -22,33 +15,36 @@ vi.mock('../../main/get-id', () => ({getNewSdtId: () => '#' + mockLAST_ID++}))
2215
2316describe ( 'collectOwnerDetails' , ( ) => {
2417 it ( 'collects focused owner details' , ( ) => {
25- createRoot ( dispose => {
26- const [ s ] = createSignal ( 0 , { name : 'source' } )
18+ s . createRoot ( dispose => {
19+ const [ source ] = s . createSignal ( 0 , { name : 'source' } )
2720
2821 let memo ! : Solid . Owner
2922 const div = document . createElement ( 'div' )
3023
31- createComputed (
32- ( ) => {
33- const focused = createMemo (
34- ( ) => {
35- memo = setup . solid . getOwner ( ) !
36- s ( )
37- createSignal ( div , { name : 'element' } )
38- const m = createMemo ( ( ) => 0 , undefined , { name : 'memo' } )
39- createRenderEffect ( m , undefined , { name : 'render' } )
40- return 'value'
41- } ,
42- undefined ,
43- { name : 'focused' } ,
44- )
45- focused ( )
46- } ,
47- undefined ,
48- { name : 'WRAPPER' } ,
49- )
24+ s . createComputed ( ( ) => {
25+
26+ const focused = s . createMemo ( ( ) => {
27+
28+ memo = setup . solid . getOwner ( ) !
29+
30+ source ( )
31+
32+ s . DEV ! . registerGraph ( {
33+ value : { foo : 123 } ,
34+ name : 'custom value' ,
35+ } )
36+ s . createSignal ( div , { name : 'element' } )
37+ const m = s . createMemo ( ( ) => 0 , undefined , { name : 'memo' } )
38+ s . createRenderEffect ( m , undefined , { name : 'render' } )
39+
40+ return 'value'
41+ } , undefined , { name : 'focused' } )
5042
51- const [ signalB ] = memo . sourceMap as [ Solid . Signal ]
43+ focused ( )
44+
45+ } , undefined , { name : 'WRAPPER' } )
46+
47+ const [ customValue , signalB ] = memo . sourceMap as [ Solid . SourceMapValue , Solid . Signal ]
5248 const [ innerMemo ] = memo . owned as [ Solid . Memo , Solid . Computation ]
5349
5450 const { details, valueMap} = collectOwnerDetails ( memo , {
@@ -67,11 +63,17 @@ describe('collectOwnerDetails', () => {
6763 type : NodeType . Memo ,
6864 value : [ [ ValueType . String , 'value' ] ] ,
6965 signals : [
66+ {
67+ type : NodeType . CustomValue ,
68+ id : getSdtId ( customValue , ObjectType . CustomValue ) ,
69+ name : 'custom value' ,
70+ value : [ [ ValueType . Object , 1 ] ] ,
71+ } ,
7072 {
7173 type : NodeType . Signal ,
7274 id : getSdtId ( signalB , ObjectType . Signal ) ,
7375 name : 'element' ,
74- value : [ [ ValueType . Element , '#3 :div' ] ] ,
76+ value : [ [ ValueType . Element , '#4 :div' ] ] ,
7577 } ,
7678 {
7779 type : NodeType . Memo ,
@@ -82,27 +84,28 @@ describe('collectOwnerDetails', () => {
8284 ] ,
8385 } satisfies Mapped . OwnerDetails )
8486
87+ expect ( valueMap . get ( `signal:${ getSdtId ( customValue , ObjectType . CustomValue ) } ` ) ) . toBeTruthy ( )
8588 expect ( valueMap . get ( `signal:${ getSdtId ( signalB , ObjectType . Signal ) } ` ) ) . toBeTruthy ( )
8689 expect ( valueMap . get ( `signal:${ getSdtId ( innerMemo , ObjectType . Owner ) } ` ) ) . toBeTruthy ( )
8790
88- expect ( getObjectById ( '#3 ' , ObjectType . Element ) ) . toBe ( div )
91+ expect ( getObjectById ( '#4 ' , ObjectType . Element ) ) . toBe ( div )
8992
9093 dispose ( )
9194 } )
9295 } )
9396
9497 it ( 'component props' , ( ) => {
95- createRoot ( dispose => {
98+ s . createRoot ( dispose => {
9699 let owner ! : Solid . Owner
97100 const TestComponent = ( props : {
98101 count : number
99- children : JSX . Element
102+ children : s . JSX . Element
100103 nested : { foo : number ; bar : string }
101104 } ) => {
102105 owner = setup . solid . getOwner ( ) !
103106 return < div > { props . children } </ div >
104107 }
105- createRenderEffect ( ( ) => (
108+ s . createRenderEffect ( ( ) => (
106109 < TestComponent count = { 123 } nested = { { foo : 1 , bar : '2' } } >
107110 < button > Click me</ button >
108111 </ TestComponent >
@@ -150,13 +153,13 @@ describe('collectOwnerDetails', () => {
150153 } )
151154
152155 it ( 'dynamic component props' , ( ) => {
153- createRoot ( dispose => {
156+ s . createRoot ( dispose => {
154157 let owner ! : Solid . Owner
155- const Button = ( props : JSX . ButtonHTMLAttributes < HTMLButtonElement > ) => {
158+ const Button = ( props : s . JSX . ButtonHTMLAttributes < HTMLButtonElement > ) => {
156159 owner = setup . solid . getOwner ( ) !
157160 return < button { ...props } > Click me</ button >
158161 }
159- createRenderEffect ( ( ) => {
162+ s . createRenderEffect ( ( ) => {
160163 const props = ( ) =>
161164 ( {
162165 onClick : ( ) => {
@@ -205,11 +208,11 @@ describe('collectOwnerDetails', () => {
205208 } )
206209
207210 it ( 'listens to value updates' , ( ) => {
208- createRoot ( dispose => {
211+ s . createRoot ( dispose => {
209212 let owner ! : Solid . Owner
210213
211- const [ count , setCount ] = createSignal ( 0 )
212- createMemo ( ( ) => {
214+ const [ count , setCount ] = s . createSignal ( 0 )
215+ s . createMemo ( ( ) => {
213216 owner = setup . solid . getOwner ( ) !
214217 return count ( )
215218 } )
@@ -241,10 +244,10 @@ describe('collectOwnerDetails', () => {
241244 } )
242245
243246 it ( 'listens to signal updates' , ( ) => {
244- createRoot ( dispose => {
247+ s . createRoot ( dispose => {
245248 const owner = setup . solid . getOwner ( ) !
246- const [ , setCount ] = createSignal ( 0 ) // id: "0"
247- const [ , setCount2 ] = createSignal ( 0 ) // id: "1"
249+ const [ , setCount ] = s . createSignal ( 0 ) // id: "0"
250+ const [ , setCount2 ] = s . createSignal ( 0 ) // id: "1"
248251
249252 const onValueUpdate = vi . fn ( )
250253 collectOwnerDetails ( owner , {
0 commit comments