Commit graph

42 commits

Author SHA1 Message Date
9a63c9ed63
Add comprehensive frontend integration tests with Wallaby
This commit implements browser-based integration testing for the Phoenix LiveView
application using Wallaby and ChromeDriver to test the complete user experience
including JavaScript interactions.

## Changes Made

### Testing Infrastructure
- Add Wallaby dependency for browser automation testing
- Configure Chrome driver with headless mode for CI/CD
- Set up Phoenix server integration for test environment
- Enable screenshot capture on test failures

### Integration Tests
- `test/integration/simple_integration_test.exs` - Basic homepage functionality
- `test/integration/map_integration_test.exs` - Map interface and routing tests
- Tests validate page loading, content rendering, and navigation

### CI/CD Integration
- Update GitHub Actions workflow to install ChromeDriver
- Add separate integration test step in CI pipeline
- Configure headless Chrome for automated testing

### Configuration Updates
- Enable Phoenix server in test environment for Wallaby
- Configure Wallaby with proper base URL and screenshot settings
- Initialize Wallaby application in test helper

## Features Tested
-  Homepage loads with APRS content
-  Main page structure renders correctly
-  Route navigation functions properly
-  Basic Phoenix LiveView functionality

## Next Steps
This provides a solid foundation for expanding to test:
- Interactive map controls and JavaScript functionality
- Real-time packet updates via LiveView PubSub
- User authentication flows and form submissions
- Mobile responsive behavior

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 12:21:53 -05:00
863000d6b8
Add Prometheus metrics support to APRS application
- Add telemetry_metrics_prometheus dependency
- Configure Prometheus exporter in telemetry module
- Add metrics endpoint to application endpoint
- Expose /metrics for Prometheus scraping

This enables the application to be monitored by the Prometheus stack.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 11:44:11 -05:00
9270bc1aa5
Complete dialyzer specs and fix all warnings
- Add comprehensive type specs to all functions in Encoding module
- Add missing specs to private functions in EncodingUtils
- Fix compilation warnings (unused variables, deprecated Logger.warn)
- Fix dialyzer warnings about unreachable code and implicit nil returns
- Remove unused do_migrate/1 function
- Remove last references to erlc_paths and gleeunit dependency

All dialyzer specs now pass without warnings.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 11:13:14 -05:00
1f4aaf2a80
Migrate background job processing from Oban to Exq
- Replace Oban dependency with Exq for Redis-based background jobs
- Update PacketCleanupWorker to use Exq's perform/1 signature
- Add CleanupScheduler GenServer for periodic job scheduling
- Configure Exq with Redis connection and queue settings
- Update tests to work with Exq job format
- Maintain 6-hour packet cleanup schedule functionality

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 18:39:50 -05:00
194ff0006f
Add Redis PubSub support for distributed clustering
Configures Phoenix.PubSub.Redis adapter when clustering is enabled
and REDIS_URL environment variable is set. This allows PubSub
messages to be shared across Elixir nodes in a distributed
deployment, enabling proper real-time updates in multi-node setups.

- Add phoenix_pubsub_redis dependency (~> 3.0)
- Configure Redis adapter in runtime.exs for production
- Set pool size to 10 for better performance
- Include node name in Redis configuration

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 10:05:41 -05:00
00a8f996f4
Add Gleam language integration to Elixir project
- Rename Gleam module from encoding_simple to encoding
- Move Gleam files from src/aprs/ to src/aprsme/ to match project namespace
- Create custom Mix task for Gleam compilation (lib/mix/tasks/gleam_compile.ex)
- Update EncodingUtils to wrap Gleam implementation instead of pure Elixir
- Add Gleam dependencies to mix.exs and configure build paths
- Update Mix aliases to include Gleam compilation in test and compile tasks
- Add Gleam support to GitHub Actions CI workflow with caching
- Add GLEAM_INTEGRATION.md documentation
- All 357 tests passing with Gleam integration

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 13:58:21 -05:00
8d5bfe127e
add email 2025-07-18 10:15:09 -05:00
46340e008a
update deps 2025-07-16 08:20:20 -05:00
052e131400
Add URL updating and restoration for map state (zoom/pan)
Features implemented:
- Parse URL parameters on mount (lat, lng, z)
- Update URL when map moves or zooms
- Restore map state from URL parameters
- Handle URL changes via handle_params
- Validate and clamp coordinate values

URL format: /?lat=40.7128&lng=-74.0060&z=12

Benefits:
- Shareable map links with exact position
- Browser back/forward navigation support
- Bookmarkable map locations
- Deep linking to specific map views

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-09 09:23:54 -05:00
9053f0840a
add more i18n testing and fix error page and dashboard 2025-07-08 12:16:00 -05:00
711d92ebb6
performance improvements 2025-07-08 10:03:52 -05:00
6749f41137
built in error tracking 2025-07-07 11:06:22 -05:00
2543617f16
add sentry 2025-07-07 09:52:02 -05:00
f47b3d9f09
add decoded path and other ssids 2025-07-05 14:02:45 -05:00
172da7d393
upgrade more with modern phoenix 2025-07-05 08:04:06 -05:00
ed4090564c
update genstage 2025-07-03 14:03:14 -05:00
c8ee465015
weather charts 2025-07-03 11:29:01 -05:00
0beb278371
add packet batcher 2025-06-24 15:06:09 -05:00
ce7c50caa1
refactor to use external parser 2025-06-24 14:22:09 -05:00
7d4937515e
update deps 2025-06-24 11:17:36 -05:00
a48b2edcb3
add device identifier 2025-06-23 14:19:04 -05:00
6384aa80e4
update to phoenix rc 2025-06-23 12:24:53 -05:00
d6ac5cccfc
fixes 2025-06-21 12:26:43 -05:00
d98388895b
add livedashboard 2025-06-19 10:03:56 -05:00
e9002426a7
tests pass 2025-06-19 09:40:24 -05:00
13a3f2e24f
updates 2025-06-17 10:34:57 -05:00
95409d3e59
add posgis fixes 2025-06-16 10:08:22 -05:00
c0ab108b4d update deps and gettext 2025-06-13 09:55:58 -05:00
ff9eb9c614 update everything 2025-01-22 12:12:39 -06:00
bf065aa4e8 update elixir and deps 2025-01-22 12:04:08 -06:00
bbe8f1b420 update deps 2024-01-14 10:51:33 -06:00
2a45b071c1 update the rest of things 2023-12-17 12:13:49 -06:00
e240954b25 update deps 2023-12-17 12:08:45 -06:00
f654d43aa7 update deps 2023-02-02 11:19:49 -06:00
c750d5da17 more parsing progress on compressed positions 2023-02-01 13:34:05 -06:00
a86e90b034 more tests for the parser 2023-01-31 15:32:13 -06:00
4273ff6b2b add coveralls 2023-01-31 13:49:31 -06:00
246cb43244 initial packets working 2023-01-31 13:08:17 -06:00
7b874d9afa add auth 2023-01-29 13:29:25 -06:00
ed014503e6 add github ci 2023-01-26 13:50:37 -06:00
182f3e9cb2 add aprs-is stuff 2023-01-26 13:38:37 -06:00
d40567dfeb initial 2023-01-26 13:20:23 -06:00