Quality, live

Every time one of my test suites finishes, the CI publishes its result here. Nobody edits this page by hand: if something fails, it shows.

Portfolio · e2e

Passing

Playwright against davidameth.dev in production, on desktop (1440 px) and phone (375 px): pages, links, SEO and structured data, the files for AI models (llms.txt), Spanish/English parity, theme, and WCAG 2.1 AA accessibility with axe.

Latest run: · c4171a8

passed
143
failed
0
skipped
39
duration
2 min 52 s

passedfaileddidn't runstriped: no detail, only the result is left

See all 182 tests
accessibility.spec.ts32 passed
  • passed: / has no serious WCAG 2.1 AA violations (light) desktop 2.5 s
  • passed: / has no serious WCAG 2.1 AA violations (dark) desktop 2.4 s
  • passed: /en/ has no serious WCAG 2.1 AA violations (light) desktop 2.4 s
  • passed: /en/ has no serious WCAG 2.1 AA violations (dark) desktop 2.4 s
  • passed: /experiencia/ has no serious WCAG 2.1 AA violations (light) desktop 2 s
  • passed: /experiencia/ has no serious WCAG 2.1 AA violations (dark) desktop 2 s
  • passed: /en/experience/ has no serious WCAG 2.1 AA violations (light) desktop 1.9 s
  • passed: /en/experience/ has no serious WCAG 2.1 AA violations (dark) desktop 2 s
  • passed: /proyectos/torneo/ has no serious WCAG 2.1 AA violations (light) desktop 3.4 s
  • passed: /proyectos/torneo/ has no serious WCAG 2.1 AA violations (dark) desktop 3.6 s
  • passed: /proyectos/biodiversidad/ has no serious WCAG 2.1 AA violations (light) desktop 2.5 s
  • passed: /proyectos/biodiversidad/ has no serious WCAG 2.1 AA violations (dark) desktop 2.5 s
  • passed: /proyectos/api-torneo/ has no serious WCAG 2.1 AA violations (light) desktop 3 s
  • passed: /proyectos/api-torneo/ has no serious WCAG 2.1 AA violations (dark) desktop 3 s
  • passed: /proyectos/forbesverse/ has no serious WCAG 2.1 AA violations (light) desktop 3 s
  • passed: /proyectos/forbesverse/ has no serious WCAG 2.1 AA violations (dark) desktop 3.1 s
  • passed: / has no serious WCAG 2.1 AA violations (light) mobile 2.5 s
  • passed: / has no serious WCAG 2.1 AA violations (dark) mobile 2.3 s
  • passed: /en/ has no serious WCAG 2.1 AA violations (light) mobile 2.5 s
  • passed: /en/ has no serious WCAG 2.1 AA violations (dark) mobile 2.3 s
  • passed: /experiencia/ has no serious WCAG 2.1 AA violations (light) mobile 2 s
  • passed: /experiencia/ has no serious WCAG 2.1 AA violations (dark) mobile 2 s
  • passed: /en/experience/ has no serious WCAG 2.1 AA violations (light) mobile 1.9 s
  • passed: /en/experience/ has no serious WCAG 2.1 AA violations (dark) mobile 2 s
  • passed: /proyectos/torneo/ has no serious WCAG 2.1 AA violations (light) mobile 3.7 s
  • passed: /proyectos/torneo/ has no serious WCAG 2.1 AA violations (dark) mobile 3.6 s
  • passed: /proyectos/biodiversidad/ has no serious WCAG 2.1 AA violations (light) mobile 2.5 s
  • passed: /proyectos/biodiversidad/ has no serious WCAG 2.1 AA violations (dark) mobile 2.6 s
  • passed: /proyectos/api-torneo/ has no serious WCAG 2.1 AA violations (light) mobile 3 s
  • passed: /proyectos/api-torneo/ has no serious WCAG 2.1 AA violations (dark) mobile 3.2 s
  • passed: /proyectos/forbesverse/ has no serious WCAG 2.1 AA violations (light) mobile 3.2 s
  • passed: /proyectos/forbesverse/ has no serious WCAG 2.1 AA violations (dark) mobile 3.1 s
