fatsify核心功能示例测试!!!
This commit is contained in:
45
node_modules/fastify/test/handler-context.test.js
generated
vendored
Normal file
45
node_modules/fastify/test/handler-context.test.js
generated
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
'use strict'
|
||||
const { test } = require('node:test')
|
||||
const { kRouteContext } = require('../lib/symbols')
|
||||
const fastify = require('..')
|
||||
|
||||
test('handlers receive correct `this` context', async (t) => {
|
||||
t.plan(4)
|
||||
|
||||
// simulate plugin that uses fastify-plugin
|
||||
const plugin = function (instance, opts, done) {
|
||||
instance.decorate('foo', 'foo')
|
||||
done()
|
||||
}
|
||||
plugin[Symbol.for('skip-override')] = true
|
||||
|
||||
const instance = fastify()
|
||||
instance.register(plugin)
|
||||
|
||||
instance.get('/', function (req, reply) {
|
||||
t.assert.ok(this.foo)
|
||||
t.assert.strictEqual(this.foo, 'foo')
|
||||
reply.send()
|
||||
})
|
||||
|
||||
await instance.inject('/')
|
||||
|
||||
t.assert.ok(instance.foo)
|
||||
t.assert.strictEqual(instance.foo, 'foo')
|
||||
})
|
||||
|
||||
test('handlers have access to the internal context', async (t) => {
|
||||
t.plan(5)
|
||||
|
||||
const instance = fastify()
|
||||
instance.get('/', { config: { foo: 'bar' } }, function (req, reply) {
|
||||
t.assert.ok(reply[kRouteContext])
|
||||
t.assert.ok(reply[kRouteContext].config)
|
||||
t.assert.ok(typeof reply[kRouteContext].config, Object)
|
||||
t.assert.ok(reply[kRouteContext].config.foo)
|
||||
t.assert.strictEqual(reply[kRouteContext].config.foo, 'bar')
|
||||
reply.send()
|
||||
})
|
||||
|
||||
await instance.inject('/')
|
||||
})
|
||||
Reference in New Issue
Block a user