@@ -8403,6 +8403,27 @@ func Test_Sync_KeysAndKeySets(t *testing.T) {
8403
8403
},
8404
8404
},
8405
8405
},
8406
+ {
8407
+ name : "creates keys and key_sets without name" ,
8408
+ kongFile : "testdata/sync/043-keys-and-key_sets/kong-no-name.yaml" ,
8409
+ expectedState : utils.KongRawState {
8410
+ Keys : []* kong.Key {
8411
+ {
8412
+ ID : kong .String ("1d15274d-76ae-4aec-928e-1b395cc1333f" ),
8413
+ KID : kong .String ("vsR8NCNV_1_LB06LqudGa2r-T0y4Z6VQVYue9IQz6A4" ),
8414
+ Set : & kong.KeySet {
8415
+ ID : kong .String ("d46b0e15-ffbc-4b15-ad92-09ef67935453" ),
8416
+ },
8417
+ JWK : kong .String ("{\" kty\" : \" RSA\" , \" kid\" : \" vsR8NCNV_1_LB06LqudGa2r-T0y4Z6VQVYue9IQz6A4\" , \" n\" : \" v2KAzzfruqctVHaE9WSCWIg1xAhMwxTIK-i56WNqPtpWBo9AqxcVea8NyVctEjUNq_mix5CklNy3ru7ARh7rBG_LU65fzs4fY_uYalul3QZSnr61Gj-cTUB3Gy4PhA63yXCbYRR3gDy6WR_wfis1MS61j0R_AjgXuVufmmC0F7R9qSWfR8ft0CbQgemEHY3ddKeW7T7fKv1jnRwYAkl5B_xtvxRFIYT-uR9NNftixNpUIW7q8qvOH7D9icXOg4_wIVxTRe5QiRYwEFoUbV1V9bFtu5FLal0vZnLaWwg5tA6enhzBpxJNdrS0v1RcPpyeNP-9r3cUDGmeftwz9v95UQ\" , \" e\" : \" AQAB\" , \" alg\" : \" A256GCM\" }" ), //nolint:lll
8418
+ },
8419
+ },
8420
+ KeySets : []* kong.KeySet {
8421
+ {
8422
+ ID : kong .String ("d46b0e15-ffbc-4b15-ad92-09ef67935453" ),
8423
+ },
8424
+ },
8425
+ },
8426
+ },
8406
8427
}
8407
8428
for _ , tc := range tests {
8408
8429
t .Run (tc .name , func (t * testing.T ) {
@@ -8411,6 +8432,85 @@ func Test_Sync_KeysAndKeySets(t *testing.T) {
8411
8432
require .NoError (t , err )
8412
8433
8413
8434
testKongState (t , client , false , false , tc .expectedState , nil )
8435
+
8436
+ // re-sync with no error
8437
+ err = sync (ctx , tc .kongFile )
8438
+ require .NoError (t , err )
8439
+ })
8440
+ }
8441
+ }
8442
+
8443
+ // test scope:
8444
+ //
8445
+ // - >=3.1.0
8446
+ func Test_Sync_KeysAndKeySets_Update (t * testing.T ) {
8447
+ runWhen (t , "kong" , ">=3.1.0" )
8448
+ setup (t )
8449
+
8450
+ client , err := getTestClient ()
8451
+ require .NoError (t , err )
8452
+ ctx := context .Background ()
8453
+
8454
+ tests := []struct {
8455
+ name string
8456
+ kongFile string
8457
+ initialState utils.KongRawState
8458
+ updateFile string
8459
+ updatedState utils.KongRawState
8460
+ }{
8461
+ {
8462
+ name : "name addition post creation works without errors" ,
8463
+ kongFile : "testdata/sync/043-keys-and-key_sets/kong-no-name.yaml" ,
8464
+ initialState : utils.KongRawState {
8465
+ Keys : []* kong.Key {
8466
+ {
8467
+ ID : kong .String ("1d15274d-76ae-4aec-928e-1b395cc1333f" ),
8468
+ KID : kong .String ("vsR8NCNV_1_LB06LqudGa2r-T0y4Z6VQVYue9IQz6A4" ),
8469
+ Set : & kong.KeySet {
8470
+ ID : kong .String ("d46b0e15-ffbc-4b15-ad92-09ef67935453" ),
8471
+ },
8472
+ JWK : kong .String ("{\" kty\" : \" RSA\" , \" kid\" : \" vsR8NCNV_1_LB06LqudGa2r-T0y4Z6VQVYue9IQz6A4\" , \" n\" : \" v2KAzzfruqctVHaE9WSCWIg1xAhMwxTIK-i56WNqPtpWBo9AqxcVea8NyVctEjUNq_mix5CklNy3ru7ARh7rBG_LU65fzs4fY_uYalul3QZSnr61Gj-cTUB3Gy4PhA63yXCbYRR3gDy6WR_wfis1MS61j0R_AjgXuVufmmC0F7R9qSWfR8ft0CbQgemEHY3ddKeW7T7fKv1jnRwYAkl5B_xtvxRFIYT-uR9NNftixNpUIW7q8qvOH7D9icXOg4_wIVxTRe5QiRYwEFoUbV1V9bFtu5FLal0vZnLaWwg5tA6enhzBpxJNdrS0v1RcPpyeNP-9r3cUDGmeftwz9v95UQ\" , \" e\" : \" AQAB\" , \" alg\" : \" A256GCM\" }" ), //nolint:lll
8473
+ },
8474
+ },
8475
+ KeySets : []* kong.KeySet {
8476
+ {
8477
+ ID : kong .String ("d46b0e15-ffbc-4b15-ad92-09ef67935453" ),
8478
+ },
8479
+ },
8480
+ },
8481
+ updateFile : "testdata/sync/043-keys-and-key_sets/kong-name-update.yaml" ,
8482
+ updatedState : utils.KongRawState {
8483
+ Keys : []* kong.Key {
8484
+ {
8485
+ ID : kong .String ("1d15274d-76ae-4aec-928e-1b395cc1333f" ),
8486
+ Name : kong .String ("foo" ),
8487
+ KID : kong .String ("vsR8NCNV_1_LB06LqudGa2r-T0y4Z6VQVYue9IQz6A4" ),
8488
+ Set : & kong.KeySet {
8489
+ ID : kong .String ("d46b0e15-ffbc-4b15-ad92-09ef67935453" ),
8490
+ },
8491
+ JWK : kong .String ("{\" kty\" : \" RSA\" , \" kid\" : \" vsR8NCNV_1_LB06LqudGa2r-T0y4Z6VQVYue9IQz6A4\" , \" n\" : \" v2KAzzfruqctVHaE9WSCWIg1xAhMwxTIK-i56WNqPtpWBo9AqxcVea8NyVctEjUNq_mix5CklNy3ru7ARh7rBG_LU65fzs4fY_uYalul3QZSnr61Gj-cTUB3Gy4PhA63yXCbYRR3gDy6WR_wfis1MS61j0R_AjgXuVufmmC0F7R9qSWfR8ft0CbQgemEHY3ddKeW7T7fKv1jnRwYAkl5B_xtvxRFIYT-uR9NNftixNpUIW7q8qvOH7D9icXOg4_wIVxTRe5QiRYwEFoUbV1V9bFtu5FLal0vZnLaWwg5tA6enhzBpxJNdrS0v1RcPpyeNP-9r3cUDGmeftwz9v95UQ\" , \" e\" : \" AQAB\" , \" alg\" : \" A256GCM\" }" ), //nolint:lll
8492
+ },
8493
+ },
8494
+ KeySets : []* kong.KeySet {
8495
+ {
8496
+ ID : kong .String ("d46b0e15-ffbc-4b15-ad92-09ef67935453" ),
8497
+ Name : kong .String ("bar" ),
8498
+ },
8499
+ },
8500
+ },
8501
+ },
8502
+ }
8503
+ for _ , tc := range tests {
8504
+ t .Run (tc .name , func (t * testing.T ) {
8505
+ reset (t )
8506
+ err := sync (ctx , tc .kongFile )
8507
+ require .NoError (t , err )
8508
+ testKongState (t , client , false , false , tc .initialState , nil )
8509
+
8510
+ // update
8511
+ err = sync (ctx , tc .updateFile )
8512
+ require .NoError (t , err )
8513
+ testKongState (t , client , false , false , tc .updatedState , nil )
8414
8514
})
8415
8515
}
8416
8516
}
@@ -8489,6 +8589,83 @@ func Test_Sync_KeysAndKeySets_Konnect(t *testing.T) {
8489
8589
}
8490
8590
}
8491
8591
8592
+ // test scope:
8593
+ //
8594
+ // - konnect
8595
+ // TODO: Update test once konnect supports key_set creation without names.
8596
+ func Test_Sync_KeysAndKeySets_Konnect_Update (t * testing.T ) {
8597
+ runWhenKonnect (t )
8598
+ setup (t )
8599
+
8600
+ client , err := getTestClient ()
8601
+ require .NoError (t , err )
8602
+ ctx := context .Background ()
8603
+
8604
+ tests := []struct {
8605
+ name string
8606
+ kongFile string
8607
+ initialState utils.KongRawState
8608
+ updateFile string
8609
+ updatedState utils.KongRawState
8610
+ }{
8611
+ {
8612
+ name : "name addition post creation works without errors" ,
8613
+ kongFile : "testdata/sync/043-keys-and-key_sets/kong-no-name-konnect.yaml" ,
8614
+ initialState : utils.KongRawState {
8615
+ Keys : []* kong.Key {
8616
+ {
8617
+ ID : kong .String ("1d15274d-76ae-4aec-928e-1b395cc1333f" ),
8618
+ KID : kong .String ("vsR8NCNV_1_LB06LqudGa2r-T0y4Z6VQVYue9IQz6A4" ),
8619
+ Set : & kong.KeySet {
8620
+ ID : kong .String ("d46b0e15-ffbc-4b15-ad92-09ef67935453" ),
8621
+ },
8622
+ JWK : kong .String ("{\" kid\" :\" vsR8NCNV_1_LB06LqudGa2r-T0y4Z6VQVYue9IQz6A4\" ,\" kty\" :\" RSA\" ,\" alg\" :\" A256GCM\" ,\" n\" :\" v2KAzzfruqctVHaE9WSCWIg1xAhMwxTIK-i56WNqPtpWBo9AqxcVea8NyVctEjUNq_mix5CklNy3ru7ARh7rBG_LU65fzs4fY_uYalul3QZSnr61Gj-cTUB3Gy4PhA63yXCbYRR3gDy6WR_wfis1MS61j0R_AjgXuVufmmC0F7R9qSWfR8ft0CbQgemEHY3ddKeW7T7fKv1jnRwYAkl5B_xtvxRFIYT-uR9NNftixNpUIW7q8qvOH7D9icXOg4_wIVxTRe5QiRYwEFoUbV1V9bFtu5FLal0vZnLaWwg5tA6enhzBpxJNdrS0v1RcPpyeNP-9r3cUDGmeftwz9v95UQ\" ,\" e\" :\" AQAB\" }" ), //nolint:lll
8623
+ },
8624
+ },
8625
+ KeySets : []* kong.KeySet {
8626
+ {
8627
+ ID : kong .String ("d46b0e15-ffbc-4b15-ad92-09ef67935453" ),
8628
+ Name : kong .String ("bar" ),
8629
+ },
8630
+ },
8631
+ },
8632
+ updateFile : "testdata/sync/043-keys-and-key_sets/kong-name-update.yaml" ,
8633
+ updatedState : utils.KongRawState {
8634
+ Keys : []* kong.Key {
8635
+ {
8636
+ ID : kong .String ("1d15274d-76ae-4aec-928e-1b395cc1333f" ),
8637
+ Name : kong .String ("foo" ),
8638
+ KID : kong .String ("vsR8NCNV_1_LB06LqudGa2r-T0y4Z6VQVYue9IQz6A4" ),
8639
+ Set : & kong.KeySet {
8640
+ ID : kong .String ("d46b0e15-ffbc-4b15-ad92-09ef67935453" ),
8641
+ },
8642
+ JWK : kong .String ("{\" kid\" :\" vsR8NCNV_1_LB06LqudGa2r-T0y4Z6VQVYue9IQz6A4\" ,\" kty\" :\" RSA\" ,\" alg\" :\" A256GCM\" ,\" n\" :\" v2KAzzfruqctVHaE9WSCWIg1xAhMwxTIK-i56WNqPtpWBo9AqxcVea8NyVctEjUNq_mix5CklNy3ru7ARh7rBG_LU65fzs4fY_uYalul3QZSnr61Gj-cTUB3Gy4PhA63yXCbYRR3gDy6WR_wfis1MS61j0R_AjgXuVufmmC0F7R9qSWfR8ft0CbQgemEHY3ddKeW7T7fKv1jnRwYAkl5B_xtvxRFIYT-uR9NNftixNpUIW7q8qvOH7D9icXOg4_wIVxTRe5QiRYwEFoUbV1V9bFtu5FLal0vZnLaWwg5tA6enhzBpxJNdrS0v1RcPpyeNP-9r3cUDGmeftwz9v95UQ\" ,\" e\" :\" AQAB\" }" ), //nolint:lll
8643
+ },
8644
+ },
8645
+ KeySets : []* kong.KeySet {
8646
+ {
8647
+ ID : kong .String ("d46b0e15-ffbc-4b15-ad92-09ef67935453" ),
8648
+ Name : kong .String ("bar" ),
8649
+ },
8650
+ },
8651
+ },
8652
+ },
8653
+ }
8654
+ for _ , tc := range tests {
8655
+ t .Run (tc .name , func (t * testing.T ) {
8656
+ reset (t )
8657
+ err := sync (ctx , tc .kongFile )
8658
+ require .NoError (t , err )
8659
+ testKongState (t , client , true , false , tc .initialState , nil )
8660
+
8661
+ // update
8662
+ err = sync (ctx , tc .updateFile )
8663
+ require .NoError (t , err )
8664
+ testKongState (t , client , true , false , tc .updatedState , nil )
8665
+ })
8666
+ }
8667
+ }
8668
+
8492
8669
// test scope:
8493
8670
//
8494
8671
// - >=3.10.0+enterprise
0 commit comments