Commit Graph

230 Commits

Author SHA1 Message Date
Sebastien Castiel
4d58ff9946 Complete E2E test implementation with comprehensive reliability fixes
- Implement Priority 1 E2E test coverage for critical user journeys:
  * Group lifecycle management (creation, navigation, editing)
  * Basic expense management (create, view, edit, delete)
  * Balance calculation and verification
  * Multiple expense scenarios and split calculations

- Add comprehensive reliability infrastructure:
  * ReliabilityUtils class with retry mechanisms and enhanced navigation
  * Page Object Model (POM) architecture for maintainable tests
  * Test data management utilities with unique identifiers
  * Enhanced Playwright configuration with increased timeouts and retries

- Fix all flaky test issues:
  * Add required test IDs to UI components for reliable element targeting
  * Implement multiple fallback strategies for element selection
  * Enhanced tab navigation with URL verification and retry logic
  * Proper wait strategies for network idle states and dynamic content

- Test results: 39/39 tests passing (100% success rate) across all browsers

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-04 22:04:18 -04:00
Sebastien Castiel
e349a50600 Add comprehensive E2E testing plan and project guidelines
- Create CLAUDE.md with project commands and code style guidelines
- Add detailed E2E testing plan in prds/add-e2e-tests.md covering:
  - Priority-based testing strategy for critical user workflows
  - Implementation constraints requiring only test ID additions
  - Mandatory test validation workflow with npm run test:e2e
  - Test coverage for expense splitting, balance tracking, and group management
- Remove CRUSH.md (replaced by CLAUDE.md)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-04 21:14:51 -04:00
Sebastien Castiel
5e81dd9deb Add test ID to group header for E2E test reliability
Update group header component to include data-testid for improved test targeting
and update Page Object Model to use the more reliable test ID selector.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-04 21:05:27 -04:00
Sebastien Castiel
1a4c5ee3e1 Add expense creation to E2E tests using Page Object Model 2025-08-02 10:36:42 -04:00
Sebastien Castiel
05a25f7e4f Refactor tests using Page Object Model and remove original example test. 2025-08-02 10:07:06 -04:00
Sebastien Castiel
378a369c8f Update .gitignore to exclude test-results directory 2025-08-02 09:46:34 -04:00
Sebastien Castiel
a042ba0ce6 Remove test-results from version control 2025-08-02 09:45:50 -04:00
Sebastien Castiel
9d375bb6be Add Playwright E2E testing setup
- Added Playwright configuration for automated and visual E2E tests
- Updated Next.js configuration to accept localhost:3003 for testing
- Included Playwright as a dev dependency

