You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							909 B
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							909 B
						
					
					
				| 'use strict'
 | |
| 
 | |
| const t = require('tap')
 | |
| const build = require('..')
 | |
| 
 | |
| t.test('nested ref requires ajv', async t => {
 | |
|   const schemaA = {
 | |
|     $id: 'urn:schema:a',
 | |
|     definitions: {
 | |
|       foo: { anyOf: [{ type: 'string' }, { type: 'null' }] }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   const schemaB = {
 | |
|     $id: 'urn:schema:b',
 | |
|     type: 'object',
 | |
|     properties: {
 | |
|       results: {
 | |
|         type: 'object',
 | |
|         properties: {
 | |
|           items: {
 | |
|             type: 'object',
 | |
|             properties: {
 | |
|               bar: {
 | |
|                 type: 'array',
 | |
|                 items: { $ref: 'urn:schema:a#/definitions/foo' }
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   const stringify = build(schemaB, {
 | |
|     schema: {
 | |
|       [schemaA.$id]: schemaA
 | |
|     }
 | |
|   })
 | |
|   const result = stringify({
 | |
|     results: {
 | |
|       items: {
 | |
|         bar: ['baz']
 | |
|       }
 | |
|     }
 | |
|   })
 | |
|   t.same(result, '{"results":{"items":{"bar":["baz"]}}}')
 | |
| })
 |