Skip to content

test: add tests for RegisterReceiveOperation in python websocket component#1967

Merged
asyncapi-bot merged 7 commits intoasyncapi:masterfrom
batchu5:test/add-tests-python-RegisterReceiveOperations-component
Feb 14, 2026
Merged

test: add tests for RegisterReceiveOperation in python websocket component#1967
asyncapi-bot merged 7 commits intoasyncapi:masterfrom
batchu5:test/add-tests-python-RegisterReceiveOperations-component

Conversation

@batchu5
Copy link
Contributor

@batchu5 batchu5 commented Feb 9, 2026

Adds comprehensive tests for the RegisterReceiveOperations component in the Python WebSocket client template.

image

Fixes #1908

Summary by CodeRabbit

  • Tests

    • Added snapshot tests for the RegisterReceiveOperations UI covering real receive operations, empty arrays, null, undefined, and missing prop scenarios.
    • Tests load an AsyncAPI websocket document and validate rendering across multiple receive-operation cases.
  • Tests / Fixtures

    • Added WebSocket receive operations and expanded send operation message references in test fixtures to support the new scenarios.

@changeset-bot
Copy link

changeset-bot bot commented Feb 9, 2026

⚠️ No Changeset found

Latest commit: 27ad187

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
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

coderabbitai bot commented Feb 9, 2026

📝 Walkthrough

Walkthrough

Adds a new snapshot test for the RegisterReceiveOperations component and updates AsyncAPI fixtures to include receive operations and a minor formatting change in an existing fixture.

Changes

Cohort / File(s) Summary
RegisterReceiveOperations Component Tests
packages/templates/clients/websocket/python/test/components/RegisterReceiveOperations.test.js
New test suite that renders RegisterReceiveOperations with populated, empty, null, undefined, and omitted receiveOperations; uses AsyncAPI parser and JSX renderer; asserts output via snapshots.
AsyncAPI Websocket Fixture
packages/templates/clients/websocket/test/__fixtures__/asyncapi-websocket-components.yml
Added receiveMessage and receiveNotification operations and updated sendNotification to include messages references to support the new tests.
AsyncAPI v3 Fixture (formatting)
packages/components/test/__fixtures__/asyncapi-v3.yml
Inserted an extra blank line after a $ref in the UserSignedUp message payload (formatting/spacing change only).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 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 follows Conventional Commits guidelines with 'test:' prefix in imperative mood and clearly summarizes the change.
Linked Issues check ✅ Passed The PR adds comprehensive tests for RegisterReceiveOperations covering all objectives: conditional logic, null/empty array handling, and discriminator serialization.
Out of Scope Changes check ✅ Passed All changes are directly related to test coverage for RegisterReceiveOperations; fixture updates support the new tests and are within scope.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

No actionable comments were generated in the recent review. 🎉


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.

@batchu5 batchu5 force-pushed the test/add-tests-python-RegisterReceiveOperations-component branch from 6c83ff7 to d358765 Compare February 10, 2026 01:57
@Adi-204 Adi-204 self-assigned this Feb 11, 2026
@Adi-204 Adi-204 moved this to In Progress in Maintainers work Feb 11, 2026
beforeAll(async () => {
const parseResult = await fromFile(parser, asyncapiWebsocketQuery).parse();
parsedAsyncAPIDocument = parseResult.document;
expect(parsedAsyncAPIDocument).toBeDefined();
Copy link
Member

Choose a reason for hiding this comment

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

this is not needed, you can remove it.

Comment on lines 37 to 47
test('renders nothing without receive operations', () => {
const result = render(<RegisterReceiveOperations />);
const actual = result.trim();
expect(actual).toBe('');
});

test('renders nothing when receiveOperations is undefined', () => {
const result = render(<RegisterReceiveOperations receiveOperations={undefined} />);
const actual = result.trim();
expect(actual).toBe('');
});
Copy link
Member

Choose a reason for hiding this comment

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

Both test cases are essentially testing the same thing — when no receiveOperations prop is passed, it defaults to undefined, so the component receives undefined either way. Remove the last testcase not needed.

@batchu5 batchu5 force-pushed the test/add-tests-python-RegisterReceiveOperations-component branch from b2acc2e to ff32ed7 Compare February 11, 2026 17:49
@batchu5 batchu5 force-pushed the test/add-tests-python-RegisterReceiveOperations-component branch from 8697360 to c9c2b3a Compare February 12, 2026 16:50
@sonarqubecloud
Copy link

@Adi-204
Copy link
Member

Adi-204 commented Feb 14, 2026

/rtm

@asyncapi-bot asyncapi-bot merged commit b85c04e into asyncapi:master Feb 14, 2026
15 checks passed
@github-project-automation github-project-automation bot moved this from In Progress to Done in Maintainers work Feb 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[TEST] Add test coverage for RegisterReceiveOperations.js in Core python websocket Template

3 participants