Skip to content

Add tests for webhook models#771

Closed
Ayoub-Mabrouk wants to merge 5 commits intoline:masterfrom
Ayoub-Mabrouk:implement-webhook-model-tests
Closed

Add tests for webhook models#771
Ayoub-Mabrouk wants to merge 5 commits intoline:masterfrom
Ayoub-Mabrouk:implement-webhook-model-tests

Conversation

@Ayoub-Mabrouk
Copy link
Copy Markdown
Contributor

Implemented unit tests for the webhook model classes. These test files had markTestIncomplete('Not implemented') stubs, so I filled them in.

Added tests for webhook model classes covering message content types (text, image, video, audio, location, sticker, file), event models (Follow, Join, Leave, Message, etc.), and supporting models like Emoji, ContentProvider, ImageSet, and Source types.

Each test verifies that the models can be instantiated and that their properties can be set and retrieved correctly. I made sure to handle non-nullable properties properly (no null assignment tests for those).

Also updated phpunit.xml to include the webhook test suite so PHPUnit actually runs these tests.

All tests pass and code quality checks (CodeSniffer, PHPStan, copyright) are clean. There are still some incomplete tests for models that need more work, but those are intentionally left as-is for now.

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Dec 20, 2025

CLA assistant check
All committers have signed the CLA.

Add webhook test suite to PHPUnit configuration to include all
webhook model tests in the test execution. This allows PHPUnit
to discover and run tests in src/webhook/test/Model/ directory.
Implement unit tests for all message content models including:
- TextMessageContent (text, emojis, mention, quoteToken, etc.)
- ImageMessageContent (contentProvider, imageSet, quoteToken)
- VideoMessageContent (duration, contentProvider, quoteToken)
- AudioMessageContent (contentProvider, duration)
- LocationMessageContent (title, address, latitude, longitude)
- StickerMessageContent (packageId, stickerId, keywords, etc.)
- FileMessageContent (fileName, fileSize)

Each test verifies instantiation and property getter/setter methods.
Implement unit tests for supporting webhook models:
- Emoji (index, length, productId, emojiId)
- ContentProvider (type, originalContentUrl, previewImageUrl)
- ImageSet (id, index, total)
- Source models (UserSource, GroupSource, RoomSource, Source base class)

These models are used as properties in message content and event models.
Tests verify proper instantiation and property access.
Implement unit tests for webhook event models:
- FollowEvent (replyToken, follow detail)
- JoinEvent (replyToken)
- LeaveEvent (no properties)
- UnfollowEvent (no properties)
- MessageEvent (replyToken, message content)
- Event base class (type, source, timestamp, mode, webhookEventId, deliveryContext)

Tests verify event instantiation and property access for webhook event handling.
Implement unit tests for remaining webhook models including:
- PostbackEvent and PostbackContent (data, params)
- MembershipEvent and MembershipContent (type, membershipId)
- MemberJoinedEvent and MemberLeftEvent (joined/left members)
- JoinedMembers, LeftMembers, and membership content models
- MessageContent base class
- Mention and Mentionee models
- Module, Beacon, AccountLink, and other event types
- DeliveryContext, FollowDetail, ChatControl, and other supporting models

This completes the test coverage for all webhook model classes,
ensuring proper validation of property access and model instantiation.
@Ayoub-Mabrouk Ayoub-Mabrouk force-pushed the implement-webhook-model-tests branch from 8620da6 to 0223c09 Compare December 20, 2025 18:39
@eucyt eucyt self-requested a review January 13, 2026 06:35
@eucyt eucyt self-assigned this Jan 13, 2026
@eucyt
Copy link
Copy Markdown
Contributor

eucyt commented Jan 16, 2026

@Ayoub-Mabrouk
Thank you for your contribution. However, it seems that implementing these tests is not necessary.

As noted in the comment at the top of the file, their files are auto-generated by OpenAPI Generator. Even if you add tests, they will be overwritten the next time the code is automatically generated.

For auto-generated model classes that only have simple getters and setters, these basic tests generally provide limited value, so I don’t think it’s necessary to add these tests.

Thank you for your understanding.

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.

3 participants