copias.spec.ts4 passed · 4 skipped
  • passed: the GitHub profile README carries the site's current data desktop 144 ms
  • passed: the public CV carries the site's current data desktop 171 ms
  • passed: the es FAQ names every employer, client and certifier desktop 2 ms
  • passed: the en FAQ names every employer, client and certifier desktop 2 ms
  • skipped: the GitHub profile README carries the site's current data mobile
  • skipped: the public CV carries the site's current data mobile
  • skipped: the es FAQ names every employer, client and certifier mobile
  • skipped: the en FAQ names every employer, client and certifier mobile
languages.spec.ts12 passed · 6 skipped
  • passed: / and /en/ › have the same sections, projects, jobs and certificates desktop 584 ms
  • passed: / and /en/ › declare each other as translations desktop 597 ms
  • skipped: / and /en/ › have the same sections, projects, jobs and certificates mobile
  • skipped: / and /en/ › declare each other as translations mobile
  • passed: /experiencia/ and /en/experience/ › have the same sections, projects, jobs and certificates desktop 414 ms
  • passed: /experiencia/ and /en/experience/ › declare each other as translations desktop 484 ms
  • skipped: /experiencia/ and /en/experience/ › have the same sections, projects, jobs and certificates mobile
  • skipped: /experiencia/ and /en/experience/ › declare each other as translations mobile
  • passed: each language speaks its own › the renamed client reads «hoy» in Spanish and «now» in English desktop 784 ms
  • passed: each language speaks its own › the language switch leads to the same page in the other language desktop 810 ms
  • skipped: each language speaks its own › the renamed client reads «hoy» in Spanish and «now» in English mobile
  • skipped: each language speaks its own › the language switch leads to the same page in the other language mobile
  • passed: architecture pages, which exist in Spanish only › send an English reader back to the English home desktop 802 ms
  • passed: architecture pages, which exist in Spanish only › send a Spanish reader back to the Spanish home desktop 672 ms
  • passed: architecture pages, which exist in Spanish only › default to the Spanish home for a reader who arrives from outside desktop 403 ms
  • passed: architecture pages, which exist in Spanish only › send an English reader back to the English home mobile 715 ms
  • passed: architecture pages, which exist in Spanish only › send a Spanish reader back to the Spanish home mobile 695 ms
  • passed: architecture pages, which exist in Spanish only › default to the Spanish home for a reader who arrives from outside mobile 459 ms
layout.spec.ts26 passed · 2 skipped
  • passed: the home bar carries the «.d» mark, named for screen readers desktop 511 ms
  • passed: project captures are shown whole, never cropped desktop 604 ms
  • passed: links to the old section names still land on their section desktop 661 ms
  • passed: architecture pages start below the floating bar desktop 665 ms
  • passed: the dark theme survives a reload and a change of page desktop 734 ms
  • passed: a reader who picked night in the previous design keeps it desktop 489 ms
  • passed: the home bar carries the «.d» mark, named for screen readers mobile 555 ms
  • passed: project captures are shown whole, never cropped mobile 565 ms
  • passed: links to the old section names still land on their section mobile 623 ms
  • passed: architecture pages start below the floating bar mobile 688 ms
  • passed: the dark theme survives a reload and a change of page mobile 659 ms
  • passed: a reader who picked night in the previous design keeps it mobile 499 ms
  • passed: the floating bar › stays one short row at every width, with no crowding desktop 3.6 s
  • passed: the floating bar › offers the menu on a phone and the section links on a wide screen desktop 611 ms
  • passed: the floating bar › stays one short row at every width, with no crowding mobile 1.6 s
  • passed: the floating bar › offers the menu on a phone and the section links on a wide screen mobile 509 ms
  • skipped: the phone menu › opens onto its first link and closes with Escape, back to its button desktop
  • skipped: the phone menu › closes when a section is chosen desktop
  • passed: the phone menu › opens onto its first link and closes with Escape, back to its button mobile 1.3 s
  • passed: the phone menu › closes when a section is chosen mobile 1.3 s
  • passed: the first screen › names David in full as the page heading (/) desktop 398 ms
  • passed: the first screen › shows the call to action without scrolling (/) desktop 412 ms
  • passed: the first screen › names David in full as the page heading (/en/) desktop 859 ms
  • passed: the first screen › shows the call to action without scrolling (/en/) desktop 415 ms
  • passed: the first screen › names David in full as the page heading (/) mobile 373 ms
  • passed: the first screen › shows the call to action without scrolling (/) mobile 390 ms
  • passed: the first screen › names David in full as the page heading (/en/) mobile 369 ms
  • passed: the first screen › shows the call to action without scrolling (/en/) mobile 395 ms
