Skip to content

Commit 90fde9c

Browse files
author
Dennis Labordus
committed
Add processing of Column Number from Validation Error.
Signed-off-by: Dennis Labordus <[email protected]>
1 parent 69e6910 commit 90fde9c

File tree

2 files changed

+41
-16
lines changed

2 files changed

+41
-16
lines changed

src/validators/CompasValidateSchema.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,18 @@ export default class CompasValidateSchema extends LitElement {
8989
const linenumber = validationError
9090
.getElementsByTagNameNS(SVS_NAMESPACE, 'Linenumber')!
9191
.item(0)?.textContent;
92+
const columnNumber = validationError
93+
.getElementsByTagNameNS(SVS_NAMESPACE, 'ColumnNumber')!
94+
.item(0)?.textContent;
95+
96+
const messageParts: string[] = [];
97+
if (ruleName) messageParts.push(`Rule: ${ruleName}`);
98+
if (linenumber) messageParts.push(`Line: ${linenumber}`);
99+
if (columnNumber) messageParts.push(`Column: ${columnNumber}`);
92100

93-
if (!ruleName && !linenumber) {
101+
if (messageParts.length == 0) {
94102
return undefined;
95103
}
96-
97-
return (
98-
`${ruleName ? `Rule: ${ruleName}` : ``}` +
99-
`${ruleName && linenumber ? `, ` : ``}` +
100-
`${linenumber ? `Linenumber: ${linenumber}` : ``}`
101-
);
104+
return messageParts.join(', ');
102105
}
103106
}

