Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

testing: helm-unittest's isNotNullOrEmpty passes when the path does not exist

Ouverte Adaptée aux débutants
#4,841 1 commentaire 1 réaction 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 2 jours

@Shxshxnkk1 y travaille déjà.

Depuis le 10/10/2026.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
75/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
go, kubernetes, yaml
Domaine
testing

Piste de recherche

Les trois sites d'appel sont identifiés : packages/tests/cozy-lib-tests/tests/tls_cacert_test.yaml (lignes 44 et 297), packages/apps/clickhouse/tests/backup_api_contract_test.yaml (ligne 89) et packages/apps/vpn/tests/vpn_test.yaml (ligne 24). Commence par lire chaque assertion isNotNullOrEmpty et son chemin, puis ajoute à côté une assertion exists sur le même chemin. C'est terminé lorsque chacun de ces chemins possède une assertion exists et que les suites concernées passent toujours sous helm unittest. La question du validateur en amont est distincte et ne bloque pas cette modification.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

area/testing kind/bug triage/needs-triage

helm-unittest's isNotNullOrEmpty does not fail when the path it checks is missing from the rendered manifest. It fails only when the path exists and holds an empty value. So a test that uses it to say "this key is set" keeps passing after the key is renamed or dropped.

The cause is in the validator. isNotNullOrEmpty is isNullOrEmpty with context.Negative set. In pkg/unittest/validators/is_nullorempty_validator.go at v1.1.2, the version CI installs, the "unknown path" error is returned only when !context.Negative. For the negated form the result is len(actual) == 0 && context.Negative, which is true for a path that resolves to nothing.

Checked locally with v1.1.1 against a ConfigMap template:

asserts:
  - isNotNullOrEmpty:
      path: data.nope   # passes
  - isNotEmpty:
      path: data.nope   # passes
  - isNotNull:
      path: data.nope   # fails

exists also fails on a missing path, as expected.

Three test files here use isNotNullOrEmpty:

  • packages/tests/cozy-lib-tests/tests/tls_cacert_test.yaml, lines 44 and 297
  • packages/apps/clickhouse/tests/backup_api_contract_test.yaml, line 89
  • packages/apps/vpn/tests/vpn_test.yaml, line 24

None of them is vacuous today. I swapped each one for exists and the suites stayed green, so every path is present in the current render. The risk is a future rename that these asserts will not notice.

The fix is to add an exists assert next to each of them. It is probably also worth asking upstream whether the negated form is supposed to accept a missing path.

Langage dominant
Go
Étoiles
2.2k
Forks
209
Merge moyen
3 j 9 h
PR mergées (30 j)
242

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de cozystack/cozystack

Toutes les issues de cozystack/cozystack

Issues similaires

Plus d'issues Go

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.