You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

63 lines
1.3 KiB

import test from 'ava';
import pem from 'pem';
import pify from 'pify';
import got from '../';
import {createSSLServer} from './helpers/server';
let s;
let key;
let cert;
let caRootKey;
let caRootCert;
const pemP = pify(pem, Promise);
test.before('setup', async () => {
const caKeys = await pemP.createCertificate({days: 1, selfSigned: true});
caRootKey = caKeys.serviceKey;
caRootCert = caKeys.certificate;
const keys = await pemP.createCertificate({
serviceCertificate: caRootCert,
serviceKey: caRootKey,
serial: Date.now(),
days: 500,
country: '',
state: '',
locality: '',
organization: '',
organizationUnit: '',
commonName: 'sindresorhus.com'
});
key = keys.clientKey;
cert = keys.certificate;
s = await createSSLServer({key, cert});
s.on('/', (req, res) => res.end('ok'));
await s.listen(s.port);
});
test('redirects from http to https works', async t => {
t.ok((await got('http://github.com')).body);
});
test('make request to https server', async t => {
t.ok((await got('https://google.com', {strictSSL: true})).body);
});
test('make request to https server with ca', async t => {
const {body} = await got(s.url, {
strictSSL: true,
ca: caRootCert,
headers: {host: 'sindresorhus.com'}
});
t.is(body, 'ok');
});
test.after('cleanup', async () => {
await s.close();
});