Skip to content

Commit e6c423d

Browse files
committed
- Working on babel tests
1 parent 5d52e3e commit e6c423d

17 files changed

+322
-62
lines changed

jest.config.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@ module.exports = {
1515
displayName: 'E2E',
1616
testEnvironment: 'node',
1717
testMatch: [
18-
'<rootDir>/test/e2e/v2.fetch.spec.js',
19-
'<rootDir>/test/e2e/v2.xhr.spec.js',
20-
'<rootDir>/test/e2e/v2.node.spec.js',
21-
'<rootDir>/test/e2e/v3.fetch.spec.js',
22-
'<rootDir>/test/e2e/v3.xhr.spec.js',
23-
'<rootDir>/test/e2e/v3.node.spec.js',
18+
// '<rootDir>/test/e2e/v2.fetch.spec.js',
19+
// '<rootDir>/test/e2e/v2.xhr.spec.js',
20+
// '<rootDir>/test/e2e/v2.node.spec.js',
21+
// '<rootDir>/test/e2e/v2.babel.spec.js',
22+
// '<rootDir>/test/e2e/v3.fetch.spec.js',
23+
// '<rootDir>/test/e2e/v3.xhr.spec.js',
24+
// '<rootDir>/test/e2e/v3.node.spec.js',
25+
'<rootDir>/test/e2e/v3.babel.spec.js',
2426
],
2527
},
2628
],

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
"rimraf": "3.0.2"
7676
},
7777
"devDependencies": {
78+
"@babel/cli": "7.11.6",
7879
"@babel/core": "7.11.6",
7980
"@babel/preset-env": "7.11.5",
8081
"@babel/preset-typescript": "7.10.4",

test/e2e/scripts/browser.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ async function start() {
1616
]
1717
});
1818
page = await browser.newPage();
19+
page.on('console', msg => console.log(msg.text()));
1920
await page.goto(`http://localhost:3000/`, {
2021
waitUntil: 'networkidle0',
2122
});

test/e2e/scripts/compile.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ const ts = require('typescript');
44
const path = require('path');
55
const os = require('os');
66

7-
function compile(version, client) {
8-
const baseDir = `./test/e2e/generated/${version}/${client}/`;
7+
function compile(dir) {
8+
const baseDir = `./test/e2e/generated/${dir}/`;
99
const tsconfig = {
1010
compilerOptions: {
1111
target: 'es6',

test/e2e/scripts/copy.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
const fs = require('fs');
44

5-
async function copy(version, client) {
5+
function copy(dir) {
66
fs.copyFileSync(
77
'./test/e2e/assets/script.js',
8-
`./test/e2e/generated/${version}/${client}/script.js`,
8+
`./test/e2e/generated/${dir}/script.js`,
99
);
1010
}
1111

test/e2e/scripts/generate.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
const OpenAPI = require('../../../dist');
44

5-
async function generate(version, client) {
5+
async function generate(dir, version, client, useOptions = false, useUnionTypes = false) {
66
await OpenAPI.generate({
77
input: `./test/spec/${version}.json`,
8-
output: `./test/e2e/generated/${version}/${client}/`,
8+
output: `./test/e2e/generated/${dir}/`,
99
httpClient: client,
10-
useOptions: false,
11-
useUnionTypes: false,
10+
useOptions,
11+
useUnionTypes,
1212
});
1313
}
1414

test/e2e/scripts/server.js

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ const express = require('express');
55
let app;
66
let server
77

8-
async function start(version, client) {
8+
async function start(dir) {
99
return new Promise(resolve => {
1010
app = express();
1111

1212
// Serve the JavaScript files from the specific folder, since we are using browser
1313
// based ES6 modules, this also means that we can just request the js/index.js file
1414
// and all other relative paths are resolved from that file.
15-
app.use('/js', express.static(`./test/e2e/generated/${version}/${client}/`, {
15+
app.use('/js', express.static(`./test/e2e/generated/${dir}/`, {
1616
extensions: ['', 'js'],
1717
index: 'index.js'
1818
}));
@@ -24,14 +24,6 @@ async function start(version, client) {
2424
res.send('<script src="js/script.js"></script>');
2525
});
2626

27-
const aap = (obj) => {
28-
const a = {};
29-
for (const key in obj) {
30-
a[key] = obj[key];
31-
}
32-
return a;
33-
}
34-
3527
// Register an 'echo' server that just returns all data from the API calls.
3628
// Although this might not be a 'correct' response, we can use this to test
3729
// the majority of API calls.

test/e2e/scripts/transpile.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
'use strict';
2+
3+
const glob = require('glob');
4+
const fs = require('fs');
5+
const babel = require('@babel/core');
6+
7+
function transpile(dir) {
8+
glob.sync(`./test/e2e/generated/${dir}/**/*.ts`).forEach(file => {
9+
try {
10+
const content = fs.readFileSync(file, 'utf8').toString();
11+
const result = babel.transformSync(content, {filename: file});
12+
const filename = file.replace(/\.ts$/, '.js');
13+
fs.writeFileSync(filename, result.code);
14+
} catch (error) {
15+
console.error(error);
16+
}
17+
});
18+
}
19+
20+
module.exports = transpile;

test/e2e/v2.babel.spec.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
'use strict';
2+
3+
const generate = require('./scripts/generate');
4+
const copy = require('./scripts/copy');
5+
const transpile = require('./scripts/transpile');
6+
const server = require('./scripts/server');
7+
const browser = require('./scripts/browser');
8+
9+
describe('v2.fetch', () => {
10+
11+
beforeAll(async () => {
12+
await generate('v2/babel', 'v2', 'fetch', true, true);
13+
await copy('v2/babel');
14+
transpile('v2/babel');
15+
await server.start('v2/babel');
16+
await browser.start();
17+
}, 30000);
18+
19+
afterAll(async () => {
20+
await server.stop();
21+
await browser.stop();
22+
});
23+
24+
it('complexService', async () => {
25+
const result = await browser.evaluate(async () => {
26+
return await window.api.ComplexService.complexTypes({
27+
parameterObject: {
28+
first: {
29+
second: {
30+
third: 'Hello World!'
31+
}
32+
}
33+
}
34+
});
35+
});
36+
expect(result).toBeDefined();
37+
});
38+
});

test/e2e/v2.fetch.spec.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ const browser = require('./scripts/browser');
99
describe('v2.fetch', () => {
1010

1111
beforeAll(async () => {
12-
await generate('v2', 'fetch');
13-
await copy('v2', 'fetch');
14-
await compile('v2', 'fetch');
15-
await server.start('v2', 'fetch');
12+
await generate('v2/fetch', 'v2', 'fetch');
13+
await copy('v2/fetch');
14+
compile('v2/fetch');
15+
await server.start('v2/fetch');
1616
await browser.start();
1717
}, 30000);
1818

0 commit comments

Comments
 (0)