Skip to content

Commit

Permalink
remove request and bump gulp
Browse files Browse the repository at this point in the history
  • Loading branch information
PavelMor25 committed Jun 27, 2024
1 parent f7b0852 commit 9111cd6
Show file tree
Hide file tree
Showing 13 changed files with 1,342 additions and 2,456 deletions.
2,990 changes: 896 additions & 2,094 deletions package-lock.json

Large diffs are not rendered by default.

3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
"eslint-plugin-no-only-tests": "^2.0.1",
"express": "4.19.2",
"express-ntlm": "2.1.5",
"gulp": "^4.0.0",
"gulp": "^5.0.0",
"gulp-clone": "^2.0.1",
"gulp-eslint": "^6.0.0",
"gulp-ll-next": "^2.1.0",
Expand All @@ -83,7 +83,6 @@
"multiline": "^1.0.2",
"openssl-self-signed-certificate": "1.1.6",
"publish-please": "^5.5.2",
"request-promise-native": "^1.0.5",
"rollup": "^2.38.5",
"rollup-plugin-typescript2": "^0.32.1",
"tmp": "0.0.26",
Expand Down
37 changes: 22 additions & 15 deletions test/server/auth-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ const expect = require('chai').expect;
const express = require('express');
const ntlm = require('express-ntlm');
const auth = require('basic-auth');
const request = require('request-promise-native');
const headersUtils = require('../../lib/utils/headers');

const {
createAndStartProxy,
createSession,
request,
} = require('./common/utils');

describe('Authentication', () => { // eslint-disable-line
Expand Down Expand Up @@ -57,9 +57,13 @@ describe('Authentication', () => { // eslint-disable-line
return request(options)
.then(res => {
expect(res.statusCode).equal(200);
expect(res.body.UserName).equal('username');
expect(res.body.DomainName).equal('DOMAIN');
expect(res.body.Workstation).equal('WORKSTATION');

return res.response.json();
})
.then(body => {
expect(body.UserName).equal('username');
expect(body.DomainName).equal('DOMAIN');
expect(body.Workstation).equal('WORKSTATION');
});
});
});
Expand Down Expand Up @@ -106,8 +110,10 @@ describe('Authentication', () => { // eslint-disable-line
return request(options)
.then(res => {
expect(res.statusCode).equal(200);
expect(res.body).equal('Access granted');
});

return res.response.text();
})
.then(body => expect(body).equal('Access granted'));
});

it('Should not authorize with incorrect credentials', () => {
Expand All @@ -125,15 +131,14 @@ describe('Authentication', () => { // eslint-disable-line
};

return request(options)
.then(() => {
expect.fail('Request should raise an "401" error');
})
.catch(err => {
.then(err => {
expect(err.statusCode).equal(401);
expect(err.error).equal('Access denied');
// NOTE: prevent showing the native credentials window.
expect(err.response.headers['www-authenticate']).eql(headersUtils.addAuthenticatePrefix('Basic realm="example"'));
});
expect(err.headers['www-authenticate']).eql(headersUtils.addAuthenticatePrefix('Basic realm="example"'));

return err.response.text();
})
.then(body => expect(body).equal('Access denied'));
});

it('Should authorize with correct credentials that passed through url', () => {
Expand All @@ -145,8 +150,10 @@ describe('Authentication', () => { // eslint-disable-line
return request(options)
.then(res => {
expect(res.statusCode).equal(200);
expect(res.body).equal('Access granted');
});

return res.response.text();
})
.then(body => expect(body).equal('Access granted'));
});
});
});
12 changes: 7 additions & 5 deletions test/server/charset-test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
const fs = require('fs');
const request = require('request-promise-native');
const { expect } = require('chai');
const express = require('express');
const iconv = require('iconv-lite');
Expand All @@ -12,7 +11,10 @@ const { processScript } = require('../../lib/processing/script');
const pageProcessor = require('../../lib/processing/resources/page');
const stylesheetProcessor = require('../../lib/processing/resources/stylesheet');
const manifestProcessor = require('../../lib/processing/resources/manifest');
const { createAndStartProxy } = require('./common/utils');
const {
createAndStartProxy,
requestBody,
} = require('./common/utils');


