fix: harden week-two ordering, artwork and operations

This commit is contained in:
Cauê Faleiros
2026-09-23 10:40:18 -03:00
parent ccc25a2d5d
commit 24013458c9
43 changed files with 1064 additions and 228 deletions

View File

@@ -0,0 +1,60 @@
"""The 101st pending quote and older approved quotes remain reachable on the board."""
from uuid import uuid4
from urllib.parse import urlencode
from psycopg.types.json import Jsonb
from app.core import db
from tests.smoke_test import Client
def run():
owner = uuid4()
pending_ids = [uuid4() for _ in range(105)]
approved_ids = [uuid4() for _ in range(22)]
created = pending_ids + approved_ids
draft = {'customer': {'mail': 'pagination-fixture@example.test'},
'items': [], 'freight': {'service': 'pickup'}}
try:
with db.connect() as c:
for uid in pending_ids:
c.execute('''INSERT INTO dtf_local.quotes
(id,owner,request_key,request_hash,draft,created_at)
VALUES(%s,%s,%s,%s,%s,now()+interval '1 hour')''',
(uid, owner, uuid4(), 'pagination-fixture', Jsonb(draft)))
for uid in approved_ids:
c.execute('''INSERT INTO dtf_local.quotes
(id,owner,request_key,request_hash,draft,approved,approved_at,created_at)
VALUES(%s,%s,%s,%s,%s,%s,now(),now()+interval '1 hour')''',
(uid, owner, uuid4(), 'pagination-fixture', Jsonb(draft),
Jsonb({'items': [], 'total_cents': 0})))
client = Client()
board = client.call('/operator/board', operator=True)
assert board['pending_total'] >= 105
assert board['approved_total'] >= 22
for kind, fixture_ids in [('pending', pending_ids), ('approved', approved_ids)]:
first = [q for q in board['quotes'] if (q['approved'] is None) == (kind == 'pending')]
seen = {q['id'] for q in first}
assert len(first) == (100 if kind == 'pending' else 20)
last = first[-1]
for _ in range(5):
path = '/operator/quotes?' + urlencode({
'kind': kind, 'limit': 50,
'before_created_at': last['created_at'], 'before_id': last['id']})
page = client.call(path, operator=True)
assert page['quotes'], 'An older quote page disappeared'
assert not seen.intersection(q['id'] for q in page['quotes']), 'Quote page repeated rows'
seen.update(q['id'] for q in page['quotes'])
if set(map(str, fixture_ids)) <= seen:
break
last = page['quotes'][-1]
assert set(map(str, fixture_ids)) <= seen, f'{kind} quotes were hidden by the board limit'
print('PASS: 105 pending and 22 approved quotes remain reachable across board pages')
finally:
with db.connect() as c:
c.execute('DELETE FROM dtf_local.quotes WHERE id=ANY(%s)', (created,))
if __name__ == '__main__':
run()