Files
node/deps/npm/test/lib/utils/web-auth.js
T
npm CLI robot 66b1356ebc deps: upgrade npm to 9.3.0
PR-URL: https://github.com/nodejs/node/pull/46193
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2023-01-17 03:38:23 +00:00

34 lines
941 B
JavaScript

const t = require('tap')
const tmock = require('../../fixtures/tmock')
const webAuthCheckLogin = async () => {
return { token: 'otp-token' }
}
const webauth = tmock(t, '{LIB}/utils/web-auth.js', {
'npm-profile': { webAuthCheckLogin },
})
const initialUrl = 'https://example.com/auth'
const doneUrl = 'https://example.com/done'
const opts = {}
t.test('returns token on success', async (t) => {
const opener = async () => {}
const result = await webauth(opener, initialUrl, doneUrl, opts)
t.equal(result, 'otp-token')
})
t.test('closes opener when auth check finishes', async (t) => {
const opener = (_url, emitter) => {
return new Promise((resolve, reject) => {
// the only way to finish this promise is to emit aboter on the emitter
emitter.addListener('abort', () => {
resolve()
})
})
}
const result = await webauth(opener, initialUrl, doneUrl, opts)
t.equal(result, 'otp-token')
})