46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
from datetime import date, datetime, timedelta
|
|
|
|
from app.extensions import db
|
|
from app.models.company import Company
|
|
from app.models.invoice import Invoice, InvoiceStatus, InvoiceType
|
|
|
|
|
|
def test_dashboard_recent_invoices_uses_10_items_per_page(auth_client, app):
|
|
with app.app_context():
|
|
company = Company.query.first()
|
|
now = datetime.utcnow()
|
|
for index in range(12):
|
|
invoice = Invoice(
|
|
company_id=company.id,
|
|
ksef_number=f'KSEF-DASH-{index}',
|
|
invoice_number=f'FV/DASH/{index}',
|
|
contractor_name=f'Kontrahent {index}',
|
|
issue_date=date(2026, 3, 12) - timedelta(days=index),
|
|
received_date=date(2026, 3, 12) - timedelta(days=index),
|
|
net_amount=100 + index,
|
|
vat_amount=23,
|
|
gross_amount=123 + index,
|
|
invoice_type=InvoiceType.PURCHASE,
|
|
status=InvoiceStatus.NEW,
|
|
source='ksef',
|
|
created_at=now - timedelta(minutes=index),
|
|
)
|
|
db.session.add(invoice)
|
|
db.session.commit()
|
|
|
|
response_page_1 = auth_client.get('/')
|
|
assert response_page_1.status_code == 200
|
|
assert response_page_1.data.count(b'btn btn-outline-primary">Szczeg') == 10
|
|
assert b'FV/DASH/0' in response_page_1.data
|
|
assert b'FV/DASH/9' in response_page_1.data
|
|
assert b'FV/DASH/10' not in response_page_1.data
|
|
assert b'FV/DASH/11' not in response_page_1.data
|
|
assert b'dashboard_page=2' in response_page_1.data
|
|
|
|
response_page_2 = auth_client.get('/?dashboard_page=2')
|
|
assert response_page_2.status_code == 200
|
|
assert response_page_2.data.count(b'btn btn-outline-primary">Szczeg') == 2
|
|
assert b'FV/DASH/10' in response_page_2.data
|
|
assert b'FV/DASH/11' in response_page_2.data
|
|
assert b'FV/DASH/9' not in response_page_2.data
|