Skip to content

Commit a34f3e5

Browse files
author
Dennis Labordus
authored
Merge pull request #181 from com-pas/process-validation-error
Fixed bug when missing elements
2 parents 24a5659 + eed8936 commit a34f3e5

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

src/validators/CompasValidateSchema.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,17 +78,17 @@ export default class CompasValidateSchema extends LitElement {
7878
private createTitle(validationError: Element): string {
7979
const message = validationError
8080
.getElementsByTagNameNS(SVS_NAMESPACE, 'Message')!
81-
.item(0)!.textContent;
81+
.item(0)?.textContent;
8282
return message ? message : 'No validation message';
8383
}
8484

8585
private createMessage(validationError: Element): string | undefined {
8686
const ruleName = validationError
8787
.getElementsByTagNameNS(SVS_NAMESPACE, 'RuleName')!
88-
.item(0)!.textContent;
88+
.item(0)?.textContent;
8989
const linenumber = validationError
9090
.getElementsByTagNameNS(SVS_NAMESPACE, 'Linenumber')!
91-
.item(0)!.textContent;
91+
.item(0)?.textContent;
9292

9393
if (!ruleName && !linenumber) {
9494
return undefined;

test/unit/validators/CompasValidateSchema.test.ts

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,11 @@ describe('CompasValidateSchema', () => {
7373
</svs:ValidationErrors>
7474
<svs:ValidationErrors>
7575
<svs:Message></svs:Message>
76-
<svs:RuleName>No Message Rule</svs:RuleName>
76+
<svs:RuleName>Rule 2</svs:RuleName>
77+
<svs:Linenumber>1</svs:Linenumber>
78+
</svs:ValidationErrors>
79+
<svs:ValidationErrors>
80+
<svs:RuleName>Rule 3</svs:RuleName>
7781
<svs:Linenumber>1</svs:Linenumber>
7882
</svs:ValidationErrors>
7983
</svs:SclValidateResponse>
@@ -102,7 +106,14 @@ describe('CompasValidateSchema', () => {
102106
});
103107

104108
it('when no message exists in response then default message returned as title', () => {
105-
const validationError = getValidationError('No Message Rule');
109+
const validationError = getValidationError('Rule 2');
110+
111+
const result = element['createTitle'](validationError);
112+
expect(result).to.be.equal('No validation message');
113+
});
114+
115+
it('when no message element exists in response then default message returned as title', () => {
116+
const validationError = getValidationError('Rule 3');
106117

107118
const result = element['createTitle'](validationError);
108119
expect(result).to.be.equal('No validation message');
@@ -132,6 +143,9 @@ describe('CompasValidateSchema', () => {
132143
<svs:RuleName>Rule 4</svs:RuleName>
133144
<svs:Linenumber>4</svs:Linenumber>
134145
</svs:ValidationErrors>
146+
<svs:ValidationErrors>
147+
<svs:Message>Message 5</svs:Message>
148+
</svs:ValidationErrors>
135149
</svs:SclValidateResponse>
136150
`;
137151

@@ -177,5 +191,12 @@ describe('CompasValidateSchema', () => {
177191
const result = element['createMessage'](validationError);
178192
expect(result).to.be.equal('Rule: Rule 4, Linenumber: 4');
179193
});
194+
195+
it('when both rule name and linenumber elements are missing then undefined returned', () => {
196+
const validationError = getValidationError('Message 5');
197+
198+
const result = element['createMessage'](validationError);
199+
expect(result).to.be.undefined;
200+
});
180201
});
181202
});

0 commit comments

Comments
 (0)