Skip to content

Commit a05d1e3

Browse files
committed
Check context is provided when type is defined
1 parent 77dbc4e commit a05d1e3

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

src/main/java/com/apiflows/parser/OpenAPIWorkflowValidator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,10 @@ List<String> validateCriterion(Criterion criterion, String stepId) {
311311
errors.add("Step " + stepId + " SuccessCriteria type (" + criterion.getType() + ") is invalid");
312312
}
313313

314+
if (criterion.getType() != null && criterion.getContext() == null) {
315+
errors.add("Step " + stepId + " SuccessCriteria type is specified but context is not provided");
316+
}
317+
314318
return errors;
315319
}
316320

src/test/java/com/apiflows/parser/OpenAPIWorkflowValidatorTest.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,8 @@ void validateCriterion() {
281281

282282
Criterion criterion = new Criterion()
283283
.condition("$statusCode == 200")
284-
.type("simple");
284+
.type("simple")
285+
.context("$response.body");
285286

286287
assertEquals(0, validator.validateCriterion(criterion, stepId).size());
287288
}
@@ -301,7 +302,20 @@ void validateCriterionInvalidType() {
301302

302303
Criterion criterion = new Criterion()
303304
.condition("$statusCode == 200")
304-
.type("dummy");
305+
.type("dummy")
306+
.context("$response.body");
307+
308+
assertEquals(1, validator.validateCriterion(criterion, stepId).size());
309+
}
310+
311+
@Test
312+
void validateCriterionMissingContext() {
313+
String stepId = "step-one";
314+
315+
Criterion criterion = new Criterion()
316+
.condition("$statusCode == 200")
317+
.type("simple")
318+
.context(null);
305319

306320
assertEquals(1, validator.validateCriterion(criterion, stepId).size());
307321
}

0 commit comments

Comments
 (0)