From 0a25bf4e004ce8d4c5a3647d9dcd79ec617be87f Mon Sep 17 00:00:00 2001 From: George Kudrayvtsev Date: Tue, 15 Aug 2023 15:28:36 -0700 Subject: [PATCH] Update integration test for both clients --- test/integration/client_headers_test.js | 74 ++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 8 deletions(-) diff --git a/test/integration/client_headers_test.js b/test/integration/client_headers_test.js index bf76ac208..21ac25534 100644 --- a/test/integration/client_headers_test.js +++ b/test/integration/client_headers_test.js @@ -1,9 +1,11 @@ -const http = require('http'); -const url = require('url'); +const http = require("http"); +const url = require("url"); const port = 3100; -describe('integration tests: client headers', function (done) { - if (typeof window !== 'undefined') { +const versionPattern = /^[0-9]+\.[0-9]+\.[0-9]+(-[a-z]+(\.[0-9])?)?$/; + +describe("integration tests: client headers", function (done) { + if (typeof window !== "undefined") { done(); return; } @@ -12,10 +14,8 @@ describe('integration tests: client headers', function (done) { let server; const requestHandler = (request, response) => { - expect(request.headers['x-client-name']).to.be.equal('js-soroban-client'); - expect(request.headers['x-client-version']).to.match( - /^[0-9]+\.[0-9]+\.[0-9]+(-[a-z]+(\.[0-9])?)?$/ - ); + expect(request.headers['x-client-name']).to.be.equal('js-stellar-sdk'); + expect(request.headers['x-client-version']).to.match(versionPattern); response.end(); server.close(() => done()); }; @@ -32,4 +32,62 @@ describe('integration tests: client headers', function (done) { }).getHealth(); }); }); + + it("sends client via headers", function (done) { + let server; + + const requestHandler = (request, response) => { + expect(request.headers["x-client-name"]).to.be.equal("js-stellar-sdk"); + expect(request.headers["x-client-version"]).to.match(versionPattern); + response.end(); + server.close(() => done()); + }; + + server = http.createServer(requestHandler); + server.listen(port, (err) => { + if (err) { + done(err); + return; + } + + new StellarSdk.Server(`http://localhost:${port}`, { allowHttp: true }) + .operations() + .call(); + }); + }); + + it("sends client data via get params when streaming", function (done) { + let server; + let closeStream; + + const requestHandler = (request, response) => { + // eslint-disable-next-line node/no-deprecated-api + let query = url.parse(request.url, true).query; + expect(query["X-Client-Name"]).to.be.equal("js-stellar-sdk"); + expect(query["X-Client-Version"]).to.match(versionPattern); + response.end(); + server.close(() => { + closeStream(); + done(); + }); + }; + + server = http.createServer(requestHandler); + server.listen(port, (err) => { + if (err) { + done(err); + return; + } + + closeStream = new StellarSdk.Server(`http://localhost:${port}`, { + allowHttp: true, + }) + .operations() + .stream({ + onerror: (err) => { + done(err); + }, + }); + }); + }); });