Skip to content

Commit fd6ab74

Browse files
committed
Refactored tests
1 parent 8995e7a commit fd6ab74

File tree

4 files changed

+31
-29
lines changed

4 files changed

+31
-29
lines changed

src/index.spec.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
/* eslint-disable @typescript-eslint/tslint/config */
22
import * as lib from './index';
33
import * as ts from 'typescript';
4+
import { visitNodeAndChildren } from './visitor';
45

5-
type CreateFixtureArguments = {
6-
sourceText: string;
7-
};
8-
9-
function createFixture(createFixtureArguments: CreateFixtureArguments) {
10-
const {
11-
sourceText
12-
} = createFixtureArguments;
13-
ts.createSourceFile('filename.tsx', sourceText, ts.ScriptTarget.Latest);
6+
function transform(sourceText: string) {
7+
const sourceFile = ts.createSourceFile('filename.tsx', sourceText, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
8+
visitNodeAndChildren(sourceFile, <any>undefined, <any>undefined);
9+
return sourceFile.getText();
1410
}
1511

1612
it('smoke test', () => {
1713
expect(lib).toBeTruthy();
14+
expect(visitNodeAndChildren).toBeTruthy();
15+
expect(transform(';')).toEqual(';');
16+
});
17+
18+
fit('should be removed it call expression', () => {
19+
debugger;
20+
expect(transform('it()')).toEqual('');
1821
});
1922

src/index.ts

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,9 @@
11
import * as ts from 'typescript';
2+
import { visitNodeAndChildren } from './visitor';
23

34
function typescriptTransformUnspec(program: ts.Program): ts.TransformerFactory<ts.SourceFile> {
45
return (context) => (file) => visitNodeAndChildren(file, program, context);
56
}
67

7-
function visitNodeAndChildren(node: ts.Node, program: ts.Program, context: ts.TransformationContext): ts.SourceFile {
8-
return ts.visitEachChild(visitNode(node), (childNode) => visitNodeAndChildren(childNode, program, context), context) as ts.SourceFile;
9-
}
10-
11-
function visitNode(node: ts.Node): ts.Node | undefined {
12-
if (isSpecExpressionStatement(node)) {
13-
return undefined;
14-
}
15-
return node;
16-
}
17-
18-
function isSpecExpressionStatement(node: ts.Node) {
19-
return (ts.isExpressionStatement(node) && ts.isCallExpression(node.expression)
20-
&& ts.isIdentifier(node.expression.expression)
21-
&& node.expression.expression.escapedText === 'it');
22-
}
23-
248
module.exports = typescriptTransformUnspec;
259
module.exports.default = typescriptTransformUnspec;

src/visitor.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import * as ts from 'typescript';
2+
3+
export function visitNodeAndChildren(node: ts.Node, program: ts.Program, context: ts.TransformationContext): ts.SourceFile {
4+
return ts.visitEachChild(visitor(node), (childNode) => visitNodeAndChildren(childNode, program, context), context) as ts.SourceFile;
5+
}
6+
7+
function visitor(node: ts.Node): ts.Node | undefined {
8+
if (isSpecExpressionStatement(node)) {
9+
return undefined;
10+
}
11+
return node;
12+
}
13+
14+
function isSpecExpressionStatement(node: ts.Node) {
15+
return (ts.isExpressionStatement(node) && ts.isCallExpression(node.expression)
16+
&& ts.isIdentifier(node.expression.expression)
17+
&& node.expression.expression.escapedText === 'it');
18+
}

tsconfig.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,5 @@
2121
},
2222
"include": [
2323
"src/**/*.ts"
24-
],
25-
"exclude": [
26-
"src/**/*.spec.ts"
2724
]
2825
}

0 commit comments

Comments
 (0)