Skip to content

Commit d609bf7

Browse files
authored
fix: json output fixed while printing warnings (#1589)
* fix: json output fixed while printing warnings * chore: updated gdr version to v1.22.3
1 parent 0c1c671 commit d609bf7

File tree

3 files changed

+121
-3
lines changed

3 files changed

+121
-3
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ require (
1313
github.com/fatih/color v1.18.0
1414
github.com/google/go-cmp v0.7.0
1515
github.com/kong/go-apiops v0.1.41
16-
github.com/kong/go-database-reconciler v1.22.2
16+
github.com/kong/go-database-reconciler v1.22.3
1717
github.com/kong/go-kong v0.65.0
1818
github.com/mitchellh/go-homedir v1.1.0
1919
github.com/spf13/cobra v1.8.1

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,8 @@ github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/q
246246
github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
247247
github.com/kong/go-apiops v0.1.41 h1:1KXbQqyhO2E4nEnXJNqUDmHZU/LQ1U7Zoi+MAlcM2P0=
248248
github.com/kong/go-apiops v0.1.41/go.mod h1:sATq9Tz+ivzHKZU+tDXkRtEZnf64xroU3lgv3yXqP4I=
249-
github.com/kong/go-database-reconciler v1.22.2 h1:YNSDkwgdLGcjHbdbNP9JW/CjhPn0NDMrnWOvG4QDmLc=
250-
github.com/kong/go-database-reconciler v1.22.2/go.mod h1:Jlo4eEe0/PHd2dIkWTH9tFfShydRwRxY09dZvKZBelU=
249+
github.com/kong/go-database-reconciler v1.22.3 h1:H7austovtuMGWnRgpP8pQPAJXknSCnTHgwRyO6ilWJg=
250+
github.com/kong/go-database-reconciler v1.22.3/go.mod h1:Jlo4eEe0/PHd2dIkWTH9tFfShydRwRxY09dZvKZBelU=
251251
github.com/kong/go-kong v0.65.0 h1:dZT+hiMhy7CQsrc9W5nHv3cFJGBGTrwlZhC5MLuf9H8=
252252
github.com/kong/go-kong v0.65.0/go.mod h1:sqdysTKrXIJ6mpxHwTwjgZhLW7jR1/puczTXHLUwJaE=
253253
github.com/kong/go-slugify v1.0.0 h1:vCFAyf2sdoSlBtLcrmDWUFn0ohlpKiKvQfXZkO5vSKY=

tests/integration/sync_test.go

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,16 @@ import (
66
"context"
77
"crypto/tls"
88
"crypto/x509"
9+
"encoding/json"
910
"errors"
1011
"fmt"
12+
"io"
1113
"net/http"
14+
"os"
1215
"testing"
1316
"time"
1417

18+
"github.com/fatih/color"
1519
"github.com/google/go-cmp/cmp"
1620
"github.com/google/go-cmp/cmp/cmpopts"
1721
deckDump "github.com/kong/go-database-reconciler/pkg/dump"
@@ -7441,6 +7445,44 @@ func Test_Sync_ConsumerGroupPlugin_Policy_Overrides_34x(t *testing.T) {
74417445
require.Error(t, err)
74427446
assert.ErrorContains(t, err, errorConsumerGroupPolicies)
74437447
})
7448+
7449+
t.Run("checking for valid json output while using --consumer-group-policy-overrides = true", func(t *testing.T) {
7450+
// overwrite default standard output
7451+
r, w, err := os.Pipe()
7452+
require.NoError(t, err)
7453+
color.Output = w
7454+
7455+
require.NoError(t, sync(ctx, "testdata/sync/037-consumer-group-policy-overrides/kong34x-no-info.yaml",
7456+
"--consumer-group-policy-overrides", "--json-output"))
7457+
7458+
// read command output
7459+
w.Close()
7460+
out, err := io.ReadAll(r)
7461+
require.NoError(t, err)
7462+
require.NotNil(t, out)
7463+
7464+
var js interface{}
7465+
assert.NoError(t, json.Unmarshal(out, &js), "JSON validation failed")
7466+
})
7467+
7468+
t.Run("checking for valid json output while using consumer-group-policy-overrides in info block", func(t *testing.T) {
7469+
// overwrite default standard output
7470+
r, w, err := os.Pipe()
7471+
require.NoError(t, err)
7472+
color.Output = w
7473+
7474+
require.NoError(t, sync(ctx, "testdata/sync/037-consumer-group-policy-overrides/kong34x.yaml",
7475+
"--json-output"))
7476+
7477+
// read command output
7478+
w.Close()
7479+
out, err := io.ReadAll(r)
7480+
require.NoError(t, err)
7481+
require.NotNil(t, out)
7482+
7483+
var js interface{}
7484+
assert.NoError(t, json.Unmarshal(out, &js), "JSON validation failed")
7485+
})
74447486
}
74457487

74467488
// test scope:
@@ -7563,6 +7605,44 @@ func Test_Sync_ConsumerGroupPlugin_Policy_Overrides_38x(t *testing.T) {
75637605
require.Error(t, err)
75647606
assert.ErrorContains(t, err, errorConsumerGroupPolicies)
75657607
})
7608+
7609+
t.Run("checking for valid json output while using --consumer-group-policy-overrides = true", func(t *testing.T) {
7610+
// overwrite default standard output
7611+
r, w, err := os.Pipe()
7612+
require.NoError(t, err)
7613+
color.Output = w
7614+
7615+
require.NoError(t, sync(ctx, "testdata/sync/037-consumer-group-policy-overrides/kong38x-no-info.yaml",
7616+
"--consumer-group-policy-overrides", "--json-output"))
7617+
7618+
// read command output
7619+
w.Close()
7620+
out, err := io.ReadAll(r)
7621+
require.NoError(t, err)
7622+
require.NotNil(t, out)
7623+
7624+
var js interface{}
7625+
assert.NoError(t, json.Unmarshal(out, &js), "JSON validation failed")
7626+
})
7627+
7628+
t.Run("checking for valid json output while using consumer-group-policy-overrides in info block", func(t *testing.T) {
7629+
// overwrite default standard output
7630+
r, w, err := os.Pipe()
7631+
require.NoError(t, err)
7632+
color.Output = w
7633+
7634+
require.NoError(t, sync(ctx, "testdata/sync/037-consumer-group-policy-overrides/kong38x.yaml",
7635+
"--json-output"))
7636+
7637+
// read command output
7638+
w.Close()
7639+
out, err := io.ReadAll(r)
7640+
require.NoError(t, err)
7641+
require.NotNil(t, out)
7642+
7643+
var js interface{}
7644+
assert.NoError(t, json.Unmarshal(out, &js), "JSON validation failed")
7645+
})
75667646
}
75677647

