Files
nvm-auto-use.fish/tests/unit/test_cache.fish
Ismo Vuorinen 5b680f06ac feat: refactor plugin architecture, enhance linting, CI & tooling
- Major refactor of core Fish functions for modularity, caching, and error handling
- Improved `.editorconfig` and Makefile for stricter formatting and linting standards
- Expanded linting support: added EditorConfig checks, auto-install for missing tools, and Makefile targets
- Enhanced CI workflow with clearer permissions and job steps in GitHub Actions
- Updated documentation in `README.md` and `CLAUDE.md` to reflect new features, advanced developer tools, and contribution guidelines
- Improved Node.js version manager detection, switching, and installation logic
- Added/updated utility functions for configuration, silent mode, notifications, and version extraction
- Various bug fixes, code quality improvements, and expanded test coverage
2025-07-16 15:12:14 +03:00

99 lines
2.4 KiB
Fish
Executable File

#!/usr/bin/env fish
# Unit tests for nvm_cache.fish
source tests/test_runner.fish
function test_cache_basic_operations
echo "Testing basic cache operations..."
# Test set and get
nvm_cache set test_key test_value
set -l result (nvm_cache get "test_key")
assert_equals "$result" test_value "Cache set and get works"
# Test delete
nvm_cache delete test_key
nvm_cache get test_key
set -l status_code $status
test $status_code -ne 0
and echo "✅ Cache delete works"
or echo "❌ Cache delete failed"
return 0
end
function test_cache_ttl
echo "Testing cache TTL..."
# Set with short TTL
nvm_cache set ttl_key ttl_value
# Should exist immediately
set -l result (nvm_cache get "ttl_key" 10)
assert_equals "$result" ttl_value "Cache value exists within TTL"
# Mock expired cache by setting TTL to 0
set -l result (nvm_cache get "ttl_key" 0)
set -l status_code $status
test $status_code -ne 0
and echo "✅ Cache TTL expiration works"
or echo "❌ Cache TTL expiration failed"
return 0
end
function test_cache_stats
echo "Testing cache stats..."
# Clear cache first
nvm_cache clear
# Add some items
nvm_cache set stats_key1 value1
nvm_cache set stats_key2 value2
# Get stats
set -l stats (nvm_cache stats)
assert_contains "$stats" "Cache files: 2" "Cache stats shows correct file count"
return 0
end
function test_cache_key_generation
echo "Testing cache key generation..."
# Test directory-based key
set -l key1 (_nvm_cache_key "test_file.txt")
set -l key2 (_nvm_cache_key "test_file.txt")
assert_equals "$key1" "$key2" "Same file generates same cache key"
# Test different files generate different keys
set -l key3 (_nvm_cache_key "different_file.txt")
assert_not_equals "$key1" "$key3" "Different files generate different cache keys"
return 0
end
function main
setup_test_env
set -l failed 0
test_cache_basic_operations; or set failed (math "$failed + 1")
test_cache_ttl; or set failed (math "$failed + 1")
test_cache_stats; or set failed (math "$failed + 1")
test_cache_key_generation; or set failed (math "$failed + 1")
cleanup_test_env
if test $failed -eq 0
echo "🎉 All cache tests passed!"
return 0
else
echo "💥 $failed cache test(s) failed"
return 1
end
end
main