Skip to content

Commit da1d7b5

Browse files
committed
adding tests
1 parent 682c958 commit da1d7b5

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

src/parsers/InputFieldDeclarationParser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ export class InputFieldDeclarationParser {
271271
return;
272272
}
273273

274-
const template = InputFieldDeclarationParser.templates.filter(x => x.identifier === templateName).first()?.template;
274+
const template = InputFieldDeclarationParser.templates.find(x => x.identifier === templateName)?.template;
275275
if (!template) {
276276
throw new MetaBindParsingError(`unknown template name \'${templateName}\'`);
277277
}

tests/InputFieldDeclarationParser.test.ts

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,41 @@
1-
import { InputFieldDeclaration, InputFieldDeclarationParser, InputFieldType } from '../src/parsers/InputFieldDeclarationParser';
1+
import { MetaBindParsingError } from '../src/utils/Utils';
2+
import { InputFieldArgumentContainer } from '../src/inputFieldArguments/InputFieldArgumentContainer';
3+
import { InputFieldArgumentType, InputFieldDeclaration, InputFieldDeclarationParser, InputFieldType } from '../src/parsers/InputFieldDeclarationParser';
24

35
test('placeholder', () => {
46
expect(true).toEqual(true);
57
});
68

9+
describe('apply template', () => {
10+
test('found', () => {
11+
InputFieldDeclarationParser.templates = [
12+
{
13+
identifier: "Test",
14+
template: {
15+
isBound: true,
16+
bindTarget: "Test#Target",
17+
argumentContainer: new InputFieldArgumentContainer()
18+
} as InputFieldDeclaration
19+
}
20+
];
21+
22+
const inputFieldDeclaration: InputFieldDeclaration = InputFieldDeclarationParser.parseString("INPUT[toggle(class(a))]");
23+
InputFieldDeclarationParser.applyTemplate(inputFieldDeclaration, "Test");
24+
25+
expect(inputFieldDeclaration.isBound).toEqual(true);
26+
expect(inputFieldDeclaration.bindTarget).toEqual("Test#Target");
27+
expect(inputFieldDeclaration.inputFieldType).toEqual(InputFieldType.TOGGLE);
28+
expect(inputFieldDeclaration.argumentContainer.arguments[0].identifier).toEqual(InputFieldArgumentType.CLASS);
29+
expect(inputFieldDeclaration.argumentContainer.arguments[0].value).toEqual(["a"]);
30+
});
31+
test('not found', () => {
32+
InputFieldDeclarationParser.templates = [];
33+
34+
const inputFieldDeclaration: InputFieldDeclaration = InputFieldDeclarationParser.parseString("INPUT[toggle(class(a))]");
35+
expect(() => InputFieldDeclarationParser.applyTemplate(inputFieldDeclaration, "Test")).toThrowError(MetaBindParsingError);
36+
});
37+
});
38+
739
describe('bind target', () => {
840
test('no bind target', () => {
941
const declaration: string = 'INPUT[toggle]';

0 commit comments

Comments
 (0)