Skip to content

fix: required template params incorrectly reject falsy values#2033

Open
sahillllllllll-bit wants to merge 1 commit intoasyncapi:masterfrom
sahillllllllll-bit:fix/required-param-validation-falsy
Open

fix: required template params incorrectly reject falsy values#2033
sahillllllllll-bit wants to merge 1 commit intoasyncapi:masterfrom
sahillllllllll-bit:fix/required-param-validation-falsy

Conversation

@sahillllllllll-bit
Copy link
Copy Markdown
Contributor

@sahillllllllll-bit sahillllllllll-bit commented Mar 26, 2026

Description

  • Fixes incorrect validation of required template parameters that treated falsy values (false, 0, '') as missing.
  • Replaced truthy/falsy check (!templateParams[key]) with a strict undefined check (templateParams[key] === undefined).
  • Ensures that only truly missing parameters (i.e., undefined) are flagged, while valid falsy inputs are accepted.
  • Added/updated test cases to cover falsy values and prevent regression.

Related issue(s)

Fixes #2008

Summary by CodeRabbit

  • Bug Fixes
    • Fixed parameter validation to correctly recognize falsy values (e.g., null, false, 0, '') as valid parameter inputs instead of treating them as missing.

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 26, 2026

⚠️ No Changeset found

Latest commit: 5b5b878

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@asyncapi-bot
Copy link
Copy Markdown
Contributor

What reviewer looks at during PR review

The following are ideal points maintainers look for during review. Reviewing these points yourself beforehand can help streamline the review process and reduce time to merge.

  1. PR Title: Use a concise title that follows our Conventional Commits guidelines and clearly summarizes the change using imperative mood (it means spoken or written as if giving a command or instruction, like "add new helper for listing operations")

    Note - In Generator, prepend feat: or fix: in PR title only when PATCH/MINOR release must be triggered.

  2. PR Description: Clearly explain the issue being solved, summarize the changes made, and mention the related issue.

    Note - In Generator, we use Maintainers Work board to track progress. Ensure the PR Description includes Resolves #<issue-number> or Fixes #<issue-number> this will automatically close the linked issue when the PR is merged and helps automate the maintainers workflow.

  3. Documentation: Update the relevant Generator documentation to accurately reflect the changes introduced in the PR, ensuring users and contributors have up-to-date guidance.

  4. Comments and JSDoc: Write clear and consistent JSDoc comments for functions, including parameter types, return values, and error conditions, so others can easily understand and use the code.

  5. DRY Code: Ensure the code follows the Don't Repeat Yourself principle. Look out for duplicate logic that can be reused.

  6. Test Coverage: Ensure the new code is well-tested with meaningful test cases that pass consistently and cover all relevant edge cases.

  7. Commit History: Contributors should avoid force-pushing as much as possible. It makes it harder to track incremental changes and review the latest updates.

  8. Template Design Principles Alignment: While reviewing template-related changes in the packages/ directory, ensure they align with the Assumptions and Principles. If any principle feels outdated or no longer applicable, start a discussion these principles are meant to evolve with the project.

  9. Reduce Scope When Needed: If an issue or PR feels too large or complex, consider splitting it and creating follow-up issues. Smaller, focused PRs are easier to review and merge.

  10. Bot Comments: As reviewers, check that contributors have appropriately addressed comments or suggestions made by automated bots. If there are bot comments the reviewer disagrees with, react to them or mark them as resolved, so the review history remains clear and accurate.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 26, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 35c0ee97-956c-4046-b9b1-da7453b79efc

📥 Commits

Reviewing files that changed from the base of the PR and between bd121dd and 5b5b878.

📒 Files selected for processing (1)
  • apps/generator/lib/templates/config/validator.js

📝 Walkthrough

Walkthrough

Fixed required parameter validation in isRequiredParamProvided to treat parameters as missing only when strictly undefined, rather than using a falsy check. This allows valid falsy values such as false, 0, and '' to be correctly recognized as provided parameters.

Changes

Cohort / File(s) Summary
Required Parameter Validation
apps/generator/lib/templates/config/validator.js
Updated isRequiredParamProvided to check for strict undefined instead of falsy values, allowing false, 0, '', and null to be treated as valid provided inputs rather than missing parameters.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix: required template params incorrectly reject falsy values' follows Conventional Commits guidelines with imperative mood and clearly summarizes the bug fix in the changeset.
Linked Issues check ✅ Passed The PR fully addresses issue #2008 by replacing the falsy check with strict undefined comparison and ensuring falsy values are accepted as valid required parameters.
Out of Scope Changes check ✅ Passed All changes are scoped to fixing the required parameter validation logic as specified in issue #2008; no unrelated modifications were introduced.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Member

@Adi-204 Adi-204 left a comment

Choose a reason for hiding this comment

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

lgtm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Required template parameter validation incorrectly treats falsy values as missing

3 participants