summaryrefslogtreecommitdiffstats
path: root/test/invalid-headers.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/invalid-headers.js')
-rw-r--r--test/invalid-headers.js108
1 files changed, 108 insertions, 0 deletions
diff --git a/test/invalid-headers.js b/test/invalid-headers.js
new file mode 100644
index 0000000..caf9e0a
--- /dev/null
+++ b/test/invalid-headers.js
@@ -0,0 +1,108 @@
+'use strict'
+
+const { test } = require('tap')
+const { Client, errors } = require('..')
+
+test('invalid headers', (t) => {
+ t.plan(10)
+
+ const client = new Client('http://localhost:3000')
+ t.teardown(client.destroy.bind(client))
+ client.request({
+ path: '/',
+ method: 'GET',
+ headers: {
+ 'content-length': 'asd'
+ }
+ }, (err, data) => {
+ t.type(err, errors.InvalidArgumentError)
+ })
+
+ client.request({
+ path: '/',
+ method: 'GET',
+ headers: 1
+ }, (err, data) => {
+ t.type(err, errors.InvalidArgumentError)
+ })
+
+ client.request({
+ path: '/',
+ method: 'GET',
+ headers: {
+ 'transfer-encoding': 'chunked'
+ }
+ }, (err, data) => {
+ t.type(err, errors.InvalidArgumentError)
+ })
+
+ client.request({
+ path: '/',
+ method: 'GET',
+ headers: {
+ upgrade: 'asd'
+ }
+ }, (err, data) => {
+ t.type(err, errors.InvalidArgumentError)
+ })
+
+ client.request({
+ path: '/',
+ method: 'GET',
+ headers: {
+ connection: 'asd'
+ }
+ }, (err, data) => {
+ t.type(err, errors.InvalidArgumentError)
+ })
+
+ client.request({
+ path: '/',
+ method: 'GET',
+ headers: {
+ 'keep-alive': 'timeout=5'
+ }
+ }, (err, data) => {
+ t.type(err, errors.InvalidArgumentError)
+ })
+
+ client.request({
+ path: '/',
+ method: 'GET',
+ headers: {
+ foo: {}
+ }
+ }, (err, data) => {
+ t.type(err, errors.InvalidArgumentError)
+ })
+
+ client.request({
+ path: '/',
+ method: 'GET',
+ headers: {
+ expect: '100-continue'
+ }
+ }, (err, data) => {
+ t.type(err, errors.NotSupportedError)
+ })
+
+ client.request({
+ path: '/',
+ method: 'GET',
+ headers: {
+ Expect: '100-continue'
+ }
+ }, (err, data) => {
+ t.type(err, errors.NotSupportedError)
+ })
+
+ client.request({
+ path: '/',
+ method: 'GET',
+ headers: {
+ expect: 'asd'
+ }
+ }, (err, data) => {
+ t.type(err, errors.NotSupportedError)
+ })
+})