Skip to content

Conversation

@AndrewCharlesHay
Copy link
Contributor

@AndrewCharlesHay AndrewCharlesHay commented Sep 23, 2025

What does it do?

Reduces the cyclomatic complexity of TestProvider from 43. The next highest is TestProviderV6 with a complexity of 43

Motivation

Addresses #5419

More

  • Yes, this PR title follows Conventional Commits
  • Yes, I added unit tests
  • Yes, I updated end user documentation accordingly

…clomatic complexity

- Split monolithic TestProvider into four focused test functions:
  - TestProvider_InitialState: tests empty provider state
  - TestProvider_CreateRecords: tests record creation
  - TestProvider_DeleteRecords: tests record deletion
  - TestProvider_UpdateRecords: tests record updates
- Each function tests a single scenario, reducing complexity
- Preserves all original test logic and maintains 89% coverage
- Passes cyclop linter with complexity threshold of 10
@k8s-ci-robot k8s-ci-robot added the provider Issues or PRs related to a provider label Sep 23, 2025
@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Sep 23, 2025
@AndrewCharlesHay
Copy link
Contributor Author

/ok-to-test

@k8s-ci-robot k8s-ci-robot added the ok-to-test Indicates a non-member PR verified by an org member that is safe to test. label Sep 23, 2025
Copy link
Member

@ivankatliarchuk ivankatliarchuk left a comment

Choose a reason for hiding this comment

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

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Sep 24, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mloiseleur

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

The pull request process is described 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

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 25, 2025
@k8s-ci-robot k8s-ci-robot merged commit c657f74 into kubernetes-sigs:master Sep 25, 2025
17 checks passed
@AndrewCharlesHay AndrewCharlesHay deleted the refactor/pihole-test-complexity branch September 28, 2025 22:36
ivankatliarchuk added a commit to gofogo/k8s-sigs-external-dns-fork that referenced this pull request Oct 8, 2025
* master: (175 commits)
  chore(deps): bump renovatebot/github-action (kubernetes-sigs#5890)
  chore(cloudflare): migrate DeleteCustomHostname() to new lib (kubernetes-sigs#5880)
  docs(advanced): configuration precedence (kubernetes-sigs#5871)
  test: update goversion label to 1.25 in metrics test (kubernetes-sigs#5886)
  ci(linter): add go-critic (kubernetes-sigs#5875)
  docs(providers): add info about Myra protection option and docker image (kubernetes-sigs#5879)
  refactor(pihole): reduce cyclomatic complexity of TestProviderV6 (kubernetes-sigs#5876)
  test(source/service): add serviceTypeFilter edge case (kubernetes-sigs#5872)
  chore(ci): speed-up & coveralls (kubernetes-sigs#5870)
  feat(provider/cloudflare): add support for tags (kubernetes-sigs#5862)
  chore(deps): bump renovatebot/github-action (kubernetes-sigs#5874)
  feat: add new flags to allow migration of OwnerID (kubernetes-sigs#4823)
  docs(volcengine): add volcengine provider to readme (kubernetes-sigs#5866)
  chore(deps): bump renovatebot/github-action (kubernetes-sigs#5856)
  docs improve txt registry documentation formatting and examples for apex record (kubernetes-sigs#5863)
  chore: upgrade ExternalDNS to go v1.25 and golangci-lint v2.5 (kubernetes-sigs#5869)
  refactor(pihole): reduce cyclomatic complexity of TestProvider (kubernetes-sigs#5865)
  refactor(service): reduce cyclomatic complexity of extractHeadlessEndpoints (kubernetes-sigs#5822)
  test(cloudflare): clear environment variables before setting test values (kubernetes-sigs#5851)
  fix(endpoint/source) Allow '.' in TXT Records (kubernetes-sigs#5844)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. provider Issues or PRs related to a provider 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