auth-api/tests/node_modules/tape/test/async-await/async5.js
2021-06-23 22:30:45 +02:00

60 lines
1.4 KiB
JavaScript

'use strict';
var util = require('util');
var http = require('http');
var test = require('../../');
test('async5', async function myTest(t) {
try {
t.ok(true, 'before server');
var mockDb = { state: 'old' };
var server = http.createServer(function (req, res) {
res.end('OK');
// Pretend we write to the DB and it takes time.
setTimeout(function () {
mockDb.state = 'new';
}, 10);
});
await util.promisify(function (cb) {
server.listen(0, cb);
})();
t.ok(true, 'after server');
t.ok(true, 'before request');
var res = await util.promisify(function (cb) {
var req = http.request({
hostname: 'localhost',
port: server.address().port,
path: '/',
method: 'GET'
}, function (res) {
cb(null, res);
});
req.end();
})();
t.ok(true, 'after request');
res.resume();
t.equal(res.statusCode, 200, 'res.statusCode is 200');
setTimeout(function () {
t.equal(mockDb.state, 'new', 'mockDb.state is new');
server.close(function (err) {
t.ifError(err, 'error on close');
t.end();
});
}, 50);
} catch (err) {
t.ifError(err, 'error in catch');
t.end();
}
});