Proxima v0.2.2
Changelog
All notable changes to this project will be documented in this file.
[0.2.2] - 2024-04-26
🚀 Features
- (clean-tests) Standardize widget display test
- (tests) Renamed ProviderScope with user for less ambiguity when reading the tests
- (post-page) Add navigation to sample post page
- (post_page) Add comment and entire post widget
- (post_page) Add bottom bar in post page
- (post_page) Abstract comments data and UI creation
- (post_page) Abstract app bar content
- (post_page) Close keyboard upon clicking on send button
- (post_page) Add comment list provider
- (post_page) Add todo comment
- (post-exists) Add postExists method
- (post-exists) Test that a post does not exist before creation
- (upvote) Add PostVote class to represent the vote UI state
- (upvote) Use the upvote viewmodel to get the voting logic
- (upvote) Add mock implementation of the upvote repository
- (upvote) Add unit tests for the upvote viewmodel
- (upvote) Add integration tests for the upvote viewmodel
- (upvote) Add tests for PostVote
- (upvote) Add documentation for the viewmodel
- (upvote) Add postid field
- (refactor) Adapt to the postId contained in PostOverview
- (immutability) Add tests for hashcode and ==
- (immutability) Add tests for hashcode and ==
- (immutability) Add tests for hashcode and ==
- (post-generator) Make createPostAt use the generated id by default
- (logout) Remove previous logout button on top bar
- (logout) Add a logout button component
- (logout) Create delete button accepting an async delete function
- (profile) Add a
FutureVoidCallback
type for delete functions - (delete-button) Add a loading state management and display in UI
- (delete-button) Keep same size using
IconButton
in all cases - (profile-page) Make use of the new async capable delete button
- (loading-button) Make the async icon button more generic
- (types) Move
FutureVoidCallback
to util file - Add a key-value list text generator
- (challenge-page) Add dataclass to store ui's data
- (challenge-page) Add mock view-model
- (challenge-page) Add challenge card ui
- (challenge-page) Add challenge list ui
- (challenge-page) Set the challenge ui to be the challenge list
- (challenge-page) Add custom single and group challenge icons
🐛 Bug Fixes
- (onPressed-parameter) Remove async function within onPressed parameter
- (login) Replace async process of login navigation by then call on future
- (post_upvote_repository_test) Fix refactored import of post_upvote_service.dart
- (new_post_test) Initialize mock in setup
- (clean-tests) Refactoring directories
- (clean-tests) Remove unused import
- (tests) Only one mock login page
- (tests) SetUp is declared only once
- (tests) Regroup setups in login_test
- (tests) Only one mocked profile page
- (tests) SetupFirebaseAuthMocks called in each test
- (tests) Remove unused imports and methods
- (tests) Rename variables and tests for clarity
- (tests) Remove find.text to avoid error on change
- (clean-tests) Implement reviewers suggestions
- (clean-tests) Solve merge conflict on profile_page_test
- (circular_value) Add blank line before return
- (post-page) Remove unused import
- (tests) Refactor folders
- (tests) Move all mocks to folder mocks
- (tests) Organize imports
- (tests) Replace initialRoute by home
- (tests) Centralize mocked homepages
- (tests) Abstract homeviewmodel override
- (tests) Mocked login page
- (tests) Remove unused imports
- (tests) Create mock/data folder and userRepoOverride
- (tests) Move mock geolocator and revert profile page
- (tests) Use mock post generator
- (tests) Use only one user position for all tests
- (tests) Create services folder in mock
- (tests) Centralize firestore mock data
- (tests) Refactor overrides
- (tests) Abstract away providers
- (tests) Follow dart format recommandation
- (tests) Move firestore override and rename
- (post_page) Remove insignificant paddings
- (post_page) Fix comments post widget key duplicate issue
- (upvote) Set the upvote viewmodel to be auto disposable to get correct updates
- (upvote) Remove the votes constructor field
- (upvote) Throw error if the user is not logged in
- (upvote) Await for the the futures in parallel
- (upvote) Resolve import issues due to merging
- (upvote) Remove deprecated usage of .new
- (upvote) Update documentation
- (upvote) Fix typo in file name
- (post-page) Adapt to new base
- (end2end-test) Remove deleted package from pubspec.yaml
- (upvote) Replace comment duplicates by a single comment
- (immutability-tests) Check that we get the expected hashcode
- (post-repository-test) Fix test failing on some machines
- (new-post-test) Fix non-deterministic test
- (post-repository-test) Use null-aware assignment operator
- (upvote) Use new instance based testing mock data generators
- (format) Apply dart format suggestion
- (post_page) Extract string to named constant
- (format) Apply dart format suggestion
- (post_page) Remove unnecessary Center and Row widget.
- (logout) Use short hand function call notation in argument
- (profile) Remove stale comment about viewmodel
- (error-handling) Fix comment typo
- (delete-button) Implement fixed side container with small loading progress
- (profile-page) Add comment to use profile avatar component
- (format) Applied dart format suggestion
- (post_page_test) Remove unused import
- (key-value-list-gen) Add missing style to a TextSpan
- (challenge-page) Decrease icon opacity to make it less prominent
- (challenge-page) Remove overflow for very (very) small phones
- (challenge-page-test) Fix test failing when multiple challenges are finished
🚜 Refactor
- Apply dart code metrics suggestions about refactoring and code style
- (feed_sort_option) Refactor feed_sort_option to follow good practices
- (user_account) Remove repeated invocation of textStyle
- (post_upvote_service) Rename to post_upvote_repository_service and add blank line before return statement
- (login-page) Revert async function for login navigation
- (tests) Move mock post data and combine tests
- (tests) Create methods for relative mock positions
- (tests) Create generatePost function
- (tests) Rename class and apply suggestions
- (tests) Separate post data and firestore post generator
- (tests) Rename generators
- (tests) Create GeoPointGenerator class
- (tests) Centralize remaining GeoPoints
- (tests) Move emptyfirestoreuser and make it private
- (tests) Move post about turtles to mocks
- (tests) Removing "mock" from file names
- (tests) Replace GeoPoint(0,0) by userPosition0
- (tests) Pump ProviderScope directly
- (comment_list) Move out CommentList widget
- (post_page) Refactor to complete post widget
- (upvote) Expose the post id in the postOverviewProvider
- (upvote) Expose the number of votes instead of the increment in upvote viewmodel
- (upvote) Rename the upvote viewmodel provider
- (upvote) Remove the use of the ({PostIdFirestore postId}) tuple to create the upvote viewmodel
- (upvote) Arrange widget as seen on screen
- (upvote) Stack ref. at beginning of widget
- (upvote) Use short-hand notation
- (end2end-test) Move the tests under /test
- (end2end-test) Remove the emulator to make the test runnable in the CI
- (test-position-generator) Make class non instantiable and methods static
- (test-position-generator) Remove mentions of posts
- (post-repository-test) Instanciate GeoPointGenerator in the test setup
- (profile) Clean profile page build method
- (profile) Extract appbar to local widget
- (profile) Extract badges from build to local
- (profile) Extract posts and comments from profile build local
- (profile) Factorized code from both popup
- (profile) Factorized code from both info card
- (profile) Rename components
- (profile) Improve overal profile components + static const
- (profile) Rearanged directory structure
- (post_page) Remove unnecessary complexity caused by a comma
- (challenge-page) Made opacityWhenFinished attribute private
- (challenge-page-test) Make data of the mock challenge unique
- (challenge-card-data) Remove unnecessary identical check in ==
- (challenge-page-test) Move 'expectOneRichText' to the 'testutils/' package
- (expect-rich-text) Add matcher in argument to improve modularity
- (challenge-card-data) Make different constructors for group and finished challenges
📚 Documentation
- (test-position-generator) Fix typo
- (post_page) Move comments for better readability.
🎨 Styling
- (post-repository-test) Add missing trailing commas
- (challenge-page) Use 'bold' alias instead of 'w700'
- (challenge-page-test) Remove unnecessary import
🧪 Testing
- (post_age) Add key to post page widgets
- (post_page) Add static test for non-comment widgets post page
- (comments) Add a list of mock comments
- (post_page) Add comments widget test
- (comment_post) Test hash and equality
- (comment_post_test) Add inequality tests
- (profile) Rename keys in profile
- (logout) Logout test accesses the profile page
- (profile-page) Convert tests to make use of the new async delete button
- (post_page) Add test for post displayed information & replace homePage naming
- (post_page_test) Add test to check correct displayed username on comments
- (challenge-page) Add mock view-model
- (challenge-page) Test challenge card data hashcode and equality
- (challenge-page) Add provider for the mocked view-model
- (challenge-page) Add tests for the static page
- (challenge-page) Add test data for finished group challenge
- (post_page) Remove small typo widgetswidgets
⚙️ Miscellaneous Tasks
- Bump project version to v0.2.2