feat: seletor de linhas por pagina e paginacao numerada na listagem de clientes
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
5a3c4ac092
commit
9ce6bcdcad
@@ -186,10 +186,38 @@ def test_listar_clientes_pagina_com_controles_de_paginacao(monkeypatch):
|
||||
|
||||
resposta = client.get("/clientes?pagina=2&por_pagina=100")
|
||||
assert resposta.status_code == 200
|
||||
assert "Página 2 de 3" in resposta.text
|
||||
assert "250 clientes" in resposta.text
|
||||
assert "Anterior" in resposta.text
|
||||
assert "Próxima" in resposta.text
|
||||
assert "Exibindo 101 a 200 de 250 clientes" in resposta.text
|
||||
assert "pagina=1&ordenar_por=razao&direcao=asc&por_pagina=100" in resposta.text
|
||||
assert "pagina=3&ordenar_por=razao&direcao=asc&por_pagina=100" in resposta.text
|
||||
|
||||
|
||||
def test_listar_clientes_footer_com_selecao_de_por_pagina(monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
router_clientes.db_clientes,
|
||||
"listar_clientes",
|
||||
lambda busca=None, limite=100, offset=0, ordenar_por="razao", direcao="asc": [
|
||||
{"ID": i, "CODIGO": f"{i:06d}", "RAZAO": f"Cliente {i}", "FANTASIA": f"C{i}", "CNPJ": "1"}
|
||||
for i in range(1, 16)
|
||||
],
|
||||
)
|
||||
monkeypatch.setattr(router_clientes.db_clientes, "contar_clientes", lambda busca=None, ordenar_por="razao": 98)
|
||||
|
||||
resposta = client.get("/clientes?pagina=1")
|
||||
assert resposta.status_code == 200
|
||||
assert 'value="15" selected' in resposta.text
|
||||
assert "Exibindo 1 a 15 de 98 clientes" in resposta.text
|
||||
# 98 / 15 = 7 paginas -> <=7, sem reticencias, todas visiveis
|
||||
assert "pagina=7&ordenar_por=razao&direcao=asc&por_pagina=15" in resposta.text
|
||||
|
||||
|
||||
def test_listar_clientes_paginacao_com_reticencias_quando_muitas_paginas(monkeypatch):
|
||||
monkeypatch.setattr(router_clientes.db_clientes, "listar_clientes", lambda **kwargs: [])
|
||||
monkeypatch.setattr(router_clientes.db_clientes, "contar_clientes", lambda busca=None, ordenar_por="razao": 500)
|
||||
|
||||
# 500 / 5 = 100 paginas, pedindo a pagina 10 (no meio) -> tem reticencias
|
||||
resposta = client.get("/clientes?pagina=10&por_pagina=5")
|
||||
assert resposta.status_code == 200
|
||||
assert "…" in resposta.text
|
||||
|
||||
|
||||
def test_listar_clientes_ordenar_por_invalido_cai_no_padrao(monkeypatch):
|
||||
|
||||
Reference in New Issue
Block a user