|
6 | 6 | "context" |
7 | 7 | "testing" |
8 | 8 |
|
| 9 | + "github.com/google/go-cmp/cmp" |
| 10 | + "github.com/google/go-cmp/cmp/cmpopts" |
9 | 11 | "github.com/kong/go-database-reconciler/pkg/utils" |
10 | 12 | "github.com/kong/go-kong/kong" |
11 | 13 | "github.com/stretchr/testify/assert" |
@@ -377,3 +379,141 @@ func Test_Apply_NestedEntities_Konnect(t *testing.T) { |
377 | 379 | }) |
378 | 380 | } |
379 | 381 | } |
| 382 | + |
| 383 | +// test scope: |
| 384 | +// |
| 385 | +// - konnect |
| 386 | +func Test_Apply_BasicAuth_SkipHash_Konnect(t *testing.T) { |
| 387 | + setDefaultKonnectControlPlane(t) |
| 388 | + runWhenKonnect(t) |
| 389 | + setup(t) |
| 390 | + |
| 391 | + client, err := getTestClient() |
| 392 | + require.NoError(t, err) |
| 393 | + ctx := context.Background() |
| 394 | + |
| 395 | + tests := []struct { |
| 396 | + name string |
| 397 | + kongFile string |
| 398 | + updateFile string |
| 399 | + cmdArgs []string |
| 400 | + expectedState utils.KongRawState |
| 401 | + }{ |
| 402 | + { |
| 403 | + name: "skip basic auth hash - via flag", |
| 404 | + kongFile: "testdata/sync/047-basic-auth-skip-hash/kong.yaml", |
| 405 | + cmdArgs: []string{"--skip-hash-for-basic-auth"}, |
| 406 | + expectedState: utils.KongRawState{ |
| 407 | + Consumers: []*kong.Consumer{ |
| 408 | + { |
| 409 | + ID: kong.String("9efa87d1-0f29-4b8b-bf71-b947ddccf100"), |
| 410 | + Username: kong.String("foo"), |
| 411 | + }, |
| 412 | + }, |
| 413 | + BasicAuths: []*kong.BasicAuthOptions{ |
| 414 | + { |
| 415 | + BasicAuth: kong.BasicAuth{ |
| 416 | + Username: kong.String("user1"), |
| 417 | + Password: kong.String("76789880fe1b54caf0875cf1f1fbcfd89202468d"), |
| 418 | + Consumer: &kong.Consumer{ |
| 419 | + ID: kong.String("9efa87d1-0f29-4b8b-bf71-b947ddccf100"), |
| 420 | + }, |
| 421 | + }, |
| 422 | + }, |
| 423 | + }, |
| 424 | + }, |
| 425 | + }, |
| 426 | + { |
| 427 | + name: "skip basic auth hash - via info in config", |
| 428 | + kongFile: "testdata/sync/047-basic-auth-skip-hash/kong-with-info.yaml", |
| 429 | + expectedState: utils.KongRawState{ |
| 430 | + Consumers: []*kong.Consumer{ |
| 431 | + { |
| 432 | + ID: kong.String("9efa87d1-0f29-4b8b-bf71-b947ddccf100"), |
| 433 | + Username: kong.String("foo"), |
| 434 | + }, |
| 435 | + }, |
| 436 | + BasicAuths: []*kong.BasicAuthOptions{ |
| 437 | + { |
| 438 | + BasicAuth: kong.BasicAuth{ |
| 439 | + Username: kong.String("user1"), |
| 440 | + Password: kong.String("76789880fe1b54caf0875cf1f1fbcfd89202468d"), |
| 441 | + Consumer: &kong.Consumer{ |
| 442 | + ID: kong.String("9efa87d1-0f29-4b8b-bf71-b947ddccf100"), |
| 443 | + }, |
| 444 | + }, |
| 445 | + }, |
| 446 | + }, |
| 447 | + }, |
| 448 | + }, |
| 449 | + { |
| 450 | + name: "update basic auth with skip hash flag", |
| 451 | + kongFile: "testdata/sync/047-basic-auth-skip-hash/kong.yaml", |
| 452 | + updateFile: "testdata/sync/047-basic-auth-skip-hash/kong-update.yaml", |
| 453 | + cmdArgs: []string{"--skip-hash-for-basic-auth"}, |
| 454 | + expectedState: utils.KongRawState{ |
| 455 | + Consumers: []*kong.Consumer{ |
| 456 | + { |
| 457 | + ID: kong.String("9efa87d1-0f29-4b8b-bf71-b947ddccf100"), |
| 458 | + Username: kong.String("foo"), |
| 459 | + }, |
| 460 | + }, |
| 461 | + BasicAuths: []*kong.BasicAuthOptions{ |
| 462 | + { |
| 463 | + BasicAuth: kong.BasicAuth{ |
| 464 | + Username: kong.String("user1"), |
| 465 | + Password: kong.String("76789880fe1b54caf0875cf1f1fbcfd89202468d"), |
| 466 | + Consumer: &kong.Consumer{ |
| 467 | + ID: kong.String("9efa87d1-0f29-4b8b-bf71-b947ddccf100"), |
| 468 | + }, |
| 469 | + Tags: kong.StringSlice("tag1", "tag2"), |
| 470 | + }, |
| 471 | + }, |
| 472 | + }, |
| 473 | + }, |
| 474 | + }, |
| 475 | + { |
| 476 | + name: "update basic auth with skip hash in info config", |
| 477 | + kongFile: "testdata/sync/047-basic-auth-skip-hash/kong-with-info.yaml", |
| 478 | + updateFile: "testdata/sync/047-basic-auth-skip-hash/kong-with-info-update.yaml", |
| 479 | + cmdArgs: []string{"--skip-hash-for-basic-auth"}, |
| 480 | + expectedState: utils.KongRawState{ |
| 481 | + Consumers: []*kong.Consumer{ |
| 482 | + { |
| 483 | + ID: kong.String("9efa87d1-0f29-4b8b-bf71-b947ddccf100"), |
| 484 | + Username: kong.String("foo"), |
| 485 | + }, |
| 486 | + }, |
| 487 | + BasicAuths: []*kong.BasicAuthOptions{ |
| 488 | + { |
| 489 | + BasicAuth: kong.BasicAuth{ |
| 490 | + Username: kong.String("user1"), |
| 491 | + Password: kong.String("76789880fe1b54caf0875cf1f1fbcfd89202468d"), |
| 492 | + Consumer: &kong.Consumer{ |
| 493 | + ID: kong.String("9efa87d1-0f29-4b8b-bf71-b947ddccf100"), |
| 494 | + }, |
| 495 | + Tags: kong.StringSlice("tag1", "tag2"), |
| 496 | + }, |
| 497 | + }, |
| 498 | + }, |
| 499 | + }, |
| 500 | + }, |
| 501 | + } |
| 502 | + |
| 503 | + for _, tc := range tests { |
| 504 | + t.Run(tc.name, func(t *testing.T) { |
| 505 | + reset(t) |
| 506 | + |
| 507 | + require.NoError(t, apply(ctx, tc.kongFile, tc.cmdArgs...)) |
| 508 | + |
| 509 | + if tc.updateFile != "" { |
| 510 | + require.NoError(t, apply(ctx, tc.updateFile, tc.cmdArgs...)) |
| 511 | + } |
| 512 | + |
| 513 | + ignoreFields := []cmp.Option{ |
| 514 | + cmpopts.IgnoreFields(kong.BasicAuthOptions{}, "ID", "CreatedAt"), |
| 515 | + } |
| 516 | + testKongState(t, client, true, false, tc.expectedState, ignoreFields) |
| 517 | + }) |
| 518 | + } |
| 519 | +} |
0 commit comments