34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
|
import Request from 'request-promise';
|
||
|
|
||
|
async function GetSecret(username: string, password: string) {
|
||
|
return await Request('https://single_factor.example.com:8080/secret.html', {
|
||
|
auth: {
|
||
|
username,
|
||
|
password
|
||
|
},
|
||
|
rejectUnauthorized: false,
|
||
|
});
|
||
|
}
|
||
|
|
||
|
export default function() {
|
||
|
it("should retrieve secret when Authorization header is provided", async function() {
|
||
|
const res = await GetSecret('john', 'password');
|
||
|
if (res.indexOf('This is a very important secret!') < 0) {
|
||
|
throw new Error('Cannot access secret.');
|
||
|
}
|
||
|
});
|
||
|
|
||
|
it("should not retrieve secret when providing bad password", async function() {
|
||
|
const res = await GetSecret('john', 'bad-password');
|
||
|
if (res.indexOf('This is a very important secret!') >= 0) {
|
||
|
throw new Error('Cannot access secret.');
|
||
|
}
|
||
|
});
|
||
|
|
||
|
it("should not retrieve secret when authenticating with unexisting user", async function() {
|
||
|
const res = await GetSecret('dontexist', 'password');
|
||
|
if (res.indexOf('This is a very important secret!') >= 0) {
|
||
|
throw new Error('Cannot access secret.');
|
||
|
}
|
||
|
});
|
||
|
}
|