@elastic.io/ntlm-client
Version:
A node.js NTLM client with support for NTLM and NTLMv2 authentication. Continuation of ntlm-client and node-ntlm-client.
55 lines (45 loc) • 1.77 kB
JavaScript
const fs = require('fs');
const { expect } = require('chai');
const ntlmRequest = require('../lib/index').request;
if (fs.existsSync('.env')) {
// eslint-disable-next-line global-require
require('dotenv').config();
}
describe('Integration Tests', function() {
let username;
let password;
let url;
this.timeout(50000);
['NTLM_V2', 'NTLM_V1', 'BASIC'].forEach(authType => {
if(process.env[`${authType}_USERNAME`] && process.env[`${authType}_PASSWORD`] && process.env[`${authType}_URL`]) {
console.log(`Detected Authorization Configuration For ${authType}`);
describe(`${authType} Tests`, function () {
before(() => {
username = process.env[`${authType}_USERNAME`];
password = process.env[`${authType}_PASSWORD`];
url = process.env[`${authType}_URL`];
});
it('Correct Password', async() => {
const { response } = await ntlmRequest({
username,
password,
uri: url,
method: 'GET'
});
expect(response.statusCode).to.be.equal(200);
});
it('Incorrect Password', async() => {
const { response } = await ntlmRequest({
username,
password: 'Wrong Password',
uri: url,
method: 'GET'
});
expect(response.statusCode).to.be.equal(401);
});
});
} else {
console.log(`Missing Required Authorization Configuration For ${authType}`);
}
});
});