diff --git a/src/content/BatchRequestContent.ts b/src/content/BatchRequestContent.ts index ce76ead1f..261e79ebf 100644 --- a/src/content/BatchRequestContent.ts +++ b/src/content/BatchRequestContent.ts @@ -198,9 +198,10 @@ export class BatchRequestContent { const requestData: RequestData = { url: "", }; - const hasHttpRegex = new RegExp("^https?://"); + // Stripping off hostname, port and url scheme - requestData.url = hasHttpRegex.test(request.url) ? "/" + request.url.split(/.*?\/\/.*?\//)[1] : request.url; + requestData.url = request.url.replace(/^(?:http)?s?:?(?:\/\/)?[^\/]+\/(?:v1.0|beta)?/i, ''); // replaces ??+?+ by an empty string + requestData.method = request.method; const headers = {}; request.headers.forEach((value, key) => { diff --git a/test/common/content/BatchRequestContent.ts b/test/common/content/BatchRequestContent.ts index 72178b803..4dafecdff 100644 --- a/test/common/content/BatchRequestContent.ts +++ b/test/common/content/BatchRequestContent.ts @@ -213,6 +213,14 @@ describe("BatchRequestContent.ts", () => { assert.isDefined(content.requests[0].body); assert.equal(typeof content.requests[0].body, "object"); }); + + it("Should parse path with url", async () => { + const req = getCreateFolderRequestCopy(); + req.request = new Request("https://graph.microsoft.com/v1.0" + req.request.url); + const batchReq = new BatchRequestContent([req]); + const content = await batchReq.getContent(); + assert.equal(content.requests[0].url, "/me/drive/root/children"); + }); }); describe("removeDependency", function() {