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.
		
		
		
		
		
			
		
			
				
					
					
						
							121 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
	
	
							121 lines
						
					
					
						
							2.2 KiB
						
					
					
				| 'use strict'
 | |
| 
 | |
| const { test } = require('tap')
 | |
| const fp = require('../plugin')
 | |
| 
 | |
| test('webpack removes require.main.filename', (t) => {
 | |
|   const filename = require.main.filename
 | |
|   const info = console.info
 | |
|   t.teardown(() => {
 | |
|     require.main.filename = filename
 | |
|     console.info = info
 | |
|   })
 | |
| 
 | |
|   require.main.filename = null
 | |
| 
 | |
|   console.info = function (msg) {
 | |
|     t.fail('logged: ' + msg)
 | |
|   }
 | |
| 
 | |
|   fp((fastify, opts, next) => {
 | |
|     next()
 | |
|   }, {
 | |
|     fastify: '^4.0.0'
 | |
|   })
 | |
| 
 | |
|   t.end()
 | |
| })
 | |
| 
 | |
| test('support faux modules', (t) => {
 | |
|   const plugin = fp((fastify, opts, next) => {
 | |
|     next()
 | |
|   })
 | |
| 
 | |
|   t.equal(plugin.default, plugin)
 | |
|   t.end()
 | |
| })
 | |
| 
 | |
| test('support faux modules does not override existing default field in babel module', (t) => {
 | |
|   const module = {
 | |
|     default: (fastify, opts, next) => next()
 | |
|   }
 | |
| 
 | |
|   module.default.default = 'Existing default field'
 | |
| 
 | |
|   const plugin = fp(module)
 | |
| 
 | |
|   t.equal(plugin.default, 'Existing default field')
 | |
|   t.end()
 | |
| })
 | |
| 
 | |
| test('support ts named imports', (t) => {
 | |
|   const plugin = fp((fastify, opts, next) => {
 | |
|     next()
 | |
|   }, {
 | |
|     name: 'hello'
 | |
|   })
 | |
| 
 | |
|   t.equal(plugin.hello, plugin)
 | |
|   t.end()
 | |
| })
 | |
| 
 | |
| test('from kebab-case to camelCase', (t) => {
 | |
|   const plugin = fp((fastify, opts, next) => {
 | |
|     next()
 | |
|   }, {
 | |
|     name: 'hello-world'
 | |
|   })
 | |
| 
 | |
|   t.equal(plugin.helloWorld, plugin)
 | |
|   t.end()
 | |
| })
 | |
| 
 | |
| test('from @-prefixed named imports', (t) => {
 | |
|   const plugin = fp((fastify, opts, next) => {
 | |
|     next()
 | |
|   }, {
 | |
|     name: '@hello/world'
 | |
|   })
 | |
| 
 | |
|   t.equal(plugin.helloWorld, plugin)
 | |
|   t.end()
 | |
| })
 | |
| 
 | |
| test('from @-prefixed named kebab-case to camelCase', (t) => {
 | |
|   const plugin = fp((fastify, opts, next) => {
 | |
|     next()
 | |
|   }, {
 | |
|     name: '@hello/my-world'
 | |
|   })
 | |
| 
 | |
|   t.equal(plugin.helloMyWorld, plugin)
 | |
|   t.end()
 | |
| })
 | |
| 
 | |
| test('from kebab-case to camelCase multiple words', (t) => {
 | |
|   const plugin = fp((fastify, opts, next) => {
 | |
|     next()
 | |
|   }, {
 | |
|     name: 'hello-long-world'
 | |
|   })
 | |
| 
 | |
|   t.equal(plugin.helloLongWorld, plugin)
 | |
|   t.end()
 | |
| })
 | |
| 
 | |
| test('from kebab-case to camelCase multiple words does not override', (t) => {
 | |
|   const fn = (fastify, opts, next) => {
 | |
|     next()
 | |
|   }
 | |
| 
 | |
|   const foobar = {}
 | |
|   fn.helloLongWorld = foobar
 | |
| 
 | |
|   const plugin = fp(fn, {
 | |
|     name: 'hello-long-world'
 | |
|   })
 | |
| 
 | |
|   t.equal(plugin.helloLongWorld, foobar)
 | |
|   t.end()
 | |
| })
 |