Skip to content

Commit 52a6fb0

Browse files
fix: upgraded boolean
1 parent 6c3b054 commit 52a6fb0

File tree

3 files changed

+14
-8
lines changed

3 files changed

+14
-8
lines changed

openapi/openapi_examples_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -924,10 +924,13 @@ components:
924924
}
925925

926926
// Upgrade the document to the latest version
927-
err = openapi.Upgrade(ctx, doc)
927+
upgraded, err := openapi.Upgrade(ctx, doc)
928928
if err != nil {
929929
panic(err)
930930
}
931+
if !upgraded {
932+
panic("upgrade should have been performed")
933+
}
931934

932935
fmt.Printf("Upgraded OpenAPI Version: %s\n", doc.OpenAPI)
933936

openapi/upgrade.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ func WithUpgradeSamePatchVersion() Option[UpgradeOptions] {
2323

2424
// Upgrade upgrades any OpenAPI 3x document to OpenAPI 3.1.1 (the latest version currently supported).
2525
// It currently won't resolve any external references, so only this document itself will be upgraded.
26-
func Upgrade(ctx context.Context, doc *OpenAPI, opts ...Option[UpgradeOptions]) error {
26+
func Upgrade(ctx context.Context, doc *OpenAPI, opts ...Option[UpgradeOptions]) (bool, error) {
2727
if doc == nil {
28-
return nil
28+
return false, nil
2929
}
3030

3131
o := UpgradeOptions{}
@@ -42,7 +42,7 @@ func Upgrade(ctx context.Context, doc *OpenAPI, opts ...Option[UpgradeOptions])
4242
// Upgrade 3.1.x versions to 3.1.1 if option is set and not already 3.1.1
4343
} else {
4444
// Don't upgrade other versions
45-
return nil
45+
return false, nil
4646
}
4747

4848
for item := range Walk(ctx, doc) {
@@ -59,7 +59,7 @@ func Upgrade(ctx context.Context, doc *OpenAPI, opts ...Option[UpgradeOptions])
5959
}
6060

6161
_, err := marshaller.Sync(ctx, doc)
62-
return err
62+
return true, err
6363
}
6464

6565
func upgradeSchema(js *oas3.JSONSchema[oas3.Referenceable]) {

openapi/upgrade_test.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,9 @@ func TestUpgrade_Success(t *testing.T) {
7070
require.Empty(t, validationErrs, "original document should not have validation errors")
7171

7272
// Perform upgrade with options
73-
err = openapi.Upgrade(ctx, originalDoc, tt.options...)
73+
upgraded, err := openapi.Upgrade(ctx, originalDoc, tt.options...)
7474
require.NoError(t, err, "upgrade should not fail: %s", tt.description)
75+
assert.True(t, upgraded, "upgrade should have been performed")
7576

7677
// Marshal the upgraded document
7778
var actualBuf bytes.Buffer
@@ -165,8 +166,9 @@ func TestUpgrade_NoUpgradeNeeded(t *testing.T) {
165166
}
166167

167168
// Perform upgrade with options
168-
err := openapi.Upgrade(ctx, doc, tt.options...)
169+
upgraded, err := openapi.Upgrade(ctx, doc, tt.options...)
169170
require.NoError(t, err, "upgrade should not fail")
171+
require.Equal(t, tt.shouldUpgrade, upgraded)
170172

171173
// Check expected version
172174
assert.Equal(t, tt.expectedVersion, doc.OpenAPI, "version should match expected for %s", tt.name)
@@ -228,9 +230,10 @@ components:
228230
assert.Equal(t, "3.0.1", doc1.OpenAPI, "original version should be 3.0.1")
229231

230232
// Upgrade (no options needed for 3.0.x documents)
231-
err = openapi.Upgrade(ctx, doc1)
233+
upgraded, err := openapi.Upgrade(ctx, doc1)
232234
require.NoError(t, err, "upgrade should not fail")
233235
assert.Equal(t, openapi.Version, doc1.OpenAPI, "upgraded version should be 3.1.1")
236+
assert.True(t, upgraded, "upgrade should have been performed")
234237

235238
// Marshal back
236239
var buf1 bytes.Buffer

0 commit comments

Comments
 (0)