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
			| 
											3 years ago
										 | '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() | ||
|  | }) |