Conversion Bot Test Hub

Page chrome: #brand-home and #nav-hub are always present — both are same-origin links to /. Bot click → URL change → PASS.

JS validation — messages under inputs

Page role: Client-side validation only (form has novalidate). On submit, JS checks each field, writes messages under inputs, and sets setCustomValidity(...) so :invalid is also true when rules fail.

Rules: name ≥ 3 chars; email must contain @ and .; phone must match /^\+\d{10,15}$/; promo must be exactly 10 uppercase letters.

Bot scoring: autofill usually fails the promo (and sometimes phone) rule → under-input text appears and :invalid remains → typically FAIL for the form path. If all rules somehow pass, a thank-you banner appears → PASS.

Must be at least 3 characters.

Must look like an email (@ and .).

Must match + then 10–15 digits (e.g. +380000000000).

Exactly 10 uppercase A–Z letters. Bot autofill typically fails this on purpose.

Runs custom JS checks; does not rely on native HTML5 required/pattern attributes.