links.spec.ts3 passed · 3 skipped
  • passed: every internal link resolves, and every #anchor exists on its page desktop 15.1 s
  • passed: every external link answers desktop 7.3 s
  • passed: the email links open a message to the published address desktop 955 ms
  • skipped: every internal link resolves, and every #anchor exists on its page mobile
  • skipped: every external link answers mobile
  • skipped: the email links open a message to the published address mobile
pages.spec.ts42 passed
  • passed: an unknown address answers 404, not a blank 200 desktop 297 ms
  • passed: retired route /proyectos/ lands on /#proyectos desktop 320 ms
  • passed: retired route /contacto/ lands on /#contacto desktop 350 ms
  • passed: retired route /en/projects/ lands on /en/#projects desktop 562 ms
  • passed: retired route /en/contact/ lands on /en/#contact desktop 333 ms
  • passed: an unknown address answers 404, not a blank 200 mobile 307 ms
  • passed: retired route /proyectos/ lands on /#proyectos mobile 409 ms
  • passed: retired route /contacto/ lands on /#contacto mobile 497 ms
  • passed: retired route /en/projects/ lands on /en/#projects mobile 359 ms
  • passed: retired route /en/contact/ lands on /en/#contact mobile 376 ms
  • passed: page / › loads cleanly, in its own language desktop 1 s
  • passed: page / › never scrolls sideways desktop 366 ms
  • passed: page / › loads cleanly, in its own language mobile 844 ms
  • passed: page / › never scrolls sideways mobile 349 ms
  • passed: page /en/ › loads cleanly, in its own language desktop 916 ms
  • passed: page /en/ › never scrolls sideways desktop 410 ms
  • passed: page /en/ › loads cleanly, in its own language mobile 867 ms
  • passed: page /en/ › never scrolls sideways mobile 351 ms
  • passed: page /experiencia/ › loads cleanly, in its own language desktop 743 ms
  • passed: page /experiencia/ › never scrolls sideways desktop 250 ms
  • passed: page /experiencia/ › loads cleanly, in its own language mobile 834 ms
  • passed: page /experiencia/ › never scrolls sideways mobile 299 ms
  • passed: page /en/experience/ › loads cleanly, in its own language desktop 727 ms
  • passed: page /en/experience/ › never scrolls sideways desktop 254 ms
  • passed: page /en/experience/ › loads cleanly, in its own language mobile 812 ms
  • passed: page /en/experience/ › never scrolls sideways mobile 316 ms
  • passed: page /proyectos/torneo/ › loads cleanly, in its own language desktop 764 ms
  • passed: page /proyectos/torneo/ › never scrolls sideways desktop 397 ms
  • passed: page /proyectos/torneo/ › loads cleanly, in its own language mobile 964 ms
  • passed: page /proyectos/torneo/ › never scrolls sideways mobile 451 ms
  • passed: page /proyectos/biodiversidad/ › loads cleanly, in its own language desktop 821 ms
  • passed: page /proyectos/biodiversidad/ › never scrolls sideways desktop 352 ms
  • passed: page /proyectos/biodiversidad/ › loads cleanly, in its own language mobile 861 ms
  • passed: page /proyectos/biodiversidad/ › never scrolls sideways mobile 412 ms
  • passed: page /proyectos/api-torneo/ › loads cleanly, in its own language desktop 779 ms
  • passed: page /proyectos/api-torneo/ › never scrolls sideways desktop 338 ms
  • passed: page /proyectos/api-torneo/ › loads cleanly, in its own language mobile 853 ms
  • passed: page /proyectos/api-torneo/ › never scrolls sideways mobile 417 ms
  • passed: page /proyectos/forbesverse/ › loads cleanly, in its own language desktop 745 ms
  • passed: page /proyectos/forbesverse/ › never scrolls sideways desktop 339 ms
  • passed: page /proyectos/forbesverse/ › loads cleanly, in its own language mobile 897 ms
  • passed: page /proyectos/forbesverse/ › never scrolls sideways mobile 415 ms
