1c6a02be9SBartosz Kaszubowskiimport { render } from '@testing-library/react'; 2c6a02be9SBartosz Kaszubowski 35990cc31SBartosz Kaszubowskiimport type { CommentData } from './APIDataTypes'; 4*f6311d0dSBartosz Kaszubowskiimport { CommentTextBlock, resolveTypeName } from './APISectionUtils'; 5c6a02be9SBartosz Kaszubowski 6c6a02be9SBartosz Kaszubowskidescribe('APISectionUtils.resolveTypeName', () => { 7c6a02be9SBartosz Kaszubowski test('void', () => { 8c6a02be9SBartosz Kaszubowski const { container } = render(<>{resolveTypeName({ type: 'intrinsic', name: 'void' })}</>); 9c6a02be9SBartosz Kaszubowski expect(container).toMatchSnapshot(); 10c6a02be9SBartosz Kaszubowski }); 11c6a02be9SBartosz Kaszubowski 12c6a02be9SBartosz Kaszubowski test('generic type', () => { 13c6a02be9SBartosz Kaszubowski const { container } = render(<>{resolveTypeName({ type: 'intrinsic', name: 'string' })}</>); 14c6a02be9SBartosz Kaszubowski expect(container).toMatchSnapshot(); 15c6a02be9SBartosz Kaszubowski }); 16c6a02be9SBartosz Kaszubowski 17c6a02be9SBartosz Kaszubowski test('custom type', () => { 18c6a02be9SBartosz Kaszubowski const { container } = render( 19c6a02be9SBartosz Kaszubowski <>{resolveTypeName({ type: 'reference', name: 'SpeechSynthesisEvent' })}</> 20c6a02be9SBartosz Kaszubowski ); 21c6a02be9SBartosz Kaszubowski expect(container).toMatchSnapshot(); 22c6a02be9SBartosz Kaszubowski }); 23c6a02be9SBartosz Kaszubowski 24c6a02be9SBartosz Kaszubowski test('custom type array', () => { 25c6a02be9SBartosz Kaszubowski const { container } = render( 26c6a02be9SBartosz Kaszubowski <> 27c6a02be9SBartosz Kaszubowski {resolveTypeName({ 28c6a02be9SBartosz Kaszubowski type: 'array', 29c6a02be9SBartosz Kaszubowski elementType: { type: 'reference', name: 'AppleAuthenticationScope' }, 30c6a02be9SBartosz Kaszubowski })} 31c6a02be9SBartosz Kaszubowski </> 32c6a02be9SBartosz Kaszubowski ); 33c6a02be9SBartosz Kaszubowski expect(container).toMatchSnapshot(); 34c6a02be9SBartosz Kaszubowski }); 35c6a02be9SBartosz Kaszubowski 36d87a784eSBartosz Kaszubowski test('custom type non-linkable array', () => { 37d87a784eSBartosz Kaszubowski const { container } = render( 38d87a784eSBartosz Kaszubowski <> 39d87a784eSBartosz Kaszubowski {resolveTypeName({ 40d87a784eSBartosz Kaszubowski type: 'array', 41d87a784eSBartosz Kaszubowski elementType: { type: 'reference', name: 'T' }, 42d87a784eSBartosz Kaszubowski })} 43d87a784eSBartosz Kaszubowski </> 44d87a784eSBartosz Kaszubowski ); 45d87a784eSBartosz Kaszubowski expect(container).toMatchSnapshot(); 46d87a784eSBartosz Kaszubowski }); 47d87a784eSBartosz Kaszubowski 486062847eSBartosz Kaszubowski test('query type', () => { 496062847eSBartosz Kaszubowski const { container } = render( 506062847eSBartosz Kaszubowski <> 516062847eSBartosz Kaszubowski {resolveTypeName({ 526062847eSBartosz Kaszubowski type: 'reference', 536062847eSBartosz Kaszubowski typeArguments: [{ queryType: { type: 'reference', name: 'View' }, type: 'query' }], 546062847eSBartosz Kaszubowski name: 'React.ComponentProps', 556062847eSBartosz Kaszubowski })} 566062847eSBartosz Kaszubowski </> 576062847eSBartosz Kaszubowski ); 586062847eSBartosz Kaszubowski expect(container).toMatchSnapshot(); 596062847eSBartosz Kaszubowski }); 606062847eSBartosz Kaszubowski 61c6a02be9SBartosz Kaszubowski test('Promise', () => { 62c6a02be9SBartosz Kaszubowski const { container } = render( 63c6a02be9SBartosz Kaszubowski <> 64c6a02be9SBartosz Kaszubowski {resolveTypeName({ 65c6a02be9SBartosz Kaszubowski type: 'reference', 66c6a02be9SBartosz Kaszubowski typeArguments: [{ type: 'intrinsic', name: 'void' }], 67c6a02be9SBartosz Kaszubowski name: 'Promise', 68c6a02be9SBartosz Kaszubowski })} 69c6a02be9SBartosz Kaszubowski </> 70c6a02be9SBartosz Kaszubowski ); 71c6a02be9SBartosz Kaszubowski expect(container).toMatchSnapshot(); 72c6a02be9SBartosz Kaszubowski }); 73c6a02be9SBartosz Kaszubowski 74c6a02be9SBartosz Kaszubowski test('Promise with custom type', () => { 75c6a02be9SBartosz Kaszubowski const { container } = render( 76c6a02be9SBartosz Kaszubowski <> 77c6a02be9SBartosz Kaszubowski {resolveTypeName({ 78c6a02be9SBartosz Kaszubowski type: 'reference', 79c6a02be9SBartosz Kaszubowski typeArguments: [{ type: 'reference', name: 'AppleAuthenticationCredential' }], 80c6a02be9SBartosz Kaszubowski name: 'Promise', 81c6a02be9SBartosz Kaszubowski })} 82c6a02be9SBartosz Kaszubowski </> 83c6a02be9SBartosz Kaszubowski ); 84c6a02be9SBartosz Kaszubowski expect(container).toMatchSnapshot(); 85c6a02be9SBartosz Kaszubowski }); 86c6a02be9SBartosz Kaszubowski 87c6a02be9SBartosz Kaszubowski test('Record', () => { 88c6a02be9SBartosz Kaszubowski const { container } = render( 89c6a02be9SBartosz Kaszubowski <> 90c6a02be9SBartosz Kaszubowski {resolveTypeName({ 91c6a02be9SBartosz Kaszubowski type: 'reference', 92c6a02be9SBartosz Kaszubowski typeArguments: [ 93c6a02be9SBartosz Kaszubowski { type: 'intrinsic', name: 'string' }, 94c6a02be9SBartosz Kaszubowski { type: 'intrinsic', name: 'any' }, 95c6a02be9SBartosz Kaszubowski ], 96c6a02be9SBartosz Kaszubowski name: 'Record', 97c6a02be9SBartosz Kaszubowski })} 98c6a02be9SBartosz Kaszubowski </> 99c6a02be9SBartosz Kaszubowski ); 100c6a02be9SBartosz Kaszubowski expect(container).toMatchSnapshot(); 101c6a02be9SBartosz Kaszubowski }); 102c6a02be9SBartosz Kaszubowski 103abded2bbSBartosz Kaszubowski test('alternative generic object notation', () => { 104abded2bbSBartosz Kaszubowski const { container } = render( 105abded2bbSBartosz Kaszubowski <> 106abded2bbSBartosz Kaszubowski {resolveTypeName({ 107abded2bbSBartosz Kaszubowski type: 'array', 108abded2bbSBartosz Kaszubowski elementType: { 109abded2bbSBartosz Kaszubowski type: 'reflection', 110abded2bbSBartosz Kaszubowski declaration: { 111abded2bbSBartosz Kaszubowski name: '__type', 112abded2bbSBartosz Kaszubowski indexSignature: { 113abded2bbSBartosz Kaszubowski name: '__index', 114abded2bbSBartosz Kaszubowski parameters: [{ name: 'column', type: { type: 'intrinsic', name: 'string' } }], 115abded2bbSBartosz Kaszubowski type: { type: 'intrinsic', name: 'any' }, 116abded2bbSBartosz Kaszubowski }, 117abded2bbSBartosz Kaszubowski }, 118abded2bbSBartosz Kaszubowski }, 119abded2bbSBartosz Kaszubowski })} 120abded2bbSBartosz Kaszubowski </> 121abded2bbSBartosz Kaszubowski ); 122abded2bbSBartosz Kaszubowski expect(container).toMatchSnapshot(); 123abded2bbSBartosz Kaszubowski }); 124abded2bbSBartosz Kaszubowski 1256062847eSBartosz Kaszubowski test('Record with union', () => { 1266062847eSBartosz Kaszubowski const { container } = render( 1276062847eSBartosz Kaszubowski <> 1286062847eSBartosz Kaszubowski {resolveTypeName({ 1296062847eSBartosz Kaszubowski type: 'reference', 1306062847eSBartosz Kaszubowski typeArguments: [ 1316062847eSBartosz Kaszubowski { type: 'intrinsic', name: 'string' }, 1326062847eSBartosz Kaszubowski { 1336062847eSBartosz Kaszubowski type: 'union', 1346062847eSBartosz Kaszubowski types: [ 1356062847eSBartosz Kaszubowski { type: 'intrinsic', name: 'number' }, 1366062847eSBartosz Kaszubowski { type: 'intrinsic', name: 'boolean' }, 1376062847eSBartosz Kaszubowski { type: 'intrinsic', name: 'string' }, 1386062847eSBartosz Kaszubowski ], 1396062847eSBartosz Kaszubowski }, 1406062847eSBartosz Kaszubowski ], 1416062847eSBartosz Kaszubowski name: 'Record', 1426062847eSBartosz Kaszubowski })} 1436062847eSBartosz Kaszubowski </> 1446062847eSBartosz Kaszubowski ); 1456062847eSBartosz Kaszubowski expect(container).toMatchSnapshot(); 1466062847eSBartosz Kaszubowski }); 1476062847eSBartosz Kaszubowski 148c6a02be9SBartosz Kaszubowski test('union', () => { 149c6a02be9SBartosz Kaszubowski const { container } = render( 150c6a02be9SBartosz Kaszubowski <> 151c6a02be9SBartosz Kaszubowski {resolveTypeName({ 152c6a02be9SBartosz Kaszubowski type: 'union', 153c6a02be9SBartosz Kaszubowski types: [ 154c6a02be9SBartosz Kaszubowski { type: 'reference', name: 'SpeechEventCallback' }, 155c6a02be9SBartosz Kaszubowski { type: 'literal', value: null }, 156c6a02be9SBartosz Kaszubowski ], 157c6a02be9SBartosz Kaszubowski })} 158c6a02be9SBartosz Kaszubowski </> 159c6a02be9SBartosz Kaszubowski ); 160c6a02be9SBartosz Kaszubowski expect(container).toMatchSnapshot(); 161c6a02be9SBartosz Kaszubowski }); 162c6a02be9SBartosz Kaszubowski 163c6a02be9SBartosz Kaszubowski test('union with array', () => { 164c6a02be9SBartosz Kaszubowski const { container } = render( 165c6a02be9SBartosz Kaszubowski <> 166c6a02be9SBartosz Kaszubowski {resolveTypeName({ 167c6a02be9SBartosz Kaszubowski type: 'union', 168c6a02be9SBartosz Kaszubowski types: [ 169c6a02be9SBartosz Kaszubowski { type: 'array', elementType: { type: 'intrinsic', name: 'number' } }, 170c6a02be9SBartosz Kaszubowski { type: 'literal', value: null }, 171c6a02be9SBartosz Kaszubowski ], 172c6a02be9SBartosz Kaszubowski })} 173c6a02be9SBartosz Kaszubowski </> 174c6a02be9SBartosz Kaszubowski ); 175c6a02be9SBartosz Kaszubowski expect(container).toMatchSnapshot(); 176c6a02be9SBartosz Kaszubowski }); 177c6a02be9SBartosz Kaszubowski 178d87a784eSBartosz Kaszubowski test('union with custom type and array', () => { 179d87a784eSBartosz Kaszubowski const { container } = render( 180d87a784eSBartosz Kaszubowski <> 181d87a784eSBartosz Kaszubowski {resolveTypeName({ 182d87a784eSBartosz Kaszubowski type: 'union', 183d87a784eSBartosz Kaszubowski types: [ 184d87a784eSBartosz Kaszubowski { type: 'array', elementType: { type: 'reference', name: 'AssetRef' } }, 185d87a784eSBartosz Kaszubowski { type: 'reference', name: 'AssetRef' }, 186d87a784eSBartosz Kaszubowski ], 187d87a784eSBartosz Kaszubowski })} 188d87a784eSBartosz Kaszubowski </> 189d87a784eSBartosz Kaszubowski ); 190d87a784eSBartosz Kaszubowski expect(container).toMatchSnapshot(); 191d87a784eSBartosz Kaszubowski }); 192d87a784eSBartosz Kaszubowski 193abded2bbSBartosz Kaszubowski test('union of array values', () => { 194abded2bbSBartosz Kaszubowski const { container } = render( 195abded2bbSBartosz Kaszubowski <> 196abded2bbSBartosz Kaszubowski {resolveTypeName({ 197abded2bbSBartosz Kaszubowski type: 'array', 198abded2bbSBartosz Kaszubowski elementType: { 199abded2bbSBartosz Kaszubowski type: 'union', 200abded2bbSBartosz Kaszubowski types: [ 201abded2bbSBartosz Kaszubowski { type: 'reference', name: 'ResultSetError' }, 202abded2bbSBartosz Kaszubowski { type: 'reference', name: 'ResultSet' }, 203abded2bbSBartosz Kaszubowski ], 204abded2bbSBartosz Kaszubowski }, 205abded2bbSBartosz Kaszubowski })} 206abded2bbSBartosz Kaszubowski </> 207abded2bbSBartosz Kaszubowski ); 208abded2bbSBartosz Kaszubowski expect(container).toMatchSnapshot(); 209abded2bbSBartosz Kaszubowski }); 210abded2bbSBartosz Kaszubowski 211d87a784eSBartosz Kaszubowski test('generic type', () => { 212d87a784eSBartosz Kaszubowski const { container } = render( 213d87a784eSBartosz Kaszubowski <> 214d87a784eSBartosz Kaszubowski {resolveTypeName({ 215d87a784eSBartosz Kaszubowski type: 'reference', 216d87a784eSBartosz Kaszubowski typeArguments: [{ type: 'reference', name: 'Asset' }], 217d87a784eSBartosz Kaszubowski name: 'PagedInfo', 218d87a784eSBartosz Kaszubowski })} 219d87a784eSBartosz Kaszubowski </> 220d87a784eSBartosz Kaszubowski ); 221d87a784eSBartosz Kaszubowski expect(container).toMatchSnapshot(); 222d87a784eSBartosz Kaszubowski }); 223d87a784eSBartosz Kaszubowski 224d87a784eSBartosz Kaszubowski test('tuple type', () => { 225d87a784eSBartosz Kaszubowski const { container } = render( 226d87a784eSBartosz Kaszubowski <> 227d87a784eSBartosz Kaszubowski {resolveTypeName({ 228d87a784eSBartosz Kaszubowski type: 'tuple', 229d87a784eSBartosz Kaszubowski elements: [ 230d87a784eSBartosz Kaszubowski { type: 'reference', name: 'SortByKey' }, 231d87a784eSBartosz Kaszubowski { type: 'intrinsic', name: 'boolean' }, 232d87a784eSBartosz Kaszubowski ], 233d87a784eSBartosz Kaszubowski })} 234d87a784eSBartosz Kaszubowski </> 235d87a784eSBartosz Kaszubowski ); 236d87a784eSBartosz Kaszubowski expect(container).toMatchSnapshot(); 237d87a784eSBartosz Kaszubowski }); 238d87a784eSBartosz Kaszubowski 239d87a784eSBartosz Kaszubowski test('generic type in Promise', () => { 240d87a784eSBartosz Kaszubowski const { container } = render( 241d87a784eSBartosz Kaszubowski <> 242d87a784eSBartosz Kaszubowski {resolveTypeName({ 243d87a784eSBartosz Kaszubowski type: 'reference', 244d87a784eSBartosz Kaszubowski typeArguments: [ 245d87a784eSBartosz Kaszubowski { 246d87a784eSBartosz Kaszubowski type: 'reference', 247d87a784eSBartosz Kaszubowski typeArguments: [{ type: 'reference', name: 'Asset' }], 248d87a784eSBartosz Kaszubowski name: 'PagedInfo', 249d87a784eSBartosz Kaszubowski }, 250d87a784eSBartosz Kaszubowski ], 251d87a784eSBartosz Kaszubowski name: 'Promise', 252d87a784eSBartosz Kaszubowski })} 253d87a784eSBartosz Kaszubowski </> 254d87a784eSBartosz Kaszubowski ); 255d87a784eSBartosz Kaszubowski expect(container).toMatchSnapshot(); 256d87a784eSBartosz Kaszubowski }); 257d87a784eSBartosz Kaszubowski 258c6a02be9SBartosz Kaszubowski test('function', () => { 259c6a02be9SBartosz Kaszubowski const { container } = render( 260c6a02be9SBartosz Kaszubowski <> 261c6a02be9SBartosz Kaszubowski {resolveTypeName({ 262c6a02be9SBartosz Kaszubowski type: 'reflection', 263c6a02be9SBartosz Kaszubowski declaration: { 264c6a02be9SBartosz Kaszubowski signatures: [ 265c6a02be9SBartosz Kaszubowski { 266c6a02be9SBartosz Kaszubowski type: { 267c6a02be9SBartosz Kaszubowski type: 'union', 268c6a02be9SBartosz Kaszubowski types: [ 269c6a02be9SBartosz Kaszubowski { type: 'intrinsic', name: 'void' }, 270c6a02be9SBartosz Kaszubowski { 271c6a02be9SBartosz Kaszubowski type: 'reference', 272c6a02be9SBartosz Kaszubowski name: 'SpeechEventCallback', 273c6a02be9SBartosz Kaszubowski }, 274c6a02be9SBartosz Kaszubowski ], 275c6a02be9SBartosz Kaszubowski }, 276c6a02be9SBartosz Kaszubowski }, 277c6a02be9SBartosz Kaszubowski ], 278c6a02be9SBartosz Kaszubowski }, 279c6a02be9SBartosz Kaszubowski })} 280c6a02be9SBartosz Kaszubowski </> 281c6a02be9SBartosz Kaszubowski ); 282c6a02be9SBartosz Kaszubowski expect(container).toMatchSnapshot(); 283c6a02be9SBartosz Kaszubowski }); 284c6a02be9SBartosz Kaszubowski 285c6a02be9SBartosz Kaszubowski test('function with arguments', () => { 286c6a02be9SBartosz Kaszubowski const { container } = render( 287c6a02be9SBartosz Kaszubowski <> 288c6a02be9SBartosz Kaszubowski {resolveTypeName({ 289c6a02be9SBartosz Kaszubowski type: 'reflection', 290c6a02be9SBartosz Kaszubowski declaration: { 291c6a02be9SBartosz Kaszubowski signatures: [ 292c6a02be9SBartosz Kaszubowski { 293c6a02be9SBartosz Kaszubowski parameters: [ 294c6a02be9SBartosz Kaszubowski { 295c6a02be9SBartosz Kaszubowski name: 'error', 296c6a02be9SBartosz Kaszubowski type: { type: 'reference', name: 'Error' }, 297c6a02be9SBartosz Kaszubowski }, 298c6a02be9SBartosz Kaszubowski ], 299c6a02be9SBartosz Kaszubowski type: { 300c6a02be9SBartosz Kaszubowski type: 'union', 301c6a02be9SBartosz Kaszubowski types: [ 302c6a02be9SBartosz Kaszubowski { type: 'intrinsic', name: 'void' }, 303c6a02be9SBartosz Kaszubowski { type: 'reference', name: 'SpeechEventCallback' }, 304c6a02be9SBartosz Kaszubowski ], 305c6a02be9SBartosz Kaszubowski }, 306c6a02be9SBartosz Kaszubowski }, 307c6a02be9SBartosz Kaszubowski ], 308c6a02be9SBartosz Kaszubowski }, 309c6a02be9SBartosz Kaszubowski })} 310c6a02be9SBartosz Kaszubowski </> 311c6a02be9SBartosz Kaszubowski ); 312c6a02be9SBartosz Kaszubowski expect(container).toMatchSnapshot(); 313c6a02be9SBartosz Kaszubowski }); 314ffc1cfa8SBartosz Kaszubowski 315ffc1cfa8SBartosz Kaszubowski test('function with non-linkable custom type', () => { 316ffc1cfa8SBartosz Kaszubowski const { container } = render( 317ffc1cfa8SBartosz Kaszubowski <> 318ffc1cfa8SBartosz Kaszubowski {resolveTypeName({ 319ffc1cfa8SBartosz Kaszubowski type: 'reflection', 320ffc1cfa8SBartosz Kaszubowski declaration: { 321ffc1cfa8SBartosz Kaszubowski signatures: [ 322ffc1cfa8SBartosz Kaszubowski { 323ffc1cfa8SBartosz Kaszubowski parameters: [ 324ffc1cfa8SBartosz Kaszubowski { 325ffc1cfa8SBartosz Kaszubowski name: 'error', 326ffc1cfa8SBartosz Kaszubowski type: { type: 'reference', name: 'Error' }, 327ffc1cfa8SBartosz Kaszubowski }, 328ffc1cfa8SBartosz Kaszubowski ], 329ffc1cfa8SBartosz Kaszubowski type: { type: 'intrinsic', name: 'void' }, 330ffc1cfa8SBartosz Kaszubowski }, 331ffc1cfa8SBartosz Kaszubowski ], 332ffc1cfa8SBartosz Kaszubowski }, 333ffc1cfa8SBartosz Kaszubowski })} 334ffc1cfa8SBartosz Kaszubowski </> 335ffc1cfa8SBartosz Kaszubowski ); 336ffc1cfa8SBartosz Kaszubowski expect(container).toMatchSnapshot(); 337ffc1cfa8SBartosz Kaszubowski }); 3381ef472c3SBartosz Kaszubowski 339f52aa21eSBartosz Kaszubowski test('object reflection', () => { 340f52aa21eSBartosz Kaszubowski const { container } = render( 341f52aa21eSBartosz Kaszubowski <> 342f52aa21eSBartosz Kaszubowski {resolveTypeName({ 343f52aa21eSBartosz Kaszubowski type: 'reflection', 344f52aa21eSBartosz Kaszubowski declaration: { 345f52aa21eSBartosz Kaszubowski children: [ 346f52aa21eSBartosz Kaszubowski { 347f52aa21eSBartosz Kaszubowski name: 'target', 348f52aa21eSBartosz Kaszubowski type: { type: 'intrinsic', name: 'number' }, 349f52aa21eSBartosz Kaszubowski }, 350f52aa21eSBartosz Kaszubowski { 351f52aa21eSBartosz Kaszubowski name: 'value', 352f52aa21eSBartosz Kaszubowski type: { type: 'intrinsic', name: 'boolean' }, 353f52aa21eSBartosz Kaszubowski }, 354f52aa21eSBartosz Kaszubowski ], 355f52aa21eSBartosz Kaszubowski }, 356f52aa21eSBartosz Kaszubowski })} 357f52aa21eSBartosz Kaszubowski </> 358f52aa21eSBartosz Kaszubowski ); 359f52aa21eSBartosz Kaszubowski expect(container).toMatchSnapshot(); 360f52aa21eSBartosz Kaszubowski }); 361f52aa21eSBartosz Kaszubowski 362f128dd42SBartosz Kaszubowski test('custom type with single pick', () => { 363f128dd42SBartosz Kaszubowski const { container } = render( 364f128dd42SBartosz Kaszubowski <> 365f128dd42SBartosz Kaszubowski {resolveTypeName({ 366f128dd42SBartosz Kaszubowski type: 'reference', 367f128dd42SBartosz Kaszubowski typeArguments: [ 368f128dd42SBartosz Kaszubowski { type: 'reference', name: 'FontResource' }, 369f128dd42SBartosz Kaszubowski { type: 'literal', value: 'display' }, 370f128dd42SBartosz Kaszubowski ], 371f128dd42SBartosz Kaszubowski name: 'Pick', 372f128dd42SBartosz Kaszubowski })} 373f128dd42SBartosz Kaszubowski </> 374f128dd42SBartosz Kaszubowski ); 375f128dd42SBartosz Kaszubowski expect(container).toMatchSnapshot(); 376f128dd42SBartosz Kaszubowski }); 377f128dd42SBartosz Kaszubowski 378f128dd42SBartosz Kaszubowski test('props with multiple omits', () => { 3791ef472c3SBartosz Kaszubowski const { container } = render( 3801ef472c3SBartosz Kaszubowski <> 3811ef472c3SBartosz Kaszubowski {resolveTypeName({ 3821ef472c3SBartosz Kaszubowski type: 'reference', 3831ef472c3SBartosz Kaszubowski typeArguments: [ 3841ef472c3SBartosz Kaszubowski { 3851ef472c3SBartosz Kaszubowski type: 'reference', 3861ef472c3SBartosz Kaszubowski typeArguments: [ 3871ef472c3SBartosz Kaszubowski { type: 'reference', name: 'ViewStyle' }, 3881ef472c3SBartosz Kaszubowski { 3891ef472c3SBartosz Kaszubowski type: 'union', 3901ef472c3SBartosz Kaszubowski types: [ 3911ef472c3SBartosz Kaszubowski { type: 'literal', value: 'backgroundColor' }, 3921ef472c3SBartosz Kaszubowski { 3931ef472c3SBartosz Kaszubowski type: 'literal', 3941ef472c3SBartosz Kaszubowski value: 'borderRadius', 3951ef472c3SBartosz Kaszubowski }, 3961ef472c3SBartosz Kaszubowski ], 3971ef472c3SBartosz Kaszubowski }, 3981ef472c3SBartosz Kaszubowski ], 3991ef472c3SBartosz Kaszubowski name: 'Omit', 4001ef472c3SBartosz Kaszubowski }, 4011ef472c3SBartosz Kaszubowski ], 4021ef472c3SBartosz Kaszubowski name: 'StyleProp', 4031ef472c3SBartosz Kaszubowski })} 4041ef472c3SBartosz Kaszubowski </> 4051ef472c3SBartosz Kaszubowski ); 4061ef472c3SBartosz Kaszubowski expect(container).toMatchSnapshot(); 4071ef472c3SBartosz Kaszubowski }); 408c6a02be9SBartosz Kaszubowski}); 409c8c9d6e8SBartosz Kaszubowski 410c8c9d6e8SBartosz Kaszubowskidescribe('APISectionUtils.CommentTextBlock component', () => { 411c8c9d6e8SBartosz Kaszubowski test('no comment', () => { 412c8c9d6e8SBartosz Kaszubowski const { container } = render(<CommentTextBlock comment={undefined} />); 413c8c9d6e8SBartosz Kaszubowski expect(container).toMatchSnapshot(); 414c8c9d6e8SBartosz Kaszubowski }); 415c8c9d6e8SBartosz Kaszubowski 416c8c9d6e8SBartosz Kaszubowski test('basic comment', () => { 4175990cc31SBartosz Kaszubowski const comment: CommentData = { 4185990cc31SBartosz Kaszubowski summary: [{ kind: 'text', text: 'This is the basic comment.' }], 419c8c9d6e8SBartosz Kaszubowski }; 420c8c9d6e8SBartosz Kaszubowski 421c8c9d6e8SBartosz Kaszubowski const { container } = render(<CommentTextBlock comment={comment} />); 422c8c9d6e8SBartosz Kaszubowski expect(container).toMatchSnapshot(); 423c8c9d6e8SBartosz Kaszubowski }); 424c8c9d6e8SBartosz Kaszubowski 425c8c9d6e8SBartosz Kaszubowski test('comment with example', () => { 4265990cc31SBartosz Kaszubowski const comment: CommentData = { 4275990cc31SBartosz Kaszubowski summary: [ 428c8c9d6e8SBartosz Kaszubowski { 4295990cc31SBartosz Kaszubowski kind: 'text', 4305990cc31SBartosz Kaszubowski text: 'Gets the referrer URL of the installed app with the [', 4315990cc31SBartosz Kaszubowski }, 4325990cc31SBartosz Kaszubowski { 4335990cc31SBartosz Kaszubowski kind: 'code', 4345990cc31SBartosz Kaszubowski text: '`Install Referrer API`', 4355990cc31SBartosz Kaszubowski }, 4365990cc31SBartosz Kaszubowski { 4375990cc31SBartosz Kaszubowski kind: 'text', 4385990cc31SBartosz Kaszubowski text: '](https://developer.android.com/google/play/installreferrer)\nfrom the Google Play Store. In practice, the referrer URL may not be a complete, absolute URL.', 4395990cc31SBartosz Kaszubowski }, 4405990cc31SBartosz Kaszubowski ], 4415990cc31SBartosz Kaszubowski blockTags: [ 4425990cc31SBartosz Kaszubowski { 4435990cc31SBartosz Kaszubowski tag: '@returns', 4445990cc31SBartosz Kaszubowski content: [ 4455990cc31SBartosz Kaszubowski { 4465990cc31SBartosz Kaszubowski kind: 'text', 4475990cc31SBartosz Kaszubowski text: 'A ', 4485990cc31SBartosz Kaszubowski }, 4495990cc31SBartosz Kaszubowski { 4505990cc31SBartosz Kaszubowski kind: 'code', 4515990cc31SBartosz Kaszubowski text: '`Promise`', 4525990cc31SBartosz Kaszubowski }, 4535990cc31SBartosz Kaszubowski { 4545990cc31SBartosz Kaszubowski kind: 'text', 4555990cc31SBartosz Kaszubowski text: ' that fulfills with a ', 4565990cc31SBartosz Kaszubowski }, 4575990cc31SBartosz Kaszubowski { 4585990cc31SBartosz Kaszubowski kind: 'code', 4595990cc31SBartosz Kaszubowski text: '`string`', 4605990cc31SBartosz Kaszubowski }, 4615990cc31SBartosz Kaszubowski { 4625990cc31SBartosz Kaszubowski kind: 'text', 4635990cc31SBartosz Kaszubowski text: ' of the referrer URL of the installed app.', 4645990cc31SBartosz Kaszubowski }, 4655990cc31SBartosz Kaszubowski ], 4665990cc31SBartosz Kaszubowski }, 4675990cc31SBartosz Kaszubowski { 4685990cc31SBartosz Kaszubowski tag: '@example', 4695990cc31SBartosz Kaszubowski content: [ 4705990cc31SBartosz Kaszubowski { 4715990cc31SBartosz Kaszubowski kind: 'code', 4725990cc31SBartosz Kaszubowski text: '```ts\nawait Application.getInstallReferrerAsync();\n// "utm_source=google-play&utm_medium=organic"\n```', 4735990cc31SBartosz Kaszubowski }, 4745990cc31SBartosz Kaszubowski ], 4755990cc31SBartosz Kaszubowski }, 4765990cc31SBartosz Kaszubowski { 4775990cc31SBartosz Kaszubowski tag: '@platform', 4785990cc31SBartosz Kaszubowski content: [ 4795990cc31SBartosz Kaszubowski { 4805990cc31SBartosz Kaszubowski kind: 'text', 4815990cc31SBartosz Kaszubowski text: 'android', 4825990cc31SBartosz Kaszubowski }, 4835990cc31SBartosz Kaszubowski ], 484c8c9d6e8SBartosz Kaszubowski }, 485c8c9d6e8SBartosz Kaszubowski ], 486c8c9d6e8SBartosz Kaszubowski }; 487c8c9d6e8SBartosz Kaszubowski 488c8c9d6e8SBartosz Kaszubowski const { container } = render(<CommentTextBlock comment={comment} />); 489c8c9d6e8SBartosz Kaszubowski expect(container).toMatchSnapshot(); 490c8c9d6e8SBartosz Kaszubowski }); 491c8c9d6e8SBartosz Kaszubowski}); 492