summaryrefslogtreecommitdiffstats
path: root/test/fuzzing/client/client-fuzz-body.js
blob: 6643ddaf6f7a35e23d1379c5db06440a230966a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
'use strict'

const { request, errors } = require('../../..')

const acceptableCodes = [
  'ERR_INVALID_ARG_TYPE'
]

// TODO: could make this a class with some inbuilt functionality that we can inherit
async function fuzz (netServer, results, buf) {
  const body = buf
  results.body = body
  try {
    const data = await request(`http://localhost:${netServer.address().port}`, { body })
    data.body.destroy().on('error', () => {})
  } catch (err) {
    results.err = err
    // Handle any undici errors
    if (Object.values(errors).some(undiciError => err instanceof undiciError)) {
      // Okay error
    } else if (!acceptableCodes.includes(err.code)) {
      console.log(`=== Headers: ${JSON.stringify(body)} ===`)
      throw err
    }
  }
}

module.exports = fuzz