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.
		
		
		
		
		
			
		
			
				
					36 lines
				
				818 B
			
		
		
			
		
	
	
					36 lines
				
				818 B
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const t = require('tap')
							 | 
						||
| 
								 | 
							
								const test = t.test
							 | 
						||
| 
								 | 
							
								const Fastify = require('../..')
							 | 
						||
| 
								 | 
							
								const supportedMethods = ['DELETE', 'GET', 'HEAD', 'PATCH', 'POST', 'PUT', 'OPTIONS']
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								test('fastify.all should add all the methods to the same url', t => {
							 | 
						||
| 
								 | 
							
								  t.plan(supportedMethods.length * 2)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  const fastify = Fastify()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  fastify.all('/', (req, reply) => {
							 | 
						||
| 
								 | 
							
								    reply.send({ method: req.raw.method })
							 | 
						||
| 
								 | 
							
								  })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  supportedMethods.forEach(injectRequest)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  function injectRequest (method) {
							 | 
						||
| 
								 | 
							
								    const options = {
							 | 
						||
| 
								 | 
							
								      url: '/',
							 | 
						||
| 
								 | 
							
								      method
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (method === 'POST' || method === 'PUT' || method === 'PATCH') {
							 | 
						||
| 
								 | 
							
								      options.payload = { hello: 'world' }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    fastify.inject(options, (err, res) => {
							 | 
						||
| 
								 | 
							
								      t.error(err)
							 | 
						||
| 
								 | 
							
								      const payload = JSON.parse(res.payload)
							 | 
						||
| 
								 | 
							
								      t.same(payload, { method })
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								})
							 |