CoolFace
Apppublic

strong-tie/inbound-calls

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
handler-context.test.js46 linesDownload Raw Back to test
1'use strict'2const { test } = require('node:test')3const { kRouteContext } = require('../lib/symbols')4const fastify = require('..')5 6test('handlers receive correct `this` context', async (t) => {7  t.plan(4)8 9  // simulate plugin that uses fastify-plugin10  const plugin = function (instance, opts, done) {11    instance.decorate('foo', 'foo')12    done()13  }14  plugin[Symbol.for('skip-override')] = true15 16  const instance = fastify()17  instance.register(plugin)18 19  instance.get('/', function (req, reply) {20    t.assert.ok(this.foo)21    t.assert.strictEqual(this.foo, 'foo')22    reply.send()23  })24 25  await instance.inject('/')26 27  t.assert.ok(instance.foo)28  t.assert.strictEqual(instance.foo, 'foo')29})30 31test('handlers have access to the internal context', async (t) => {32  t.plan(5)33 34  const instance = fastify()35  instance.get('/', { config: { foo: 'bar' } }, function (req, reply) {36    t.assert.ok(reply[kRouteContext])37    t.assert.ok(reply[kRouteContext].config)38    t.assert.ok(typeof reply[kRouteContext].config, Object)39    t.assert.ok(reply[kRouteContext].config.foo)40    t.assert.strictEqual(reply[kRouteContext].config.foo, 'bar')41    reply.send()42  })43 44  await instance.inject('/')45})46