Add tests for webhook models#771
Closed
Ayoub-Mabrouk wants to merge 5 commits intoline:masterfrom
Closed
Conversation
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.
8620da6 to
0223c09
Compare
Contributor
|
@Ayoub-Mabrouk 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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.xmlto 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.