💘 Generated with Crush
Co-Authored-By: Crush <crush@charm.land>
2025-08-02 09:44:51 -04:00
Sebastien Castiel
a11efc79c1 Fix Prettier issues
All checks were successful
CI / checks (push) Successful in 1m34s
1.16.1
2025-04-20 11:10:30 -04:00
Sebastien Castiel
e63f3aa68f Fix TypeScript issues
Some checks failed
CI / checks (push) Failing after 1m35s
2025-04-19 15:46:37 -04:00
Sebastien Castiel
d77411c21e NPM audit fix 1.16.0 2025-04-19 15:24:23 -04:00
trandall
94c101cf7b Add recurring expense functionality (#263)
* code complete

* Smaller updates

* delete ambitious TODOs (add to PR)

* add transactionality to recurring expense creation

* Remove unnecessary `let`s

* Add default english labels to non-en-US translations

* Accept `es.json` translations

* add condition to ensure links are only modified when applicable
2025-04-19 15:23:23 -04:00
Yuvaraj Sai
2bced00f82 PWA: add multiple custom size transparent PNGs (#271)
* add id property to manifest for identity of PWA

* add multiple sizes high quality pngs with transparent background to support multiple sizes

* delete unused png
2025-04-19 15:19:00 -04:00
6543
233b338bc5 Docker compose: allow to build container and use internal network (#320)
* docker compose: allow to build container

* docker compose: use interanl network
2025-04-19 15:17:59 -04:00
Daniel Thiem
728e072376 Add computed shares per expense to fix #127 (#269)
* Added computed expenses per balance to fix #127

* add missing import that got lost during merge

* if we are in percentage mode or amount mode, the shares have to be multiplied by 100
2025-04-19 15:16:37 -04:00
Scott Hardy
9fec8f9eaa Fix typos in i18n keys (#270) 2025-04-19 15:11:34 -04:00
Oleg Bonar
6346fc8ec5 Remove unnecessary interpolation (?) dollar signs (#319) 2025-04-19 15:10:49 -04:00
Pavle
1c83ebd6f9 Use exec in container entryptoint to replace shell (#326)
This will replace the `sh` process from the container entrypoint with the node process as PID 1, to properly handle SIGTERM signals and gracefully shut down the container.

Currently, `sh` will intercept any signals and not forward them to node, leaving the container in the terminating state before docker force kills it after the 10s grace period. This means that db connections won't be closed and that requests will get interrupted during shutdown.
2025-04-19 15:07:11 -04:00
Peter Smit
a65c3c9dfe Add Dutch translation (#324)
* Add nl-NL locale

* Fix issue raised in pull request #319

* Update

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2025-04-19 15:06:36 -04:00
Günther Eberl
86c084da6f Fix typos in de-DE translation (Fixes #321) (#322) 2025-04-19 15:01:39 -04:00
Thorsten Herfurtner
03712f1503 Fix typo in translation files (#318)
* fix: typo in "lastYear" across multiple language files

* fix: typo in chatGPT prompt
2025-04-19 15:01:07 -04:00
Lorenz Leutgeb
ffbcb6b74d Add expense category 'Life/Donation' (#315)
* Add expense category 'Life/Donation'

* Fix category name in migration

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2025-04-19 15:00:03 -04:00
Paweł Kotiuk
0a16a4ad38 Fixes in polish translation (#285) 2025-04-19 14:46:41 -04:00
Sebastien Castiel
75747157f0 Add Brazilian Portuguese locale in menu 2025-04-19 14:27:14 -04:00
evertonluiz
2c4b4f1594 Add Brazilian Portuguese translation (#308)
Inclusion of the message translation file in Brazilian Portuguese (pt-BR), translated from the original language (en).
2025-04-19 14:26:51 -04:00
Allen
2fda3e453c Ensure the exported data is sorted by the expense date (Fixes #305) (#306) 2025-04-19 14:22:16 -04:00
Marc
c14c854a79 Fix typo in German translation (#303)
fix a typo
2025-04-19 14:20:45 -04:00
albanobattistella
0c3368fd35 Fixes in Italian translations (#301) 2025-04-19 14:20:00 -04:00
Sebastien Castiel
92909ce27f Add Turkish locale label 2025-04-19 14:18:53 -04:00
Hasan ÜNAL
ff6c48a0c8 Create tr-TR.json (#296)
* Create tr-TR.json

* Update tr-TR.json
2025-04-19 14:18:09 -04:00
Yuvaraj Sai
6c5c9d5bed Feat: Add export to CSV support (#292)
* install json2csv package

* add necessary labels

* add support convert the JSON to redable CSV format and export

* add a popover to export btton and provide options for exporting to JSON and CSV

* Use a DropdownMenu

* Translations

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2025-04-19 14:11:38 -04:00
Yuvaraj Sai
f9307fd22d Fix the amount validation while creating an expense (#291) 2025-04-19 13:55:24 -04:00
Sebastien Castiel
9302a32f4c Fix destructive color in dark mode (Fixes #268) 1.15.0 2024-12-07 12:14:08 -05:00
Sebastien Castiel
98e2345bb9 Fix group export when name contains non-ASCII characters 2024-12-07 12:03:32 -05:00
Sébastien Beaury
5732f78e80 Fix UTC timezone used in activity tracker (#265) 2024-12-07 11:55:02 -05:00
Yuvaraj Sai
72ad0a4c90 feat(expense-list): Display the attachment count only when the expense includes attachments (#267)
* feat(expense-list): Display the attachment count only when the expense includes attachments

* handle attachments - singular & plural

* move documents count between amount and date

* Remove label

* Use document count only instead of whole document list

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2024-12-07 11:53:14 -05:00
Sebastien Castiel
2c973f976f Put locale labels outside of translations 2024-12-07 11:37:39 -05:00
icarusxxy
5374d9e9c7 [Translation] Add Traditional Chinese (zh-TW) (#260)
* Add zh-TW translation file

* Add zh-TW to other translations

Co-authored-by: Yutung Chung <yutung.chung@d8ai.com>
2024-12-07 11:36:48 -05:00
Sebastian Goscinski
5111f3574f Feature: Default currency symbol (#259)
* Added a env parameter to define a default currency symbol

* Fixed prettier formatting
2024-12-07 11:07:54 -05:00
Sebastien Castiel
4db788680e Use tRPC for recent groups page (#253)
* Use tRPC for recent groups page

* Use tRPC for adding group by URL

* Use tRPC for saving visited group

* Group context
2024-10-20 17:50:52 -04:00
Sebastien Castiel
39c1a2ffc6 Fix languages in Romanian translation 1.14.1 2024-10-20 11:51:04 -04:00
stefansn
f5154393e2 Add Romanian translations (#248)
* Add Romanian translations

Create ro.json.

* Add ro option.

Add ro option.

* Update ro.json

* Prettier

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
1.14.0
2024-10-19 23:10:58 -04:00
Marco Sciuto
e9d583113a Update it-IT.json (#245) 2024-10-19 23:09:07 -04:00
Sebastien Castiel
21d0c02687 Use tRPC for expense form (#251) 2024-10-19 22:59:47 -04:00
Sebastien Castiel
2281316d58 Use tRPC for group create form (#250) 2024-10-19 21:48:17 -04:00
Sebastien Castiel
210c12b7ef Use tRPC in other group pages (#249)
* Use tRPC in group edition + group layout

* Use tRPC in group modals

* Use tRPC in group stats

* Use tRPC in group activity
2024-10-19 21:29:53 -04:00
Sebastien Castiel
66e15e419e Add tRPC, use it for group expenses, balances and information page (#246)
* Add tRPC, use it for group expense list

* Use tRPC for balances

* Use tRPC in group information + better loading states
2024-10-19 17:42:11 -04:00
Paweł Kotiuk
727803ea5c [translation] Add Polish language (#243)
* Add polish translation file

* Add polish to other translations
1.13.0
2024-10-14 19:19:59 -04:00
Thorsten Herfurtner
7add7efea2 Fix missing translation for expense title in expense-form when making a reinbursement (#244) 2024-10-14 19:13:10 -04:00
bitgroestl
a7c80f65c3 fix Dockerfile (#206)
Co-authored-by: samuel <samuel@t460.localdomain>
2024-10-14 19:11:50 -04:00