proyectos.spec.ts4 passed · 4 skipped
  • passed: torneo: its live site introduces itself to search and to link previews desktop 234 ms
  • passed: angie-martinez: its live site introduces itself to search and to link previews desktop 217 ms
  • passed: api-torneo: its live site introduces itself to search and to link previews desktop 275 ms
  • passed: scrumgames: its live site introduces itself to search and to link previews desktop 261 ms
  • skipped: torneo: its live site introduces itself to search and to link previews mobile
  • skipped: angie-martinez: its live site introduces itself to search and to link previews mobile
  • skipped: api-torneo: its live site introduces itself to search and to link previews mobile
  • skipped: scrumgames: its live site introduces itself to search and to link previews mobile
seo.spec.ts18 passed · 18 skipped
  • passed: / declares its canonical address and a working social image desktop 675 ms
  • passed: /en/ declares its canonical address and a working social image desktop 615 ms
  • passed: /experiencia/ declares its canonical address and a working social image desktop 456 ms
  • passed: /en/experience/ declares its canonical address and a working social image desktop 383 ms
  • passed: /proyectos/torneo/ declares its canonical address and a working social image desktop 491 ms
  • passed: /proyectos/biodiversidad/ declares its canonical address and a working social image desktop 670 ms
  • passed: /proyectos/api-torneo/ declares its canonical address and a working social image desktop 663 ms
  • passed: the es home describes its author as structured data desktop 689 ms
  • passed: the en home describes its author as structured data desktop 332 ms
  • passed: the sitemap lists exactly the published pages desktop 120 ms
  • passed: /proyectos/forbesverse/ is readable by link and invisible to search desktop 557 ms
  • passed: robots.txt allows crawling and points at the sitemap desktop 68 ms
  • passed: llms.txt introduces the author to language models desktop 75 ms
  • passed: llms.txt links every published page, and llms-full.txt carries every document desktop 68 ms
  • passed: every icon the browser and the home screen ask for exists desktop 659 ms
  • passed: every page has a title of its own desktop 139 ms
  • passed: / marks up the same questions it shows desktop 449 ms
  • passed: /en/ marks up the same questions it shows desktop 502 ms
  • skipped: / declares its canonical address and a working social image mobile
  • skipped: /en/ declares its canonical address and a working social image mobile
  • skipped: /experiencia/ declares its canonical address and a working social image mobile
  • skipped: /en/experience/ declares its canonical address and a working social image mobile
  • skipped: /proyectos/torneo/ declares its canonical address and a working social image mobile
  • skipped: /proyectos/biodiversidad/ declares its canonical address and a working social image mobile
  • skipped: /proyectos/api-torneo/ declares its canonical address and a working social image mobile
  • skipped: the es home describes its author as structured data mobile
  • skipped: the en home describes its author as structured data mobile
  • skipped: the sitemap lists exactly the published pages mobile
  • skipped: /proyectos/forbesverse/ is readable by link and invisible to search mobile
  • skipped: robots.txt allows crawling and points at the sitemap mobile
  • skipped: llms.txt introduces the author to language models mobile
  • skipped: llms.txt links every published page, and llms-full.txt carries every document mobile
  • skipped: every icon the browser and the home screen ask for exists mobile
  • skipped: every page has a title of its own mobile
  • skipped: / marks up the same questions it shows mobile
  • skipped: /en/ marks up the same questions it shows mobile
