From 826ae82dc1e7540d3bd1ffe617b3764110263c73 Mon Sep 17 00:00:00 2001 From: Ferdi Koomen Date: Sat, 13 Mar 2021 19:29:40 +0100 Subject: [PATCH] - Fixed test spec for cancelation --- src/templates/core/xhr/sendRequest.hbs | 12 ++---------- test/e2e/scripts/browser.js | 2 +- test/e2e/v2.fetch.spec.js | 21 ++++++++++++--------- test/e2e/v2.node.spec.js | 18 ++++++++++-------- test/e2e/v2.xhr.spec.js | 21 ++++++++++++--------- test/e2e/v3.fetch.spec.js | 21 ++++++++++++--------- test/e2e/v3.node.spec.js | 18 ++++++++++-------- test/e2e/v3.xhr.spec.js | 21 ++++++++++++--------- 8 files changed, 71 insertions(+), 63 deletions(-) diff --git a/src/templates/core/xhr/sendRequest.hbs b/src/templates/core/xhr/sendRequest.hbs index 4bb3082f..02d1f893 100644 --- a/src/templates/core/xhr/sendRequest.hbs +++ b/src/templates/core/xhr/sendRequest.hbs @@ -9,16 +9,8 @@ async function sendRequest(options: ApiRequestOptions, url: string, onCancel: (c }); return new Promise((resolve, reject) => { - xhr.onreadystatechange = () => { - if (xhr.readyState === XMLHttpRequest.DONE) { - resolve(xhr); - } - console.log(xhr.readyState); - if (xhr.readyState === XMLHttpRequest.DONE) { - reject(); - } - }; - + xhr.onload = () => resolve(xhr); + xhr.onabort = () => reject(new Error('The user aborted a request.')); xhr.send(getRequestBody(options)); onCancel(() => xhr.abort()); diff --git a/test/e2e/scripts/browser.js b/test/e2e/scripts/browser.js index cc247857..40703d93 100644 --- a/test/e2e/scripts/browser.js +++ b/test/e2e/scripts/browser.js @@ -3,7 +3,7 @@ const puppeteer = require('puppeteer'); let browser; -let page +let page; async function start() { // This starts the a new puppeteer browser (Chrome) diff --git a/test/e2e/v2.fetch.spec.js b/test/e2e/v2.fetch.spec.js index 7c81c5a9..78e27b20 100644 --- a/test/e2e/v2.fetch.spec.js +++ b/test/e2e/v2.fetch.spec.js @@ -46,14 +46,17 @@ describe('v2.fetch', () => { }); it('can abort the request', async () => { - const result = await browser.evaluate(async () => { - const { SimpleService } = window.api; - const promise = SimpleService.getCallWithoutParametersAndResponse(); - setTimeout(() => { - promise.cancel(); - }, 10); - await promise; - }); - expect(result).toBeUndefined(); + try { + await browser.evaluate(async () => { + const { SimpleService } = window.api; + const promise = SimpleService.getCallWithoutParametersAndResponse(); + setTimeout(() => { + promise.cancel(); + }, 10); + await promise; + }); + } catch (e) { + expect(e.message).toContain('The user aborted a request.'); + } }); }); diff --git a/test/e2e/v2.node.spec.js b/test/e2e/v2.node.spec.js index e7718631..10eac04e 100644 --- a/test/e2e/v2.node.spec.js +++ b/test/e2e/v2.node.spec.js @@ -38,13 +38,15 @@ describe('v2.node', () => { }); it('can abort the request', async () => { - const { SimpleService } = require('./generated/v3/node/index.js'); - const promise = await SimpleService.getCallWithoutParametersAndResponse(); - setTimeout(() => { - promise.cancel(); - }, 10); - const result = await promise; - expect(result).toBeDefined(); + try { + const { SimpleService } = require('./generated/v3/node/index.js'); + const promise = SimpleService.getCallWithoutParametersAndResponse(); + setTimeout(() => { + promise.cancel(); + }, 10); + await promise; + } catch (e) { + expect(e.message).toContain('The user aborted a request.'); + } }); - }); diff --git a/test/e2e/v2.xhr.spec.js b/test/e2e/v2.xhr.spec.js index e24a0b37..07bbadd1 100644 --- a/test/e2e/v2.xhr.spec.js +++ b/test/e2e/v2.xhr.spec.js @@ -46,14 +46,17 @@ describe('v2.xhr', () => { }); it('can abort the request', async () => { - const result = await browser.evaluate(async () => { - const { SimpleService } = window.api; - const promise = SimpleService.getCallWithoutParametersAndResponse(); - setTimeout(() => { - promise.cancel(); - }, 10); - await promise; - }); - expect(result).toBeUndefined(); + try { + await browser.evaluate(async () => { + const { SimpleService } = window.api; + const promise = SimpleService.getCallWithoutParametersAndResponse(); + setTimeout(() => { + promise.cancel(); + }, 10); + await promise; + }); + } catch (e) { + expect(e.message).toContain('The user aborted a request.'); + } }); }); diff --git a/test/e2e/v3.fetch.spec.js b/test/e2e/v3.fetch.spec.js index 889e5a1e..bef85052 100644 --- a/test/e2e/v3.fetch.spec.js +++ b/test/e2e/v3.fetch.spec.js @@ -59,14 +59,17 @@ describe('v3.fetch', () => { }); it('can abort the request', async () => { - const result = await browser.evaluate(async () => { - const { SimpleService } = window.api; - const promise = SimpleService.getCallWithoutParametersAndResponse(); - setTimeout(() => { - promise.cancel(); - }, 10); - await promise; - }); - expect(result).toBeUndefined(); + try { + await browser.evaluate(async () => { + const { SimpleService } = window.api; + const promise = SimpleService.getCallWithoutParametersAndResponse(); + setTimeout(() => { + promise.cancel(); + }, 10); + await promise; + }); + } catch (e) { + expect(e.message).toContain('The user aborted a request.'); + } }); }); diff --git a/test/e2e/v3.node.spec.js b/test/e2e/v3.node.spec.js index 197b24ee..480e0382 100644 --- a/test/e2e/v3.node.spec.js +++ b/test/e2e/v3.node.spec.js @@ -49,13 +49,15 @@ describe('v3.node', () => { }); it('can abort the request', async () => { - const { SimpleService } = require('./generated/v3/node/index.js'); - const promise = await SimpleService.getCallWithoutParametersAndResponse(); - setTimeout(() => { - promise.cancel(); - }, 10); - const result = await promise; - expect(result).toBeDefined(); + try { + const { SimpleService } = require('./generated/v3/node/index.js'); + const promise = SimpleService.getCallWithoutParametersAndResponse(); + setTimeout(() => { + promise.cancel(); + }, 10); + await promise; + } catch (e) { + expect(e.message).toContain('The user aborted a request.'); + } }); - }); diff --git a/test/e2e/v3.xhr.spec.js b/test/e2e/v3.xhr.spec.js index 84c79d95..8cc647ac 100644 --- a/test/e2e/v3.xhr.spec.js +++ b/test/e2e/v3.xhr.spec.js @@ -59,14 +59,17 @@ describe('v3.xhr', () => { }); it('can abort the request', async () => { - const result = await browser.evaluate(async () => { - const { SimpleService } = window.api; - const promise = SimpleService.getCallWithoutParametersAndResponse(); - setTimeout(() => { - promise.cancel(); - }, 10); - await promise; - }); - expect(result).toBeUndefined(); + try { + await browser.evaluate(async () => { + const { SimpleService } = window.api; + const promise = SimpleService.getCallWithoutParametersAndResponse(); + setTimeout(() => { + promise.cancel(); + }, 10); + await promise; + }); + } catch (e) { + expect(e.message).toContain('The user aborted a request.'); + } }); });