Skip to content

Commit a8ef8e0

Browse files
authored
717 issue fix (#718)
* Improve change detection to consider changeDefault field in ChangedSchema * Add test for defaults handling in Schema * Add test for defaults handling in Schema
1 parent e415cf3 commit a8ef8e0

File tree

4 files changed

+69
-0
lines changed

4 files changed

+69
-0
lines changed

core/src/main/java/org/openapitools/openapidiff/core/model/ChangedSchema.java

+1
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ private DiffResult calculateCoreChanged() {
136136
if (!changedType
137137
&& (oldSchema == null && newSchema == null || oldSchema != null && newSchema != null)
138138
&& !changeFormat
139+
&& !changeDefault
139140
&& increasedProperties.isEmpty()
140141
&& missingProperties.isEmpty()
141142
&& changedProperties.values().isEmpty()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.openapitools.openapidiff.core;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertTrue;
5+
6+
import org.junit.jupiter.api.Test;
7+
import org.openapitools.openapidiff.core.model.ChangedOpenApi;
8+
import org.openapitools.openapidiff.core.model.ChangedSchema;
9+
10+
public class SchemaDefaultsTest {
11+
12+
@Test
13+
public void issue717DefaultsInSchema() {
14+
ChangedOpenApi changedOpenApi =
15+
OpenApiCompare.fromLocations(
16+
"issue-717-schema-defaults-handling-1.yaml",
17+
"issue-717-schema-defaults-handling-2.yaml");
18+
19+
assertEquals(1, changedOpenApi.getChangedOperations().size());
20+
assertEquals(1, changedOpenApi.getChangedSchemas().size());
21+
ChangedSchema changedSchema = changedOpenApi.getChangedSchemas().get(0);
22+
assertEquals(1, changedSchema.getChangedProperties().size());
23+
assertTrue(changedSchema.getChangedProperties().containsKey("field1"));
24+
assertTrue(changedSchema.getChangedProperties().get("field1").isChangeDefault());
25+
}
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
openapi: 3.1.0
2+
info:
3+
description: Schema defaults handling
4+
title: defaults
5+
version: 1.0.0
6+
paths:
7+
/defaults/property-schema/:
8+
post:
9+
requestBody:
10+
content:
11+
application/json:
12+
schema:
13+
$ref: '#/components/schemas/TestDTO'
14+
components:
15+
schemas:
16+
TestDTO:
17+
type: object
18+
properties:
19+
field1:
20+
default: default value
21+
type: string
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
openapi: 3.1.0
2+
info:
3+
description: Schema defaults handling
4+
title: defaults
5+
version: 1.0.0
6+
paths:
7+
/defaults/property-schema/:
8+
post:
9+
requestBody:
10+
content:
11+
application/json:
12+
schema:
13+
$ref: '#/components/schemas/TestDTO'
14+
components:
15+
schemas:
16+
TestDTO:
17+
type: object
18+
properties:
19+
field1:
20+
default: default value updated
21+
type: string

0 commit comments

Comments
 (0)