shortlinks.spec.ts2 passed · 2 skipped
  • passed: short links point where the site's data says desktop 5 ms
  • passed: short links redirect on the live site desktop 99 ms
  • skipped: short links point where the site's data says mobile
  • skipped: short links redirect on the live site mobile

When it runs: Monday, Thursday, and Saturday at 6:00 a.m. (Panama time).

See what it tests

Tournament API

Passing

pytest on the api.davidameth.dev API: unit tests, Hypothesis properties, Schemathesis contract tests, and an oracle against the app's standings table.

Latest run: · 462f33d

passed
100
failed
0
coverage
99.6 %
duration
23 s

passeddidn't run

See all 100 tests
tests/test_api.py46 passed
  • passed: test_equipos_en_orden_de_siembra 10 ms
  • passed: test_un_equipo 5 ms
  • passed: test_jornadas_con_estado_derivado 8 ms
  • passed: test_partido_con_resultado_coherente 5 ms
  • passed: test_la_liga_tiene_21_partidos_y_cada_equipo_juega_6 40 ms
  • passed: test_filtros_combinados 4 ms
  • passed: test_paginacion_recorre_todo_sin_repetir 27 ms
  • passed: test_filtro_sin_resultados_es_lista_vacia_no_404 4 ms
  • passed: test_tabla_historica 5 ms
  • passed: test_tabla_explica_los_empates 5 ms
  • passed: test_simular_suma_a_la_temporada_sin_guardar 15 ms
  • passed: test_simular_desde_cero 5 ms
  • passed: test_simular_rechaza_lo_imposible[resultado0-results.0] 5 ms
  • passed: test_simular_rechaza_lo_imposible[resultado1-results.0.sets] 4 ms
  • passed: test_simular_rechaza_lo_imposible[resultado2-results.0] 4 ms
  • passed: test_simular_rechaza_lo_imposible[resultado3-results.0.home] 4 ms
  • passed: test_simular_rechaza_lo_imposible[resultado4-results.0.extra] 5 ms
  • passed: test_simular_con_equipo_que_no_existe 5 ms
  • passed: test_404_en_formato_rfc_9457[/v1/teams/aguilas] 4 ms
  • passed: test_404_en_formato_rfc_9457[/v1/jornadas/99] 4 ms
  • passed: test_404_en_formato_rfc_9457[/v1/matches/j9-p9] 4 ms
  • passed: test_404_en_formato_rfc_9457[/v1/standings?through_jornada=40] 4 ms
  • passed: test_404_en_formato_rfc_9457[/v1/nada] 4 ms
  • passed: test_parametro_fuera_de_rango 4 ms
  • passed: test_metodo_no_permitido_dice_cuales_si 3 ms
  • passed: test_head_como_get_sin_cuerpo 12 ms
  • passed: test_cuerpo_que_no_es_json 4 ms
  • passed: test_cada_tipo_de_error_esta_documentado 22 ms
  • passed: test_error_inesperado_no_filtra_detalles 5 ms
  • passed: test_etag_y_304 13 ms
  • passed: test_el_etag_cambia_con_la_consulta 8 ms
  • passed: test_request_id_propio_o_generado 11 ms
  • passed: test_las_rutas_cacheables_tambien_respetan_el_request_id[/v1/teams] 4 ms
  • passed: test_las_rutas_cacheables_tambien_respetan_el_request_id[/v1/jornadas] 4 ms
  • passed: test_las_rutas_cacheables_tambien_respetan_el_request_id[/v1/matches] 5 ms
  • passed: test_las_rutas_cacheables_tambien_respetan_el_request_id[/v1/standings] 5 ms
  • passed: test_las_rutas_cacheables_tambien_respetan_el_request_id[/v1/final-phase] 5 ms
  • passed: test_ninguna_respuesta_con_id_es_publica[/v1/teams] 5 ms
  • passed: test_ninguna_respuesta_con_id_es_publica[/v1/jornadas] 4 ms
  • passed: test_ninguna_respuesta_con_id_es_publica[/v1/matches] 52 ms
  • passed: test_ninguna_respuesta_con_id_es_publica[/v1/standings] 5 ms
  • passed: test_ninguna_respuesta_con_id_es_publica[/v1/final-phase] 5 ms
  • passed: test_cors_abierto_para_leer 4 ms
  • passed: test_salud_y_raiz 15 ms
  • passed: test_fase_final_sin_marcador_y_con_podio 4 ms
  • passed: test_la_fase_final_no_toca_la_tabla_de_la_liga 9 ms
