Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pkg/webhook: unit test Multi-Cluster Ingress #5518

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

mohamedawnallah
Copy link
Contributor

@mohamedawnallah mohamedawnallah commented Sep 11, 2024

Description

In this commit we introduce unit tests for the Validation Admission. These tests ensure correct behavior for various validation scenarios and improve coverage:

  • Tests the behavior when decoding the request object fails, verifying that admission is denied with an appropriate error message.
  • Validates that the webhook denies admission when encountering invalid values in the MultiClusterIngress spec, ensuring error messaging.
  • Confirms that valid MultiClusterIngress objects are admitted without errors.

What type of PR is this?

Which issue(s) this PR fixes:
Part of #5491.

Dependency:
This PR depends on #5520.

Does this PR introduce a user-facing change?:

NONE

@karmada-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign kevin-wangzefeng for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

In this commit we introduce unit tests for the `Validation Admission`. These
tests ensure correct behavior for various validation scenarios and improve coverage:

- Tests the behavior when decoding the request object fails, verifying
  that admission is denied with an appropriate error message.
- Validates that the webhook denies admission when encountering invalid values in the
  `MultiClusterIngress` spec, ensuring error messaging.
- Confirms that valid `MultiClusterIngress` objects are admitted without errors.

Signed-off-by: Mohamed Awnallah <[email protected]>
@codecov-commenter
Copy link

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 34.22%. Comparing base (32c2ef7) to head (d2259d5).
Report is 58 commits behind head on master.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #5518      +/-   ##
==========================================
+ Coverage   31.70%   34.22%   +2.52%     
==========================================
  Files         643      643              
  Lines       44445    44524      +79     
==========================================
+ Hits        14090    15239    +1149     
+ Misses      29325    28130    -1195     
- Partials     1030     1155     +125     
Flag Coverage Δ
unittests 34.22% <ø> (+2.52%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@@ -0,0 +1,448 @@
/*
Copyright 2023 The Karmada Authors.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2023 -> 2024

Comment on lines +39 to +43
const (
Denied ResponseType = "Denied"
Allowed ResponseType = "Allowed"
Errored ResponseType = "Errored"
)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see that this is used elsewhere. Would you consider putting it in a public test file?

Comment on lines +51 to +54
type fakeValidationDecoder struct {
err error
obj runtime.Object
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this structure also be used as a public structure?

Copy link
Member

@XiShanYongYe-Chang XiShanYongYe-Chang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot, other parts lgtm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants