test('After all', function (t) { t.plan(0) server.close() server2.close() })
test('authenticate', async function (t) { let openedUrl = '' const openStub = url => { openedUrl = url return openSuccess() } const authenticate = proxyquire('../lib/authenticate', { open: openStub }) // mocking the browser opening const jwtToken = await authenticate(`http://127.0.0.1:${server.address().port}`) t.plan(2) t.strictEqual(openedUrl.split('/auth/token/')[1].replace('/', ''), cliToken) t.strictEqual(jwtToken, 'jwtToken') })
test('clinic ask', function (t) { cli({}, ['clinic', 'ask'], function (err, stdout) { t.plan(2) t.strictDeepEqual(err, new Error('process exited with exit code 1')) t.ok(/Clinic.js Ask[^\w ]/.test(stdout.split('\n')[1])) }) })
test('stack is omitted if it is not set on err', t => { t.plan(2) var err = new Error('myerror') delete err.stack var instance = pino(sink(function (chunk, enc, cb) { t.ok(new Date(chunk.time) <= new Date(), 'time is greater than Date.now()') delete chunk.time t.equal(chunk.hasOwnProperty('stack'), false) cb() })) instance.level = name instance[name](err) })
test('authenticate no auth token', async function (t) { const openStub = url => openSuccess() const authenticate = proxyquire('../lib/authenticate', { open: openStub }) // mocking the browser opening simulateNoToken = true t.on('end', () => { simulateNoToken = false }) try { await authenticate(`http://127.0.0.1:${server.address().port}`) t.fail('it should reject') } catch (err) { t.plan(2) t.ok(err) t.ok(err.message.includes('Authentication failed. No token obtained')) } })
test('stack is rendered as any other property if it\'s not a string', t => { t.plan(3) var err = new Error('myerror') err.stack = null var instance = pino(sink(function (chunk, enc, cb) { t.ok(new Date(chunk.time) <= new Date(), 'time is greater than Date.now()') delete chunk.time t.equal(chunk.hasOwnProperty('stack'), true) t.equal(chunk.stack, null) cb() })) instance.level = name instance[name](err) })
test('clinic ask --help', function (t) { cli({}, ['clinic', 'ask', '--help'], function (err, stdout) { t.plan(2) t.ifError(err) t.ok(/Clinic.js Ask[^\w ]/.test(stdout.split('\n')[1])) }) })
test('Before all', function (t) { t.plan(2) tempCredentials = tempy.directory() server = new FakeUploadServer() server.listen(function () { t.ok(server) }) server2 = new FakeUploadServer() server2.listen(function () { t.ok(server2) }) })
test('Before all', function (t) { t.plan(1) server = new FakeUploadServer() server.listen(function () { t.ok(server) }) })
test('clinic user exits with 1 if not authenticated', function (t) { cli({ env: { CLINIC_CREDENTIALS: path.join(tempCredentials, '.clinic-user') } }, [ 'clinic', 'user' ], function (err, stdout) { t.plan(2) t.ok(err) t.ok(/exited with exit code 1/.test(err.message)) }) })
test('clinic ask 10000.clinic-doctor auth failure', function (t) { cli({ env: { CLINIC_MOCK_AUTH_FAIL: 'true' } }, [ 'clinic', 'ask', '--server', server.uploadUrl, '--no-open', doctorADirectory ], function (err, stdout, stderr) { t.plan(2) t.ok(err) t.ok(stderr.includes('Auth artificially failed')) }) })
test('After all', function (t) { t.plan(0) server.close(() => t.endAll()) })
test('After all', function (t) { t.plan(0) server.close() })
test('clinic ask -h', function (t) { cli({}, ['clinic', 'ask', '-h'], function (err, stdout) { t.plan(2) t.ifError(err) t.ok(/Clinic.js Ask[^\w ]/.test(stdout.split('\n')[1])) }) })
test('authenticate timeout', async function (t) { const openStub = url => openSuccess() const authenticate = proxyquire('../lib/authenticate', { open: openStub }) // mocking the browser opening simulateTimeout = true t.on('end', () => { simulateTimeout = false }) try { await authenticate(`http://127.0.0.1:${server.address().port}`) t.fail('it should reject') } catch (err) { t.plan(2) t.ok(err) t.ok(err.message.includes('Authentication timed out')) } })