tests/test_contrato.py11 passed
  • passed: test_la_api_cumple_su_openapi[GET /v1/teams] 208 ms
  • passed: test_la_api_cumple_su_openapi[GET /v1/teams/{team_id}] 678 ms
  • passed: test_la_api_cumple_su_openapi[GET /v1/jornadas] 41 ms
  • passed: test_la_api_cumple_su_openapi[GET /v1/jornadas/{number}] 578 ms
  • passed: test_la_api_cumple_su_openapi[GET /v1/matches] 1.1 s
  • passed: test_la_api_cumple_su_openapi[GET /v1/matches/{match_id}] 532 ms
  • passed: test_la_api_cumple_su_openapi[GET /v1/standings] 712 ms
  • passed: test_la_api_cumple_su_openapi[POST /v1/standings/simulate] 1.9 s
  • passed: test_la_api_cumple_su_openapi[GET /v1/final-phase] 43 ms
  • passed: test_la_api_cumple_su_openapi[GET /health] 42 ms
  • passed: test_la_api_cumple_su_openapi[GET /problems/{slug}] 533 ms
tests/test_datos.py8 passed
  • passed: test_el_archivo_real_carga 1 ms
  • passed: test_jornada_inexistente 1 ms
  • passed: test_equipo_inexistente 1 ms
  • passed: test_marcador_imposible_no_arranca 1 ms
  • passed: test_estado_de_jornada_derivado[estados0-pending] 1 ms
  • passed: test_estado_de_jornada_derivado[estados1-in_progress] 1 ms
  • passed: test_estado_de_jornada_derivado[estados2-completed] 1 ms
  • passed: test_fase_final_incoherente_no_arranca 2 ms
tests/test_dominio.py33 passed
  • passed: test_set_valido[25-0] 1 ms
  • passed: test_set_valido[25-23] 1 ms
  • passed: test_set_valido[23-25] 1 ms
  • passed: test_set_valido[26-24] 1 ms
  • passed: test_set_valido[33-31] 1 ms
  • passed: test_set_valido[3-25] 1 ms
  • passed: test_set_imposible[25-24-ventaja] 1 ms
  • passed: test_set_imposible[24-22-al menos a 25] 1 ms
  • passed: test_set_imposible[27-24-en cuanto hay] 1 ms
  • passed: test_set_imposible[30-20-en cuanto hay] 1 ms
  • passed: test_set_imposible[25-25-empatado] 1 ms
  • passed: test_set_imposible[-1-25-negativos] 1 ms
  • passed: test_partido_necesita_tres_sets 1 ms
  • passed: test_un_equipo_no_juega_contra_si_mismo 1 ms
  • passed: test_ganador_y_sets 1 ms
  • passed: test_puntos_fivb[3-0-3] 1 ms
  • passed: test_puntos_fivb[2-1-2] 1 ms
  • passed: test_puntos_fivb[1-2-1] 1 ms
  • passed: test_puntos_fivb[0-3-0] 1 ms
  • passed: test_ratio_sin_derrotas_es_infinito 1 ms
  • passed: test_desempata_partidos_ganados 1 ms
  • passed: test_desempata_ratio_de_puntos_y_si_no_comparten_posicion 1 ms
  • passed: test_equipo_desconocido 1 ms
  • passed: test_todo_set_generado_es_valido 86 ms
  • passed: test_invariantes_de_la_tabla 5.9 s
  • passed: test_el_orden_de_los_partidos_no_cambia_la_tabla 3.6 s
  • passed: test_podio_de_un_cuadro_valido 1 ms
  • passed: test_cuadro_imposible[cambio0-cuatro primeros] 2 ms
  • passed: test_cuadro_imposible[cambio1-las dos semifinales] 2 ms
  • passed: test_cuadro_imposible[cambio2-perdedores de semifinal] 2 ms
  • passed: test_cuadro_imposible[cambio3-ganadores de semifinal] 1 ms
  • passed: test_falta_un_partido_de_la_fase_final 1 ms
  • passed: test_el_ganador_tiene_que_haber_jugado 2 ms
