Proxima v0.3.1
Changelog
All notable changes to this project will be documented in this file.
[0.3.1] - 2024-05-10
🚀 Features
- (githubm-project-v2) Add project data
- (post-deletion) Feed gets refreshed on post delete
- (end2end) Check post in profile page and
- (end2end) Post deletion flow
- (recursive-deletion) Delete subcollections of posts
- (recursive-deletion) Delete all upvotes of a comment
- (comment) Add viewmodel for exposing the comments under a post
- (comment) Add refresh method
- (comment) Add the provider for the comment viewmodel
- (comment) Sort the comments from newest to oldest
- (comment) Display comments under the post
- (comment) Make the postpage refreshable to refresh the list of comments
- (comment) Add mock comment viewmodel
- (comment) Add a method to create a CommentPost from data
- (challenge-repository) [breaking] Make completeChallenge return the Centauri points added
- Add a snackbar showing the number of Centauri won
- (challenges) Display snackbar when clicking on an active challenge
- (points-snackbar) Make snackbar behaviour to be floating
- (challenge-repository) Add a mock
- (feed) Put challenges always on top
- (post-overview) Add isChallenge attribute
- (post-overview) Add a border to challenge posts
- (post-feed) Remove completed challenges from the top of the feed
- (post-page) Reload feed when popping a challenge view
- (challenge-generator) Add generateFromPostId method
- (personal_user_avatar) Add personal user avatar widget based on profile viewmodel
- (dynamic_user_avatar) Add dynamic user avatar view model
- (dynamic_user_avatar_view_model) Remove code duplication
- (challenge-logout) Add a uid provider that is never null
- (comment) Add class to represent the state of adding a comment
- (comment) Add the viewmodel for adding comments
- (comment) Add provider for the new comment view model
- (comment) Make tryAddComment returns if the comment was added successfuly
- (comment) Add a reset method to the view model to clear the state
- (comment) Link the ui to the new comment view model
- (time-service) Create the human time service
- (time-service) Add types and implementation for getting current DateTime
- (time-service) Provide the current datetime to service
- (time-service) Add interfaces and API for service
- (time-service) Implementation of time service interface API
- (time-service) Remove old date time usage from UI
- (time-service) Use of the new time service in UI
- (time-service) Replace old private function calls by new values
- (time-service) Actually use the
currentDateTimeCallback
arg for timeago clock - (time-dists) Use expectation testing instead of search testing
- (map) Added a viewmodel for custom map pins
🐛 Bug Fixes
- (recursive-deletion) Delete upvotes before comments
- (recursive-deletion) Delete single comment correctly
- (recursive-deletion) Check for comment existence before deletion
- (comment) Make the return type of build to be Future
- (comment) Put the real comment count when create the post overview
- (comment) Check for the real number of comments under a post
- (comment) Use the available setUsersFirestore function
- (comment) Check that the actual comments are sorted in the intuitive order
- (comment) Check that no comments are exposed when a comment is added to the database and no refesh has been called
- (comment) Remove unecessary mock override
- (feed-tests) Make tests use a mock challenge repository and userId
- (dynamic_user_avatar) Remove unused parameter bottom bar comment
- (dynamic_user_avatar_view_model) Throw exception when user not logged and input user is null
- (challenge-logout) Use valid uid provider in challenge view-model
- (challenge-logout) Circular value searches for debug text inside message.
- (challenge-logout) Use validUid for completeChallenge
- (profile-viewmodel) Error text for no user
- (valid-uid) Use valid uid in account creation viewmodel
- (comment) Correct error message
- (comment) Make the content error message public
- (comment) Remove paraphrasing comments
- (comment) Remove useless dashes
- (comment) Make content field persitent when the user navigates to another page
- (time-service) Import problem after merging
- (recursive-deletion) Use new upvote repository constructors
- (tests) Broken tests related to dynamicUserAvatar
- (map) Added comments for the new MapPin class
- (map) Moved map_pin.dart under lib/model/ui
- (map) Change pin.id type to MarkerId
- (map) Moved MapPin test file under test/model/ui
- (map) Changed "for loop" to "map"
- (map) Applied remarks on map pin test file
- (map) Refractored duplicate code
- (map) MapPinProvider is now an AsyncNotifierProvider
- (map) Made callback function non-nullable
- (map) Made generateMapPins() static
- (map) Better error management for the map pins and the live location.
- (tests) Consistent format on
ProviderScope
return - (tests) Keep consistent relative timings from the constant time
- (tests) Correct typos in comments
🚜 Refactor
- (logout) Move to profile page components
- (test) Centralize delayNeededForAsyncFunctionExecution
- (end2end) Check for card presence on delete
- (end2end) Check both content and card
- (end2end) Call deletion test method
- (recursive-deletion) Factorize the deletion of one comment
- (comment) Rename comments provider
- (comment) Put commentList variable inline in bodyChildren
- (points-snackbar) Move duration to a constant
- (sorting-service) Make putOnTop argument take ids instead of posts
- (challenge-generator) Set default expiration delay to 1 day
- (static-post-page-tests) Add navigation group
- Add comments and remove TODO
- (profile) Use card for post and comments
- (profile) Use cards for badges
- (profile) Remove shadow parameter
- (profile) Remove separator between posts
- (dynamic_user_avatar_view_model) Rename view model provider
- (user_avatar) Move user_avatar's folder to views/components
- (challenge-logout) Use validUid provider everywhere
- (e2e-test) Only override the base database, not repositories
- (e2e-test) Separate user flow from regression tests
- (e2e-test) Factorize testing actions
- (challenge-logout) Format
- (comment) Move ref read to beginning of the method
- (comment) Separate the ui elements of the bottom bar add comment widget
- (upvote-repository) Make specific constructors for post and comment cases
- (tests) Rename time close to now to
closeToNowTime
- (tests) Move mock post to the corresponding mock data file
- (recursive-deletion) Make the checkExists parameter named
📚 Documentation
- (recursive-deletion) Improve doc and test names
- (comment) Add docs for the comment viewmodel
- (comment) Explain why we cannot rename the arg parameter
- (comment) Add comment line to describe addUsers
- (dynamic_user_avatar_view_model) Add fetch user profile picture todo
- (user_avatar) Add comment on user's initial
- (user_avatar & dynamic_user_avatar) Add widget documentation
- (bottom_bar_add_comment) Add widget documentation
- (challenge-logout) Extra doc to the previous provider for consistency
- (challenge-logout-error) Clarify doc
- (comment) Add short description of the new comment view model
- (upvote-repository) Document constructors
- (tests) Add documentation for human time unit testing
- (tests) Add documentation for human time and distances UI testing
⚡ Performance
- (home-view-model) Await on both challenges and posts at the same time
- (challenges) Refresh home view-model on post page entering
🎨 Styling
- (post-page) Remove unnecessary import
🧪 Testing
- (recursive-deletion) Test for deletion of post subcollections
- (recursive-deletion) Test all comment deletion
- (recursive-deletion) Check that comment upvotes are deleted
- (comment) Add tests for the comment viewmodel
- (comment) Add test to check the refresh method of the comment viewmodel
- (comment) Add utility functions to create and add users to firestore
- (home-view-model) Test challenges are put on top
- (points-snackbar) Test it appears when clicking on challenge
- (dynamic_user_avatar) Mock view model and override.
- (dynamic_user_avatar) Add tests for dynamic user avatar
- (dynamic_user_avatar_view_model) Add unit test
- (dynamic_user_avatar_view_model) Group tests setup
- (user_avatar_view_model) Fix small typo in test name
- (challenge-logout) Add regression test
- (challenge-logout) Make tests compatible
- (challenge-logout-error) Check logout button existence before tap
- (challenge-logout) Create the regression test on the view-model
- (challenge-logout) Remove the regression test from end2end tests
- (comment) Add tests for the new comment view model
- (comment) Add mock provider for the post page
- (comment) Add test for adding comment on post page view
- (time-dists) Human time service fake provider setup
- (time-dists) Fake providers for constant time services
- (time-dists) Human time provider override definition
- (time-dists) Human time service unit testing set up
- (time-dists) First basic time absolute unit test
- (time-dists) Abstracts the constant time value for easier relative testing
- (time-dists) Complete the absolute time unit testing
- (time-dists) Relative testing 'now' special case
- (time-dists) Relative human time service unit tests
- (time-dists) Add an custom provider scope for a given post
- (time-dists) Basic distance value calculation test
- (time-dists) Use the override for the human time service
- (time-dists) Basic test for correct human time on test post
- (map) Testing that the MapPin provider works as expected
⚙️ Miscellaneous Tasks
- Bump project version to v0.3.1
- (dependencies) Move mockito to dev dependencies
Teast
- (time-dists) Check correct timing value on custom post
Text
- (dynamic_user_avatar) Add text key on initial display name text