test/unit/validators/CompasValidateSchema.test.ts

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,13 @@ describe('CompasValidateSchema', () => {
2828
<svs:Message>Message 1</svs:Message>
2929
<svs:RuleName>Rule 1</svs:RuleName>
3030
<svs:Linenumber>1</svs:Linenumber>
31+
<svs:ColumnNumber>1</svs:ColumnNumber>
3132
</svs:ValidationErrors>
3233
<svs:ValidationErrors>
3334
<svs:Message>Message 2</svs:Message>
3435
<svs:RuleName>Rule 2</svs:RuleName>
3536
<svs:Linenumber>2</svs:Linenumber>
37+
<svs:ColumnNumber>2</svs:ColumnNumber>
3638
</svs:ValidationErrors>
3739
</svs:SclValidateResponse>
3840
`;
@@ -52,13 +54,13 @@ describe('CompasValidateSchema', () => {
5254
expect(issueEvent.args[0][0].type).to.equal('issue');
5355
expect(issueEvent.args[0][0].detail.title).to.equal('Message 1');
5456
expect(issueEvent.args[0][0].detail.message).to.equal(
55-
'Rule: Rule 1, Linenumber: 1'
57+
'Rule: Rule 1, Line: 1, Column: 1'
5658
);
5759

5860
expect(issueEvent.args[1][0].type).to.equal('issue');
5961
expect(issueEvent.args[1][0].detail.title).to.equal('Message 2');
6062
expect(issueEvent.args[1][0].detail.message).to.equal(
61-
'Rule: Rule 2, Linenumber: 2'
63+
'Rule: Rule 2, Line: 2, Column: 2'
6264
);
6365
});
6466
});
@@ -70,15 +72,18 @@ describe('CompasValidateSchema', () => {
7072
<svs:Message>Message 1</svs:Message>
7173
<svs:RuleName>Rule 1</svs:RuleName>
7274
<svs:Linenumber>1</svs:Linenumber>
75+
<svs:ColumnNumber>2</svs:ColumnNumber>
7376
</svs:ValidationErrors>
7477
<svs:ValidationErrors>
7578
<svs:Message></svs:Message>
7679
<svs:RuleName>Rule 2</svs:RuleName>
7780
<svs:Linenumber>1</svs:Linenumber>
81+
<svs:ColumnNumber>2</svs:ColumnNumber>
7882
</svs:ValidationErrors>
7983
<svs:ValidationErrors>
8084
<svs:RuleName>Rule 3</svs:RuleName>
8185
<svs:Linenumber>1</svs:Linenumber>
86+
<svs:ColumnNumber>2</svs:ColumnNumber>
8287
</svs:ValidationErrors>
8388
</svs:SclValidateResponse>
8489
`;
@@ -127,24 +132,34 @@ describe('CompasValidateSchema', () => {
127132
<svs:Message>Message 1</svs:Message>
128133
<svs:RuleName></svs:RuleName>
129134
<svs:Linenumber></svs:Linenumber>
135+
<svs:ColumnNumber></svs:ColumnNumber>
130136
</svs:ValidationErrors>
131137
<svs:ValidationErrors>
132138
<svs:Message>Message 2</svs:Message>
133139
<svs:RuleName>Rule 2</svs:RuleName>
134140
<svs:Linenumber></svs:Linenumber>
141+
<svs:ColumnNumber></svs:ColumnNumber>
135142
</svs:ValidationErrors>
136143
<svs:ValidationErrors>
137144
<svs:Message>Message 3</svs:Message>
138145
<svs:RuleName></svs:RuleName>
139146
<svs:Linenumber>3</svs:Linenumber>
147+
<svs:ColumnNumber></svs:ColumnNumber>
140148
</svs:ValidationErrors>
141149
<svs:ValidationErrors>
142150
<svs:Message>Message 4</svs:Message>
143-
<svs:RuleName>Rule 4</svs:RuleName>
144-
<svs:Linenumber>4</svs:Linenumber>
151+
<svs:RuleName></svs:RuleName>
152+
<svs:Linenumber></svs:Linenumber>
153+
<svs:ColumnNumber>4</svs:ColumnNumber>
145154
</svs:ValidationErrors>
146155
<svs:ValidationErrors>
147156
<svs:Message>Message 5</svs:Message>
157+
<svs:RuleName>Rule 5</svs:RuleName>
158+
<svs:Linenumber>5</svs:Linenumber>
159+
<svs:ColumnNumber>55</svs:ColumnNumber>
160+
</svs:ValidationErrors>
161+
<svs:ValidationErrors>
162+
<svs:Message>Message 6</svs:Message>
148163
</svs:ValidationErrors>
149164
</svs:SclValidateResponse>
150165
`;
@@ -164,7 +179,7 @@ describe('CompasValidateSchema', () => {
164179
)[0];
165180
}
166181

167-
it('when both rule name and linenumber are missing then undefined returned', () => {
182+
it('when both rule name, linenumber and column number are missing then undefined returned', () => {
168183
const validationError = getValidationError('Message 1');
169184

170185
const result = element['createMessage'](validationError);
@@ -182,19 +197,26 @@ describe('CompasValidateSchema', () => {
182197
const validationError = getValidationError('Message 3');
183198

184199
const result = element['createMessage'](validationError);
185-
expect(result).to.be.equal('Linenumber: 3');
200+
expect(result).to.be.equal('Line: 3');
186201
});
187202

188-
it('when both rule name and linenumber are filled then full message returned', () => {
203+
it('when only column number is filled then column number string returned', () => {
189204
const validationError = getValidationError('Message 4');
190205

191206
const result = element['createMessage'](validationError);
192-
expect(result).to.be.equal('Rule: Rule 4, Linenumber: 4');
207+
expect(result).to.be.equal('Column: 4');
193208
});
194209

195-
it('when both rule name and linenumber elements are missing then undefined returned', () => {
210+
it('when rule name, linenumber and column number are filled then full message returned', () => {
196211
const validationError = getValidationError('Message 5');
197212

213+
const result = element['createMessage'](validationError);
214+
expect(result).to.be.equal('Rule: Rule 5, Line: 5, Column: 55');
215+
});
216+
217+
it('when all elements are missing then undefined returned', () => {
218+
const validationError = getValidationError('Message 6');
219+
198220
const result = element['createMessage'](validationError);
199221
expect(result).to.be.undefined;
200222
});

0 commit comments

Comments
 (0)