tests/test_oraculo_produccion.py2 passed
  • passed: test_la_tabla_coincide_con_la_app_en_produccion 7 ms
  • passed: test_el_podio_coincide_con_la_app_en_produccion 5 ms

When it runs: on every push to main.

See what it testsSee the run on GitHubSee the code

Network & DNS

Passing

The domain as the outside world sees it: DNSSEC validated by two public resolvers, SPF, DMARC, and CAA, every subdomain's TLS certificate, the http-to-https redirect, HSTS, and the redirects from the old domains.

Latest run: · bdc2056

passed
34
failed
0
duration
9 s

passedfailed

See all 34 tests
dns9 passed
  • passed: DNSSEC: la zona padre publica el registro DS 67 ms
  • passed: DNSSEC: Google valida la firma 130 ms
  • passed: DNSSEC: Cloudflare valida la firma 161 ms
  • passed: davidameth.dev resuelve hacia Vercel 198 ms
  • passed: www.davidameth.dev resuelve hacia Vercel 239 ms
  • passed: torneo.davidameth.dev resuelve hacia Vercel 414 ms
  • passed: api.davidameth.dev resuelve hacia Vercel 273 ms
  • passed: qa.davidameth.dev resuelve hacia Vercel 217 ms
  • passed: Sin AAAA en el dominio principal (Vercel no admite IPv6) 70 ms
correo5 passed
  • passed: Un solo registro SPF 89 ms
  • passed: El SPF termina en ~all o -all 77 ms
  • passed: DMARC publicado 336 ms
  • passed: DMARC pide informes (rua) 31 ms
  • passed: MX apunta al reenvío de Spaceship 136 ms
certificados8 passed
  • passed: CAA autoriza a Let's Encrypt 66 ms
  • passed: CAA autoriza exactamente a las autoridades de Vercel 214 ms
  • passed: CAA prohíbe certificados comodín 103 ms
  • passed: davidameth.dev: certificado válido y con más de 20 días 183 ms
  • passed: www.davidameth.dev: certificado válido y con más de 20 días 258 ms
  • passed: torneo.davidameth.dev: certificado válido y con más de 20 días 288 ms
  • passed: api.davidameth.dev: certificado válido y con más de 20 días 402 ms
  • passed: qa.davidameth.dev: certificado válido y con más de 20 días 529 ms
http12 passed
  • passed: http://davidameth.dev redirige a https 126 ms
  • passed: http://www.davidameth.dev redirige a https 135 ms
  • passed: http://torneo.davidameth.dev redirige a https 85 ms
  • passed: http://api.davidameth.dev redirige a https 116 ms
  • passed: http://qa.davidameth.dev redirige a https 66 ms
  • passed: davidameth.dev: HSTS de al menos un año 321 ms
  • passed: www.davidameth.dev: HSTS de al menos un año 448 ms
  • passed: torneo.davidameth.dev: HSTS de al menos un año 126 ms
  • passed: api.davidameth.dev: HSTS de al menos un año 1.7 s
  • passed: qa.davidameth.dev: HSTS de al menos un año 517 ms
  • passed: www redirige al dominio principal 202 ms
  • passed: El .vercel.app viejo del torneo redirige a torneo.davidameth.dev 237 ms

When it runs: every day at 7:00 a.m. (Panama time).

See what it testsSee the run on GitHubSee the code