75687648
// test scope:
@@ -7688,6 +7768,44 @@ func Test_Sync_ConsumerGroupPlugin_Policy_Overrides_39x(t *testing.T) {
76887768
require.Error(t, err)
76897769
assert.ErrorContains(t, err, errorConsumerGroupPolicies)
76907770
})
7771+
7772+
t.Run("checking for valid json output while using --consumer-group-policy-overrides = true", func(t *testing.T) {
7773+
// overwrite default standard output
7774+
r, w, err := os.Pipe()
7775+
require.NoError(t, err)
7776+
color.Output = w
7777+
7778+
require.NoError(t, sync(ctx, "testdata/sync/037-consumer-group-policy-overrides/kong39x-no-info.yaml",
7779+
"--consumer-group-policy-overrides", "--json-output"))
7780+
7781+
// read command output
7782+
w.Close()
7783+
out, err := io.ReadAll(r)
7784+
require.NoError(t, err)
7785+
require.NotNil(t, out)
7786+
7787+
var js interface{}
7788+
assert.NoError(t, json.Unmarshal(out, &js), "JSON validation failed")
7789+
})
7790+
7791+
t.Run("checking for valid json output while using consumer-group-policy-overrides in info block", func(t *testing.T) {
7792+
// overwrite default standard output
7793+
r, w, err := os.Pipe()
7794+
require.NoError(t, err)
7795+
color.Output = w
7796+
7797+
require.NoError(t, sync(ctx, "testdata/sync/037-consumer-group-policy-overrides/kong39x.yaml",
7798+
"--json-output"))
7799+
7800+
// read command output
7801+
w.Close()
7802+
out, err := io.ReadAll(r)
7803+
require.NoError(t, err)
7804+
require.NotNil(t, out)
7805+
7806+
var js interface{}
7807+
assert.NoError(t, json.Unmarshal(out, &js), "JSON validation failed")
7808+
})
76917809
}
76927810

76937811
func Test_Sync_SkipConsumersWithConsumerGroups(t *testing.T) {

0 commit comments

Comments
 (0)