Skip to content

Commit 53e73f6

Browse files
committed
feat(performance): Add features (overloads) performance tests
1 parent c1f7cb2 commit 53e73f6

File tree

6 files changed

+69
-0
lines changed

6 files changed

+69
-0
lines changed

performance/performance.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,20 @@
2727
"name": "One Interface / Reuse",
2828
"tsConfig": "tsconfig/tsconfig.performance.json",
2929
"types": ["oneInterfacePerFile","reuseInterface"]
30+
},
31+
{
32+
"name": "Features (disabled)",
33+
"tsConfig": "tsconfig/features/tsconfig.disabled.json",
34+
"types": [
35+
"features/overloads"
36+
]
37+
},
38+
{
39+
"name": "Features - Overloads",
40+
"tsConfig": "tsconfig/features/tsconfig.overloads.json",
41+
"types": [
42+
"features/overloads"
43+
]
3044
}
3145
]
3246
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { createMock } from 'ts-auto-mock';
2+
import { overloadedFunction } from '../types/functions';
3+
4+
describe('overloads', () => {
5+
it('work', () => {
6+
const properties: typeof overloadedFunction = createMock<typeof overloadedFunction>();
7+
expect(properties(0)).toBe(0);
8+
expect(properties('')).toBe('');
9+
expect(properties(false)).toBe(false);
10+
expect(properties()).toBeUndefined();
11+
});
12+
});
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { Interface } from './interface';
2+
3+
export declare function overloadedFunction(a: number): number;
4+
export declare function overloadedFunction(a: string): string;
5+
export declare function overloadedFunction(a: boolean): boolean;
6+
export declare function overloadedFunction(): undefined;
7+
export declare function overloadedFunction(a: Interface): Interface;

performance/testRunner/testRunner.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
const fs = require('fs');
12
const path = require('path');
23
const fileSystem = require('../core/fs/fileSystem');
34
const typescriptRunner = require('./typescriptRunner');
@@ -38,6 +39,17 @@ function testForFeature(feature, volume) {
3839
const performanceTestFolder = getDistPerformanceFolder();
3940
const templateFolder = path.join(__dirname, "..", "templates");
4041

42+
const directories = path.dirname(feature);
43+
directories.split('/').reduce((accPath, directory) => {
44+
const nextPath = path.join(accPath, directory);
45+
46+
try {
47+
fs.mkdirSync(path.join(performanceTestFolder, nextPath));
48+
} catch (_) {}
49+
50+
return nextPath;
51+
}, '');
52+
4153
for (let i = 0; i < volume; i++) {
4254
const filePath = path.join(performanceTestFolder, `${feature}${i}.test.ts`);
4355
const testFile = fileSystem.readFileSync(path.join(templateFolder, `${feature}.ts`));
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"extends": "../../tsconfig.base.json",
3+
"compilerOptions": {
4+
"plugins": [
5+
{
6+
"transform": "../../../dist/transformer",
7+
"debug": true,
8+
"features": []
9+
}
10+
]
11+
}
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"extends": "../../tsconfig.base.json",
3+
"compilerOptions": {
4+
"plugins": [
5+
{
6+
"transform": "../../../dist/transformer",
7+
"debug": true,
8+
"features": ["overloads"]
9+
}
10+
]
11+
}
12+
}

0 commit comments

Comments
 (0)