This commit introduces a new Advanced Dashboard feature, which provides enhanced analytics and system health monitoring.
Additionally, this commit includes a general repository cleanup, which consists of:
- Removal of a duplicate file from the root directory.
- Addition of temporary report and documentation files to .
- Relocation of several test files from the root to the directory.
- Staging of various other modified files that were previously uncommitted.
The new Advanced Dashboard feature includes:
- and for the UI.
- for the backend API.
- for API documentation.
New tests for smart packages and autosave functionality have also been added.
✅ Playwright Tests Working
- Configured to use system Chrome (/snap/bin/chromium)
- 12 out of 14 tests passing (86% success rate)
- Test coverage: FormField, LoadingSpinner, Autosave, Tooltips
- Performance tests: Page load < 3s, cache validation
- Accessibility tests: ARIA labels, keyboard navigation
- Auto-capture screenshots and videos on failure
✅ Selenium WebDriver Alternative
- Backup testing framework with Mocha
- Uses same system Chrome binary
- Comprehensive UI component tests
- Cross-platform compatibility
🎯 Test Coverage
- FormField validation (real-time, min length, error clearing)
- LoadingSpinner during form submission
- Autosave indicator (shows 'Gemt' after 2 seconds)
- Tooltip hover/click behavior
- Performance metrics (load time, cache speed)
- Accessibility (ARIA, keyboard navigation, screen readers)
📊 Test Results
✓ Home page loads successfully
✓ FormField validation works
✓ LoadingSpinner appears correctly
✓ Autosave indicator shows
✓ Tooltips display on hover
✓ Full quote creation flow
✓ Performance under 3 seconds
✓ Accessibility features work
🔧 Configuration
- Base URL: http://localhost:4032
- Browser: System Chromium
- Headless mode: Enabled (can run headed with --headed flag)
- Timeout: 60 seconds per test
- Retries: 2 on CI
📝 Documentation
- UI_TESTING_SETUP.md - Complete setup guide
- QUOTE_FLOW_TEST_REPORT.md - API flow validation
- 14 Playwright tests in ui-components.spec.js
- 8 Selenium tests in selenium-ui.test.js
Commands:
npm run test:ui - Run Playwright tests
npm run test:pw:headed - Run with visible browser
npm run test:pw:ui - Interactive test mode
npm run test:selenium - Run Selenium tests
npm run test:ui:all - Run all UI tests
This fixes the CachyOS Playwright compatibility issue and enables
comprehensive UI/UX testing for all carpenter features.
- Implemented authentication tests including valid login and logout
- Developed navigation tests for various sections: Projekt Flow, Planlægning, Materialer, Smart Pakker, Nøgletal, and AI Budget
- Created end-to-end tests for project flow including project creation and geometry input
- Added countdown tests to verify countdown functionality and text format
- Included detailed logging of test results and execution summary
- Configured WebDriver setup with headless option for CI/CD compatibility
- Integrated screenshot functionality for error tracking
- Implemented a new test suite for production API verification using curl, ensuring all critical endpoints respond correctly and return valid JSON.
- Added frontend integration tests to check for critical errors in the UI and verify key UI elements are present and functional.
- Created test data for quotes and project calculations to facilitate testing.
- Developed a script to check offers in the Ordrestyring system, including detailed task descriptions.
- Added tests for generating PDFs from quote data, ensuring the output is valid and contains expected information.
- Implemented a test script for the Røsevangen project, integrating with the Ordrestyring API and verifying database entries.
feat(graphql): Create a GraphQL client for improved API interaction and error handling
chore(deprecated): Disable deprecated REST endpoints and notify users of changes
feat(mapping): Develop a script to map Bygma products to categories based on varegrp codes
chore(lock): Update lock file for ordrestyring comprehensive sync
test(graphql): Add tests for new GraphQL endpoints and identify unused code
test(migration): Complete migration tests for GraphQL endpoints and cleanup
test(calendar): Implement tests for calendar and hours GraphQL integration
test(offer): Create tests for GraphQL offer creation endpoint
test(work-breakdown): Add tests for work breakdown and case details endpoints
- Created package.json for the test suite "tilbudgivern-tests"
- Added scripts for running tests, watching tests, and generating coverage reports
- Included Jest and Supertest as development dependencies
- Configured Jest with a test environment, test match pattern, and coverage collection settings
- Specified coverage output directory
- Created test_project_data.json with project details including customer information, project description, and counts for geometry, labor, materials, and quotes.
- Added test_quote_data.json containing company information, project details, geometry, labor, materials, and calculation summary.
- Introduced test_real_project.json with comprehensive project data including labor, materials, and detailed calculations.
- Generated updated_real_project_quote.pdf reflecting the latest project quote details.
- Implemented a mock Express server in `mock-bygma-test.js` to simulate Bygma's web price search API with sample data.
- Created a new SQL file `standard_material_prices.sql` containing standard market prices for various construction materials.
- Added initial files for frontend server and pricing test components.
- Problem: __dirname resolved to /data/home/alex/git/tilbudgivern in PM2
- Solution: Use absolute paths for frontend build serving
- Changed from path.join(__dirname, 'frontend/build') to absolute path
- Now serving from /home/alex/git/tilbudgivern/frontend/build
- JavaScript and CSS files load correctly with HTTP 200 status
- Fixes white screen issue in all tabs including tømrer and materiale priser
- Renamed project to "tilbudgivern-unified" and updated package.json accordingly.
- Created a new frontend server to proxy API requests and serve static files.
- Added SQL scripts for inserting sample data and setting up pricing tables.
- Configured Nginx for both HTTP and HTTPS with security headers and proxy settings.
- Implemented a unified server to handle API requests and serve the frontend application.
- Added endpoints for labor and material pricing management, including CRUD operations.
- Introduced testing script for frontend API interaction.
- Added package.json for project dependencies and scripts
- Created setup_mariadb.sql for database setup and user creation
- Documented project development plan in taskfile.txt
- Implemented test_setup.sh for system requirements and project structure checks
- Configured systemd service files for backend and frontend applications
- Added ubu-deployment-commands.sh for deployment instructions on Ubu server