Commit Graph
5 Commits
Author SHA1 Message Date
john-okeefe b700f64624 fix: remove redundant defer setup.Close() calls to enable library cleanup
Problem:
Tests were calling `defer setup.Close()` which was interfering with the
library cleanup added in the previous commit. The execution order was:

1. setupTestServer() registers t.Cleanup() with library deletion code
2. Test calls defer setup.Close()
3. Test finishes:
   - defer setup.Close() runs FIRST → closes DB pool
   - t.Cleanup() runs SECOND → tries to delete libraries but DB is closed!

This prevented "Job Status Test Library" and other test libraries from
being cleaned up, leaving residual data in the database after tests.

Root Cause:
The setupTestServer() function already handles cleanup via t.Cleanup(),
which calls setup.Close() at the end. The explicit defer calls were
redundant and caused the database pool to close before library cleanup
could execute.

Solution:
Removed all 17 occurrences of `defer setup.Close()` from test files:
- worker_test.go: 4 tests
- jobs_test.go: 7 tests
- scan_settings_integration_test.go: 3 tests
- library_browse_test.go: 1 test
- goroutine_leak_test.go: 1 test
- fsnotify_integration_test.go: 1 test

Now setupTestServer()'s t.Cleanup() function properly:
1. Deletes "test" libraries (while DB is still connected)
2. Then calls setup.Close() to close connections

This ensures all test libraries are cleaned up, leaving a clean database
after `make test-integration` completes.

Files changed:
- cmd/server/tests/worker_test.go: Removed 4 defer calls
- cmd/server/tests/jobs_test.go: Removed 7 defer calls
- cmd/server/tests/scan_settings_integration_test.go: Removed 3 defer calls
- cmd/server/tests/library_browse_test.go: Removed 1 defer call
- cmd/server/tests/goroutine_leak_test.go: Removed 1 defer call
- cmd/server/tests/fsnotify_integration_test.go: Removed 1 defer call
2026-03-24 20:55:37 -04:00
john-okeefe ef8fedeed7 test(worker): fix set folders job test to properly register folder
The TestWorker_SetFoldersJob test was submitting a set folders job without
first registering the folder with the library through the HTTP API. This caused
the job to fail because the folder wasn't properly tracked.

Changes:
- Call addFolderToLibrary before submitting the set folders job
- Ensures the temporary test directory is properly registered with the library
- Aligns test behavior with actual API workflow where folders must be added first
2026-03-06 11:09:45 -05:00
john-okeefe c5c7f50aac fix(tests): update worker tests for API changes and error handling
- Update ListMediaItems calls to include required Limit and Offset parameters
- Change Enqueue() to EnqueueJob() to match updated worker API
- Add error assertions for job enqueue operations with descriptive messages
- Ensure all database queries use proper pagination parameters

This ensures tests properly validate error conditions and use the latest worker service API.
2026-03-06 10:48:33 -05:00
john-okeefe 4d8e3e5358 test: improve test infrastructure and fix integration tests
- Add folder to library before scanning in fsnotify integration test
- Update API endpoint paths from /items to /media-items
- Refactor test server setup to support WebSocket hijacking
- Add JobsHandler to test server configuration
- Implement proper job status polling instead of fixed delays
- Consolidate addFolderToLibrary helper into test_helpers.go
- Remove duplicate helper function from media_item_isbn_test.go
- Add error logging for search test failures
- Improve test robustness with better nil handling and type assertions
- Update worker test to use EnqueueJob and poll for completion
- Add global worker instance reset in test cleanup
- Fix media_scanner_test to initialize folders before testing
2026-03-06 01:52:19 -05:00
john-okeefe fe7eb5e308 Add tests for Jobs API and Worker job processing
- Add jobs_test.go with tests for job creation and status retrieval
- Add worker_test.go with tests for job processing
2026-03-05 16:28:45 -05:00