Как запустить тесты с IPv6 и супер-тестом + expressjs? - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть промежуточное программное обеспечение ExpressJS, написанное на TypeScript, и я использую Jest + Supertest для запуска тестов и создания покрытия для него. Я пытаюсь протестировать фрагмент кода, указанный ниже, но не вижу способа заставить мое приложение ExpressJS прослушивать запросы IPv6 только для достижения 100% отчета о покрытии.

export const getAddress = (req: Request, isProxyTrusted: boolean): string => {
    if (isProxyTrusted) {
        return req.headers['x-forwarded-for'] as string
    } else {
        if (req.connection.remoteAddress.startsWith('::ffff:')) {
            return req.connection.remoteAddress.substr(7)
        }
        return req.connection.remoteAddress //<---- this code will be never executed
    }
}

Я не смог найти никакой информации о том, как заставить ExpressJS прослушивать только IPv6 и даже больше - он слушает его по умолчанию, но предпочитает использовать IPv4. app.listen вызов с :: во втором аргументе не имеет никакого эффекта.

app.listen(81, '::')

describe('ipv6 tests', () => {
    it('should respond with 200', async () => {
        await request(app)
            .get('/')
            .expect(200)
    })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...