function normalizeCode (code) {
Expand Down Expand Up @@ -161,7 +163,7 @@ describe('Content charset', () => {
},
};

return request(options)
return requestBody(options)
.then(body => {
compareCode(body, expectedBody);
});
Expand Down Expand Up @@ -235,7 +237,7 @@ describe('Content charset', () => {
const url = getProxyUrl('http://127.0.0.1:2000' +
destUrl, urlUtils.getResourceTypeString(resourceType), expectedCharset);

return request(url)
return requestBody({ url })
.then(body => {
compareCode(body, expectedBody);
});
Expand Down Expand Up @@ -268,7 +270,7 @@ describe('Content charset', () => {

describe('Other resources', () => {
function testResourceCharset (expectedBody, charsetStr, url) {
return request(url)
return requestBody({ url })
.then(body => {
compareCode(body, iconv.encode(expectedBody, charsetStr, { addBOM: /\/bom$/.test(url) }).toString());
});
Expand Down
34 changes: 34 additions & 0 deletions test/server/common/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -180,3 +180,37 @@ exports.getFreePort = function () {
return ports[0];
});
};

function nodeFetch (url, options) {
/*eslint-disable no-undef*/
return fetch(url, options);

Check failure

Code scanning / CodeQL

Download of sensitive file through insecure connection High test

Download
of sensitive file from
HTTP source
.
Download
of sensitive file from
HTTP source
.
Download
of sensitive file from
HTTP source
.
Download
of sensitive file from
HTTP source
.
Download
of sensitive file from
HTTP source
.
Download
of sensitive file from
HTTP source
.
Download
of sensitive file from
HTTP source
.
/*eslint-enable no-undef*/
}

exports.nodeFetch = function (url, options) {
return nodeFetch(url, options);
};

exports.request = async function (options) {
const res = {};

const response = await nodeFetch(options.url, options);

res.statusCode = response.status;
res.headers = Object.fromEntries(response.headers);
res.response = response.clone();

return res;
};

exports.requestBody = async (options) => {
const res = await nodeFetch(options.url, options);

return res.text();
};

exports.requestBodyJson = async (options) => {
const res = await nodeFetch(options.url, options);

return res.json();
};
32 changes: 18 additions & 14 deletions test/server/external-proxy-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,15 @@ const http = require('http');
const https = require('https');
const urlLib = require('url');
const net = require('net');
const request = require('request-promise-native');
const { expect } = require('chai');
const selfSignedCertificate = require('openssl-self-signed-certificate');
const Session = require('../../lib/session');
const { createAndStartProxy } = require('./common/utils');

const {
createAndStartProxy,
request,
requestBody,
} = require('./common/utils');

const sockets = [];

Expand Down Expand Up @@ -164,9 +168,9 @@ describe('External proxy', () => {
it('Should send the http request through the proxy', () => {
session.setExternalProxySettings('127.0.0.1:2002');

const proxyUrl = proxy.openSession('http://127.0.0.1:2000/path', session);
const url = proxy.openSession('http://127.0.0.1:2000/path', session);

return request(proxyUrl)
return requestBody({ url })
.then(body => {
expect(body).eql('/path');
expect(proxyLogs.length).eql(1);
Expand All @@ -178,9 +182,9 @@ describe('External proxy', () => {
it('Should send the https request through the proxy', () => {
session.setExternalProxySettings('127.0.0.1:2002');

const proxyUrl = proxy.openSession('https://127.0.0.1:2001/path', session);
const url = proxy.openSession('https://127.0.0.1:2001/path', session);

return request(proxyUrl)
return requestBody({ url })
.then(body => {
expect(body).eql('/path');
expect(proxyLogs.length).eql(1);
Expand All @@ -190,9 +194,9 @@ describe('External proxy', () => {
});

it('Should send the http request through the proxy with auth', () => {
const proxyUrl = proxy.openSession('http://127.0.0.1:2000/path', session, 'login:[email protected]:2002');
const url = proxy.openSession('http://127.0.0.1:2000/path', session, 'login:[email protected]:2002');

return request(proxyUrl)
return requestBody({ url })
.then(body => {
expect(body).eql('/path');
expect(proxyLogs.length).eql(1);
Expand All @@ -202,9 +206,9 @@ describe('External proxy', () => {
});

it('Should send the https request through the proxy with auth', () => {
const proxyUrl = proxy.openSession('https://127.0.0.1:2001/path', session, 'login:[email protected]:2002');
const url = proxy.openSession('https://127.0.0.1:2001/path', session, 'login:[email protected]:2002');

return request(proxyUrl)
return requestBody({ url })
.then(body => {
expect(body).eql('/path');
expect(proxyLogs.length).eql(1);
Expand Down Expand Up @@ -293,9 +297,9 @@ describe('External proxy', () => {
it('http', () => {
session.setExternalProxySettings({ url: '127.0.0.1:2002', bypassRules: ['127.0.0.1:2000'] });

const proxyUrl = proxy.openSession('http://127.0.0.1:2000/path', session);
const url = proxy.openSession('http://127.0.0.1:2000/path', session);

return request(proxyUrl)
return requestBody({ url })
.then(body => {
expect(body).eql('/path');
expect(proxyLogs.length).eql(0);
Expand All @@ -311,9 +315,9 @@ describe('External proxy', () => {
it('https', () => {
session.setExternalProxySettings({ url: '127.0.0.1:2002', bypassRules: ['127.0.0.1:2001'] });

const proxyUrl = proxy.openSession('https://127.0.0.1:2001/path', session);
const url = proxy.openSession('https://127.0.0.1:2001/path', session);

return request(proxyUrl)
return requestBody({ url })
.then(body => {
expect(body).eql('/path');
expect(proxyLogs.length).eql(0);
Expand Down
8 changes: 4 additions & 4 deletions test/server/proxy/cache-test.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
const request = require('request-promise-native');
const fs = require('fs');
const { expect } = require('chai');
const requestsCache = require('../../../lib/request-pipeline/cache');
Expand All @@ -15,6 +14,7 @@ const {
createAndStartProxy,
compareCode,
getBasicProxyUrl,
requestBody,
} = require('../common/utils');

const emitter = new EventEmitter();
Expand Down Expand Up @@ -108,7 +108,7 @@ describe('Cache', () => {
const session = createSession();
const clonedRequestParameters = Object.assign({}, requestParameters);

clonedRequestParameters.url = getBasicProxyUrl(clonedRequestParameters.url, { isAjax }, void 0, void 0, false, session);
const url = getBasicProxyUrl(clonedRequestParameters.url, { isAjax }, void 0, void 0, false, session);

proxy.openSession('http://example.com/', session);

Expand All @@ -119,7 +119,7 @@ describe('Cache', () => {

let expectedServerRouteCalls = getExpectedServerRouteCall(i, 1, shouldCache);

let currentResult = await request(clonedRequestParameters);
let currentResult = await requestBody({ ...clonedRequestParameters, url });

expect(serverRouteCalls).eql(expectedServerRouteCalls);

Expand All @@ -128,7 +128,7 @@ describe('Cache', () => {
else
expect(currentResult.length).gt(0);

currentResult = await request(clonedRequestParameters);
currentResult = await requestBody({ ...clonedRequestParameters, url });

expectedServerRouteCalls = getExpectedServerRouteCall(i, 2, shouldCache);

Expand Down
17 changes: 10 additions & 7 deletions test/server/proxy/file-protocol-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ const {
createAndStartProxy,
getFileProtocolUrl,
compareCode,
request,
requestBody,
} = require('../common/utils');

const {
PAGE_ACCEPT_HEADER,
} = require('../common/constants');

const request = require('request-promise-native');
const fs = require('fs');
const os = require('os');
const path = require('path');
Expand Down Expand Up @@ -49,7 +50,7 @@ describe('file:// protocol', () => {
},
};

return request(options)
return requestBody(options)
.then(body => {
// NOTE: The host property is empty in url with file: protocol.
// The expected.html template is used for both tests with http: and file: protocol.
Expand All @@ -71,7 +72,7 @@ describe('file:// protocol', () => {
},
};

return request(options)
return requestBody(options)
.then(body => {
const expected = fs.readFileSync('test/server/data/stylesheet/expected.css').toString();

Expand All @@ -92,7 +93,7 @@ describe('file:// protocol', () => {
},
};

return request(options)
return requestBody(options)
.then(body => {
const filePath = 'test/server/data/page-with-file-protocol/expected-' + filePostfix + '.html';
const expected = fs.readFileSync(filePath).toString();
Expand All @@ -114,7 +115,7 @@ describe('file:// protocol', () => {
},
};

return request(options)
return requestBody(options)
.then(body => {
const expected = fs.readFileSync('test/server/data/page-with-file-protocol/expected-win.html').toString();

Expand Down Expand Up @@ -239,7 +240,9 @@ describe('file:// protocol', () => {
return request(options)
.then(res => {
expect(res.headers['content-type']).eql('text/plain');
expect(res.body).eql('asar archive file: src.txt');
});

return res.response.text();
})
.then(body => expect(body).eql('asar archive file: src.txt'));
});
});
Loading

0 comments on commit 9111cd6

Please sign in to comment.