first commit

This commit is contained in:
Mateusz Gruszczyński
2026-03-13 15:17:32 +01:00
commit 986ffb200a
91 changed files with 4423 additions and 0 deletions

40
tests/test_main.py Normal file
View File

@@ -0,0 +1,40 @@
from datetime import date
from app.extensions import db
from app.models import Expense, User
def test_dashboard_and_analytics(logged_user, app):
with app.app_context():
user = User.query.filter_by(email='user@test.com').first()
db.session.add(Expense(user_id=user.id, title='Fuel', amount=100, currency='PLN', purchase_date=date(2026, 2, 5), payment_method='card'))
db.session.add(Expense(user_id=user.id, title='Fuel', amount=50, currency='PLN', purchase_date=date(2026, 3, 5), payment_method='card'))
db.session.commit()
response = logged_user.get('/dashboard?year=2026&month=3')
assert response.status_code == 200
api = logged_user.get('/analytics/data?year=2026')
assert api.status_code == 200
data = api.get_json()
assert any(item['month'] == 2 for item in data['yearly_totals'])
assert 'category_totals' in data
def test_preferences_language_switch_and_statistics(logged_user, app):
response = logged_user.post('/preferences', data={'language': 'en', 'theme': 'dark', 'report_frequency': 'monthly', 'default_currency': 'EUR'}, follow_redirects=True)
assert response.status_code == 200
stats = logged_user.get('/statistics?year=2026')
assert stats.status_code == 200
with app.app_context():
user = User.query.filter_by(email='user@test.com').first()
assert user.language == 'en'
assert user.theme == 'dark'
assert user.default_currency == 'EUR'
def test_extended_statistics_payload(logged_user, app):
response = logged_user.get('/analytics/data?year=2026&start_year=2024&end_year=2026')
assert response.status_code == 200
data = response.get_json()
assert 'overview' in data
assert 'comparison' in data
assert 'range_totals' in data