fastify / fastify/light-my-request

Support HTTP/2 (including Cleartext)

Open
#315 7 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
420
Forks
55
Avg merge
13d 14h
Merged PRs (30d)
1

Description

### Prerequisites

- [X] I have written a descriptive issue title
- [X] I have searched existing issues to ensure the feature has not already been requested

### 🚀 Feature Proposal

Add options to `inject()` to send HTTP/2 requests instead of HTTP/1.1. My proposal would be `app.inject({ http2: true })...` or `app.inject({ httpVersion: 2 })...` but automatic detection could work too.

### Motivation

When I add `http2: true` to Fastify options, all requests made with `inject()` receive 505 status code. For secure servers, adding `https: { allowHttp1: true }` works, but
1. the user may not want to allow HTTP/1.1;
2. the server may behave differently depending on the protocol version and it's desired to test HTTP/2 in particular.

As a workaround for 1, you could have `https: { allowHttp1: process.env.JEST_WORKER_ID !== undefined }`, but I don't like server code knowing about tests like that.

And of course, if the server wants to use H2C, there's no `allowHttp1` option.

### Example

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.