diff --git a/test/e2e/scripts/browser.js b/test/e2e/scripts/browser.js index 40b1d6e0..cc247857 100644 --- a/test/e2e/scripts/browser.js +++ b/test/e2e/scripts/browser.js @@ -31,8 +31,13 @@ async function evaluate(fn, ...args) { return await page.evaluate(fn, args); } +async function exposeFunction(name, fn) { + return await page.exposeFunction(name, fn); +} + module.exports = { start, stop, evaluate, + exposeFunction, }; diff --git a/test/e2e/scripts/transpile.js b/test/e2e/scripts/compileWithBabel.js similarity index 93% rename from test/e2e/scripts/transpile.js rename to test/e2e/scripts/compileWithBabel.js index 741c3cfe..05c6a467 100644 --- a/test/e2e/scripts/transpile.js +++ b/test/e2e/scripts/compileWithBabel.js @@ -4,7 +4,7 @@ const glob = require('glob'); const fs = require('fs'); const babel = require('@babel/core'); -function transpile(dir) { +function compileWithBabel(dir) { glob.sync(`./test/e2e/generated/${dir}/**/*.ts`).forEach(file => { try { const content = fs.readFileSync(file, 'utf8').toString(); @@ -30,4 +30,4 @@ function transpile(dir) { }); } -module.exports = transpile; +module.exports = compileWithBabel; diff --git a/test/e2e/scripts/compile.js b/test/e2e/scripts/compileWithTypescript.js similarity index 94% rename from test/e2e/scripts/compile.js rename to test/e2e/scripts/compileWithTypescript.js index 3e95f0a7..0987ad71 100644 --- a/test/e2e/scripts/compile.js +++ b/test/e2e/scripts/compileWithTypescript.js @@ -4,7 +4,7 @@ const ts = require('typescript'); const path = require('path'); const os = require('os'); -function compile(dir) { +function compileWithTypescript(dir) { const baseDir = `./test/e2e/generated/${dir}/`; const tsconfig = { compilerOptions: { @@ -35,4 +35,4 @@ function compile(dir) { } } -module.exports = compile; +module.exports = compileWithTypescript; diff --git a/test/e2e/v2.babel.spec.js b/test/e2e/v2.babel.spec.js index b133573b..e08e420d 100644 --- a/test/e2e/v2.babel.spec.js +++ b/test/e2e/v2.babel.spec.js @@ -2,7 +2,7 @@ const generate = require('./scripts/generate'); const copy = require('./scripts/copy'); -const transpile = require('./scripts/transpile'); +const compileWithBabel = require('./scripts/compileWithBabel'); const server = require('./scripts/server'); const browser = require('./scripts/browser'); @@ -11,7 +11,7 @@ describe('v2.fetch', () => { beforeAll(async () => { await generate('v2/babel', 'v2', 'fetch', true, true); await copy('v2/babel'); - transpile('v2/babel'); + compileWithBabel('v2/babel'); await server.start('v2/babel'); await browser.start(); }, 30000); @@ -22,25 +22,22 @@ describe('v2.fetch', () => { }); it('requests token', async () => { + await browser.exposeFunction('tokenRequest', jest.fn().mockResolvedValue('MY_TOKEN')); const result = await browser.evaluate(async () => { - window.api.OpenAPI.TOKEN = new Promise(resolve => { - setTimeout(() => { - resolve('MY_TOKEN'); - }, 500); - }); - return await window.api.SimpleService.getCallWithoutParametersAndResponse(); + const { OpenAPI, SimpleService } = window.api; + OpenAPI.TOKEN = window.tokenRequest; + return await SimpleService.getCallWithoutParametersAndResponse(); }); expect(result.headers.authorization).toBe('Bearer MY_TOKEN'); }); it('complexService', async () => { const result = await browser.evaluate(async () => { - return await window.api.ComplexService.complexTypes({ - parameterObject: { - first: { - second: { - third: 'Hello World!' - } + const { ComplexService } = window.api; + return await ComplexService.complexTypes({ + first: { + second: { + third: 'Hello World!' } } }); diff --git a/test/e2e/v2.fetch.spec.js b/test/e2e/v2.fetch.spec.js index e881e361..3eb58162 100644 --- a/test/e2e/v2.fetch.spec.js +++ b/test/e2e/v2.fetch.spec.js @@ -2,7 +2,7 @@ const generate = require('./scripts/generate'); const copy = require('./scripts/copy'); -const compile = require('./scripts/compile'); +const compileWithTypescript = require('./scripts/compileWithTypescript'); const server = require('./scripts/server'); const browser = require('./scripts/browser'); @@ -11,7 +11,7 @@ describe('v2.fetch', () => { beforeAll(async () => { await generate('v2/fetch', 'v2', 'fetch'); await copy('v2/fetch'); - compile('v2/fetch'); + compileWithTypescript('v2/fetch'); await server.start('v2/fetch'); await browser.start(); }, 30000); @@ -22,20 +22,19 @@ describe('v2.fetch', () => { }); it('requests token', async () => { + await browser.exposeFunction('tokenRequest', jest.fn().mockResolvedValue('MY_TOKEN')); const result = await browser.evaluate(async () => { - window.api.OpenAPI.TOKEN = new Promise(resolve => { - setTimeout(() => { - resolve('MY_TOKEN'); - }, 500); - }); - return await window.api.SimpleService.getCallWithoutParametersAndResponse(); + const { OpenAPI, SimpleService } = window.api; + OpenAPI.TOKEN = window.tokenRequest; + return await SimpleService.getCallWithoutParametersAndResponse(); }); expect(result.headers.authorization).toBe('Bearer MY_TOKEN'); }); it('complexService', async () => { const result = await browser.evaluate(async () => { - return await window.api.ComplexService.complexTypes({ + const { ComplexService } = window.api; + return await ComplexService.complexTypes({ first: { second: { third: 'Hello World!' diff --git a/test/e2e/v2.node.spec.js b/test/e2e/v2.node.spec.js index 9b602e5c..12d1d85b 100644 --- a/test/e2e/v2.node.spec.js +++ b/test/e2e/v2.node.spec.js @@ -1,15 +1,14 @@ 'use strict'; const generate = require('./scripts/generate'); -const copy = require('./scripts/copy'); -const compile = require('./scripts/compile'); +const compileWithTypescript = require('./scripts/compileWithTypescript'); const server = require('./scripts/server'); describe('v2.node', () => { beforeAll(async () => { await generate('v2/node', 'v2', 'node'); - compile('v2/node'); + compileWithTypescript('v2/node'); await server.start('v2/node'); }, 30000); diff --git a/test/e2e/v2.xhr.spec.js b/test/e2e/v2.xhr.spec.js index 590b226f..6791cc24 100644 --- a/test/e2e/v2.xhr.spec.js +++ b/test/e2e/v2.xhr.spec.js @@ -2,7 +2,7 @@ const generate = require('./scripts/generate'); const copy = require('./scripts/copy'); -const compile = require('./scripts/compile'); +const compileWithTypescript = require('./scripts/compileWithTypescript'); const server = require('./scripts/server'); const browser = require('./scripts/browser'); @@ -11,7 +11,7 @@ describe('v2.xhr', () => { beforeAll(async () => { await generate('v2/xhr', 'v2', 'xhr'); await copy('v2/xhr'); - compile('v2/xhr'); + compileWithTypescript('v2/xhr'); await server.start('v2/xhr'); await browser.start(); }, 30000); @@ -22,20 +22,19 @@ describe('v2.xhr', () => { }); it('requests token', async () => { + await browser.exposeFunction('tokenRequest', jest.fn().mockResolvedValue('MY_TOKEN')); const result = await browser.evaluate(async () => { - window.api.OpenAPI.TOKEN = new Promise(resolve => { - setTimeout(() => { - resolve('MY_TOKEN'); - }, 500); - }); - return await window.api.SimpleService.getCallWithoutParametersAndResponse(); + const { OpenAPI, SimpleService } = window.api; + OpenAPI.TOKEN = window.tokenRequest; + return await SimpleService.getCallWithoutParametersAndResponse(); }); expect(result.headers.authorization).toBe('Bearer MY_TOKEN'); }); it('complexService', async () => { const result = await browser.evaluate(async () => { - return await window.api.ComplexService.complexTypes({ + const { ComplexService } = window.api; + return await ComplexService.complexTypes({ first: { second: { third: 'Hello World!' diff --git a/test/e2e/v3.babel.spec.js b/test/e2e/v3.babel.spec.js index dd378882..41ecb4cd 100644 --- a/test/e2e/v3.babel.spec.js +++ b/test/e2e/v3.babel.spec.js @@ -2,7 +2,7 @@ const generate = require('./scripts/generate'); const copy = require('./scripts/copy'); -const transpile = require('./scripts/transpile'); +const compileWithBabel = require('./scripts/compileWithBabel'); const server = require('./scripts/server'); const browser = require('./scripts/browser'); @@ -11,7 +11,7 @@ describe('v3.fetch', () => { beforeAll(async () => { await generate('v3/babel', 'v3', 'fetch', true, true); await copy('v3/babel'); - transpile('v3/babel'); + compileWithBabel('v3/babel'); await server.start('v3/babel'); await browser.start(); }, 30000); @@ -22,25 +22,22 @@ describe('v3.fetch', () => { }); it('requests token', async () => { + await browser.exposeFunction('tokenRequest', jest.fn().mockResolvedValue('MY_TOKEN')); const result = await browser.evaluate(async () => { - window.api.OpenAPI.TOKEN = new Promise(resolve => { - setTimeout(() => { - resolve('MY_TOKEN'); - }, 500); - }); - return await window.api.SimpleService.getCallWithoutParametersAndResponse(); + const { OpenAPI, SimpleService } = window.api; + OpenAPI.TOKEN = window.tokenRequest; + return await SimpleService.getCallWithoutParametersAndResponse(); }); expect(result.headers.authorization).toBe('Bearer MY_TOKEN'); }); it('complexService', async () => { const result = await browser.evaluate(async () => { - return await window.api.ComplexService.complexTypes({ - parameterObject: { - first: { - second: { - third: 'Hello World!' - } + const { ComplexService } = window.api; + return await ComplexService.complexTypes({ + first: { + second: { + third: 'Hello World!' } } }); diff --git a/test/e2e/v3.fetch.spec.js b/test/e2e/v3.fetch.spec.js index e3df5a4b..84d08ab3 100644 --- a/test/e2e/v3.fetch.spec.js +++ b/test/e2e/v3.fetch.spec.js @@ -2,7 +2,7 @@ const generate = require('./scripts/generate'); const copy = require('./scripts/copy'); -const compile = require('./scripts/compile'); +const compileWithTypescript = require('./scripts/compileWithTypescript'); const server = require('./scripts/server'); const browser = require('./scripts/browser'); @@ -11,7 +11,7 @@ describe('v3.fetch', () => { beforeAll(async () => { await generate('v3/fetch', 'v3', 'fetch'); await copy('v3/fetch'); - compile('v3/fetch'); + compileWithTypescript('v3/fetch'); await server.start('v3/fetch'); await browser.start(); }, 30000); @@ -22,20 +22,19 @@ describe('v3.fetch', () => { }); it('requests token', async () => { + await browser.exposeFunction('tokenRequest', jest.fn().mockResolvedValue('MY_TOKEN')); const result = await browser.evaluate(async () => { - window.api.OpenAPI.TOKEN = new Promise(resolve => { - setTimeout(() => { - resolve('MY_TOKEN'); - }, 500); - }); - return await window.api.SimpleService.getCallWithoutParametersAndResponse(); + const { OpenAPI, SimpleService } = window.api; + OpenAPI.TOKEN = window.tokenRequest; + return await SimpleService.getCallWithoutParametersAndResponse(); }); expect(result.headers.authorization).toBe('Bearer MY_TOKEN'); }); it('complexService', async () => { const result = await browser.evaluate(async () => { - return await window.api.ComplexService.complexTypes({ + const { ComplexService } = window.api; + return await ComplexService.complexTypes({ first: { second: { third: 'Hello World!' diff --git a/test/e2e/v3.node.spec.js b/test/e2e/v3.node.spec.js index d3f25471..10102a54 100644 --- a/test/e2e/v3.node.spec.js +++ b/test/e2e/v3.node.spec.js @@ -1,15 +1,14 @@ 'use strict'; const generate = require('./scripts/generate'); -const copy = require('./scripts/copy'); -const compile = require('./scripts/compile'); +const compileWithTypescript = require('./scripts/compileWithTypescript'); const server = require('./scripts/server'); describe('v3.node', () => { beforeAll(async () => { await generate('v3/node', 'v3', 'node'); - compile('v3/node'); + compileWithTypescript('v3/node'); await server.start('v3/node'); }, 30000); diff --git a/test/e2e/v3.xhr.spec.js b/test/e2e/v3.xhr.spec.js index 3c1f4324..ae605a55 100644 --- a/test/e2e/v3.xhr.spec.js +++ b/test/e2e/v3.xhr.spec.js @@ -2,7 +2,7 @@ const generate = require('./scripts/generate'); const copy = require('./scripts/copy'); -const compile = require('./scripts/compile'); +const compileWithTypescript = require('./scripts/compileWithTypescript'); const server = require('./scripts/server'); const browser = require('./scripts/browser'); @@ -11,7 +11,7 @@ describe('v3.xhr', () => { beforeAll(async () => { await generate('v3/xhr', 'v3', 'xhr'); await copy('v3/xhr'); - compile('v3/xhr'); + compileWithTypescript('v3/xhr'); await server.start('v3/xhr'); await browser.start(); }, 30000); @@ -22,20 +22,19 @@ describe('v3.xhr', () => { }); it('requests token', async () => { + await browser.exposeFunction('tokenRequest', jest.fn().mockResolvedValue('MY_TOKEN')); const result = await browser.evaluate(async () => { - window.api.OpenAPI.TOKEN = new Promise(resolve => { - setTimeout(() => { - resolve('MY_TOKEN'); - }, 500); - }); - return await window.api.SimpleService.getCallWithoutParametersAndResponse(); + const { OpenAPI, SimpleService } = window.api; + OpenAPI.TOKEN = window.tokenRequest; + return await SimpleService.getCallWithoutParametersAndResponse(); }); expect(result.headers.authorization).toBe('Bearer MY_TOKEN'); }); it('complexService', async () => { const result = await browser.evaluate(async () => { - return await window.api.ComplexService.complexTypes({ + const { ComplexService } = window.api; + return await ComplexService.complexTypes({ first: { second: { third: 'Hello World!'