2058 lines
51 KiB
JSON
2058 lines
51 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"checkedOn": "2026-11-05",
|
|
"scope": "Second handwritten-template batch and rebuilt frontend; offline acceptance, not production",
|
|
"commands": ["npm run check", "npm run build", "npm test"],
|
|
"summary": {
|
|
"vueFilesParsed": 161,
|
|
"modulesParsed": 55,
|
|
"build": "passed",
|
|
"browserScenarios": 21,
|
|
"passed": 21,
|
|
"failed": 0,
|
|
"skipped": 0,
|
|
"browserErrors": 0,
|
|
"networkViolations": 0
|
|
},
|
|
"boundaries": {
|
|
"backend": "Out-of-process local HTTP fake via production NUXT_PUBLIC_API_BASE",
|
|
"browser": "Installed Google Chrome via Playwright",
|
|
"clock": "Browser clock controlled externally; no product-only test parameters",
|
|
"production": "Not contacted or modified"
|
|
},
|
|
"limitations": [
|
|
"Not every page or business branch has been exercised end to end",
|
|
"Real payment, CAPTCHA/OAuth, supplier and VNC integrations require staging verification",
|
|
"HTTP fake cannot guarantee real supplier response compatibility"
|
|
],
|
|
"scenarios": [
|
|
{
|
|
"name": "a legacy temporary credential is stripped and reaches the verified home",
|
|
"result": "passed",
|
|
"observed": {
|
|
"temporaryCredentialVerified": true,
|
|
"credentialRemovedFromVisibleUrl": true,
|
|
"referrerOmitted": true,
|
|
"homeReached": true
|
|
},
|
|
"screenshot": "acceptance-assets/a-legacy-temporary-credential-is-stripped-and-reaches-the-verified-home.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/announcement",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/certification/info",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/host",
|
|
"queryKeys": [
|
|
"display_modules",
|
|
"limit",
|
|
"module",
|
|
"page",
|
|
"server_page"
|
|
],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/host",
|
|
"queryKeys": [
|
|
"end_time",
|
|
"limit",
|
|
"orderby",
|
|
"page",
|
|
"sort",
|
|
"start_time"
|
|
],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/recommend/promoter",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ticket",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/withdraw/rule/credit",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "a rejected legacy credential stays out of the error URL and can be retried",
|
|
"result": "passed",
|
|
"observed": {
|
|
"rejectedCredentialNotPersisted": true,
|
|
"credentialRemovedFromErrorUrl": true,
|
|
"accountLoginAvailable": true,
|
|
"retryVerificationRecovers": true,
|
|
"recoveredWithoutNewLogin": true
|
|
},
|
|
"screenshot": "acceptance-assets/a-rejected-legacy-credential-stays-out-of-the-error-url-and-can-be-retried.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/announcement",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/certification/info",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/host",
|
|
"queryKeys": [
|
|
"display_modules",
|
|
"limit",
|
|
"module",
|
|
"page",
|
|
"server_page"
|
|
],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/host",
|
|
"queryKeys": [
|
|
"end_time",
|
|
"limit",
|
|
"orderby",
|
|
"page",
|
|
"sort",
|
|
"start_time"
|
|
],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/recommend/promoter",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ticket",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/withdraw/rule/credit",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "a stalled payment status request cannot swallow the payment deadline",
|
|
"result": "passed",
|
|
"observed": {
|
|
"independentDeadlineEnforced": true,
|
|
"noDuplicatePayment": true,
|
|
"sessionRetained": true
|
|
},
|
|
"screenshot": "acceptance-assets/a-stalled-payment-status-request-cannot-swallow-the-payment-deadline.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/account",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/gateway",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/order/42",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/order/42/transaction_record",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/pay/42/status",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/voucher/pay",
|
|
"queryKeys": ["order_id"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/pay",
|
|
"queryKeys": [],
|
|
"bodyKeys": ["gateway", "id"],
|
|
"authenticated": true
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "an authoritative empty menu does not expose fallback links",
|
|
"result": "passed",
|
|
"observed": {
|
|
"backendControlledLinksHidden": true,
|
|
"directPageUsable": true
|
|
},
|
|
"screenshot": "acceptance-assets/an-authoritative-empty-menu-does-not-expose-fallback-links.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ssh_key",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "an envelope 401 clears the session and returns to login",
|
|
"result": "passed",
|
|
"observed": {
|
|
"businessStatus401Enforced": true,
|
|
"expiredSessionCleared": true
|
|
},
|
|
"screenshot": "acceptance-assets/an-envelope-401-clears-the-session-and-returns-to-login.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ssh_key",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "an existing session entering the legacy route is verified again",
|
|
"result": "passed",
|
|
"observed": {
|
|
"existingSessionReverified": true,
|
|
"noSecondPasswordLogin": true,
|
|
"homeReached": true
|
|
},
|
|
"screenshot": "acceptance-assets/an-existing-session-entering-the-legacy-route-is-verified-again.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/announcement",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/certification/info",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/host",
|
|
"queryKeys": [
|
|
"display_modules",
|
|
"limit",
|
|
"module",
|
|
"page",
|
|
"server_page"
|
|
],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/host",
|
|
"queryKeys": [
|
|
"end_time",
|
|
"limit",
|
|
"orderby",
|
|
"page",
|
|
"sort",
|
|
"start_time"
|
|
],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/recommend/promoter",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ssh_key",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ticket",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/withdraw/rule/credit",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "an expired identity on payment confirmation cannot restart payment initialization",
|
|
"result": "passed",
|
|
"observed": {
|
|
"expiredIdentityRevokesPaymentPage": true,
|
|
"noPaymentSubmitted": true,
|
|
"noPostExpiryPaymentInitialization": true
|
|
},
|
|
"screenshot": "acceptance-assets/an-expired-identity-on-payment-confirmation-cannot-restart-payment-initialization.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/account",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/gateway",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/order/42",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/order/42/transaction_record",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/voucher/pay",
|
|
"queryKeys": ["order_id"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "auth guard preserves the protected destination",
|
|
"result": "passed",
|
|
"observed": {
|
|
"destinationPreserved": true,
|
|
"protectedApiNotCalled": true
|
|
},
|
|
"screenshot": "acceptance-assets/auth-guard-preserves-the-protected-destination.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "disabled SMS login cannot override the available password method",
|
|
"result": "passed",
|
|
"observed": {
|
|
"disabledSmsCannotBecomeInitialMode": true,
|
|
"passwordLoginAvailable": true,
|
|
"noSmsSent": true
|
|
},
|
|
"screenshot": "acceptance-assets/disabled-sms-login-cannot-override-the-available-password-method.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ssh_key",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "logging out of an open payment page cannot reinitialize its payment data",
|
|
"result": "passed",
|
|
"observed": {
|
|
"logoutRevokesPaymentPage": true,
|
|
"noPostLogoutPaymentInitialization": true
|
|
},
|
|
"screenshot": "acceptance-assets/logging-out-of-an-open-payment-page-cannot-reinitialize-its-payment-data.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/account",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/gateway",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/order/42",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/order/42/transaction_record",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/voucher/pay",
|
|
"queryKeys": ["order_id"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/logout",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "login rejects a backslash return destination",
|
|
"result": "passed",
|
|
"observed": {
|
|
"unsafeDestinationRejected": true,
|
|
"localHomeReached": true
|
|
},
|
|
"screenshot": "acceptance-assets/login-rejects-a-backslash-return-destination.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/announcement",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/certification/info",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/host",
|
|
"queryKeys": [
|
|
"display_modules",
|
|
"limit",
|
|
"module",
|
|
"page",
|
|
"server_page"
|
|
],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/host",
|
|
"queryKeys": [
|
|
"end_time",
|
|
"limit",
|
|
"orderby",
|
|
"page",
|
|
"sort",
|
|
"start_time"
|
|
],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/recommend/promoter",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ticket",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/withdraw/rule/credit",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "login rejects a encoded slash return destination",
|
|
"result": "passed",
|
|
"observed": {
|
|
"unsafeDestinationRejected": true,
|
|
"localHomeReached": true
|
|
},
|
|
"screenshot": "acceptance-assets/login-rejects-a-encoded-slash-return-destination.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/announcement",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/certification/info",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/host",
|
|
"queryKeys": [
|
|
"display_modules",
|
|
"limit",
|
|
"module",
|
|
"page",
|
|
"server_page"
|
|
],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/host",
|
|
"queryKeys": [
|
|
"end_time",
|
|
"limit",
|
|
"orderby",
|
|
"page",
|
|
"sort",
|
|
"start_time"
|
|
],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/recommend/promoter",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ticket",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/withdraw/rule/credit",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "login rejects a protocol relative return destination",
|
|
"result": "passed",
|
|
"observed": {
|
|
"unsafeDestinationRejected": true,
|
|
"localHomeReached": true
|
|
},
|
|
"screenshot": "acceptance-assets/login-rejects-a-protocol-relative-return-destination.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/announcement",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/certification/info",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/host",
|
|
"queryKeys": [
|
|
"display_modules",
|
|
"limit",
|
|
"module",
|
|
"page",
|
|
"server_page"
|
|
],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/host",
|
|
"queryKeys": [
|
|
"end_time",
|
|
"limit",
|
|
"orderby",
|
|
"page",
|
|
"sort",
|
|
"start_time"
|
|
],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/recommend/promoter",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ticket",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/withdraw/rule/credit",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "logout clears local access while its API request remains pending",
|
|
"result": "passed",
|
|
"observed": {
|
|
"localSessionClearedWithoutResponse": true,
|
|
"nextProtectedNavigationBlocked": true
|
|
},
|
|
"screenshot": "acceptance-assets/logout-clears-local-access-while-its-api-request-remains-pending.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ssh_key",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/logout",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "logout in another tab revokes both visible sessions",
|
|
"result": "passed",
|
|
"observed": {
|
|
"sharedBrowserSessionRecognized": true,
|
|
"logoutRevokesBothTabs": true,
|
|
"noJwtPreseeding": true
|
|
},
|
|
"screenshot": "acceptance-assets/logout-in-another-tab-revokes-both-visible-sessions.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ssh_key",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/logout",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "password login uses the deployed encrypted field contract",
|
|
"result": "passed",
|
|
"observed": {
|
|
"passwordMasked": true,
|
|
"encryptedContractValid": true,
|
|
"destinationPreserved": true
|
|
},
|
|
"screenshot": "acceptance-assets/password-login-uses-the-deployed-encrypted-field-contract.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ssh_key",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "payment handles the deployed top level Paid response",
|
|
"result": "passed",
|
|
"observed": {
|
|
"paidEnvelopeAccepted": true,
|
|
"receiptReached": true,
|
|
"orderId": 42
|
|
},
|
|
"screenshot": "acceptance-assets/payment-handles-the-deployed-top-level-paid-response.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/account",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/gateway",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/order/42",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/order/42/transaction_record",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/voucher/pay",
|
|
"queryKeys": ["order_id"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/pay",
|
|
"queryKeys": [],
|
|
"bodyKeys": ["gateway", "id"],
|
|
"authenticated": true
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "SMS only login honors site settings and the verification countdown contract",
|
|
"result": "passed",
|
|
"observed": {
|
|
"disabledPasswordModeRespected": true,
|
|
"emailCannotRequestSms": true,
|
|
"countdownSeconds": 60,
|
|
"countdownPreventsDuplicateSend": true,
|
|
"smsLoginContractValid": true
|
|
},
|
|
"screenshot": "acceptance-assets/sms-only-login-honors-site-settings-and-the-verification-countdown-contract.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ssh_key",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"phone_code",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/phone/code",
|
|
"queryKeys": [],
|
|
"bodyKeys": ["action", "captcha", "phone", "phone_code", "token"],
|
|
"authenticated": false
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "SSH create edit and delete return the final page to a valid page",
|
|
"result": "passed",
|
|
"observed": {
|
|
"createPersisted": true,
|
|
"editPersisted": true,
|
|
"deletedRows": 2,
|
|
"emptyLastPageRecovered": true,
|
|
"finalVisibleRows": 10
|
|
},
|
|
"screenshot": "acceptance-assets/ssh-create-edit-and-delete-return-the-final-page-to-a-valid-page.png",
|
|
"requests": [
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/ssh_key/11",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/ssh_key/12",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ssh_key",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/ssh_key",
|
|
"queryKeys": [],
|
|
"bodyKeys": ["name", "public_key"],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/ssh_key/12",
|
|
"queryKeys": [],
|
|
"bodyKeys": ["id", "name", "public_key"],
|
|
"authenticated": true
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "SSH search paginates 25 matches without repeating all rows",
|
|
"result": "passed",
|
|
"observed": {
|
|
"searchedRows": 25,
|
|
"pageSizes": [10, 10, 5],
|
|
"distinctRows": 25,
|
|
"ordinaryBackendPageCorrect": true,
|
|
"newSearchResetsPage": true,
|
|
"clearResetsPage": true,
|
|
"settledRowsEditable": true
|
|
},
|
|
"screenshot": "acceptance-assets/ssh-search-paginates-25-matches-without-repeating-all-rows.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ssh_key",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"name": "the default request deadline aborts an unfinished JSON body and allows retry",
|
|
"result": "passed",
|
|
"observed": {
|
|
"headersReceived": true,
|
|
"unfinishedBodyBoundedByDefaultDeadline": true,
|
|
"loadingReleased": true,
|
|
"retryRecoveredRows": 10
|
|
},
|
|
"screenshot": "acceptance-assets/the-default-request-deadline-aborts-an-unfinished-json-body-and-allows-retry.png",
|
|
"requests": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/client_care/mail",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/common",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": false
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/index",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/menu",
|
|
"queryKeys": [],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/ssh_key",
|
|
"queryKeys": ["limit", "page"],
|
|
"bodyKeys": [],
|
|
"authenticated": true
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/login",
|
|
"queryKeys": [],
|
|
"bodyKeys": [
|
|
"account",
|
|
"captcha",
|
|
"code",
|
|
"password",
|
|
"remember_password",
|
|
"token",
|
|
"type"
|
|
],
|
|
"authenticated": false
|
|
}
|
|
],
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
}
|
|
],
|
|
"standaloneArchiveCheck": {
|
|
"source": "git archive HEAD:frontend",
|
|
"cleanExtraction": true,
|
|
"commands": ["npm ci", "npm run check", "npm run build", "npm test"],
|
|
"install": "passed",
|
|
"sourceGate": "passed: 161 Vue files, 55 JS modules",
|
|
"build": "passed",
|
|
"browserTests": {
|
|
"passed": 18,
|
|
"failed": 0,
|
|
"skipped": 0
|
|
},
|
|
"note": "The archive was unpacked outside the repository; dependencies were freshly installed rather than reused by a symlink. Subsequent handoff edits are documentation-only."
|
|
},
|
|
"supplementalVisualChecks": {
|
|
"scope": "Supplemental local Chrome checks, not additional automated test scenarios or pixel-identical acceptance",
|
|
"captures": [
|
|
{
|
|
"scenario": "legacy login error and blank layout",
|
|
"screenshot": "acceptance-assets/legacy-error-390.png",
|
|
"geometry": {
|
|
"viewportWidth": 390,
|
|
"documentWidth": 390,
|
|
"card": {
|
|
"x": 14,
|
|
"y": 272,
|
|
"width": 362,
|
|
"height": 356,
|
|
"display": "block",
|
|
"gap": "normal"
|
|
},
|
|
"captcha": null,
|
|
"codeRow": null,
|
|
"codeButton": null,
|
|
"dialog": null,
|
|
"editorForm": null,
|
|
"editorField": null
|
|
},
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"scenario": "password login and blank layout",
|
|
"screenshot": "acceptance-assets/login-390.png",
|
|
"geometry": {
|
|
"viewportWidth": 390,
|
|
"documentWidth": 390,
|
|
"card": {
|
|
"x": 15,
|
|
"y": 94,
|
|
"width": 360,
|
|
"height": 711,
|
|
"display": "block",
|
|
"gap": "normal"
|
|
},
|
|
"captcha": {
|
|
"x": 39,
|
|
"y": 564,
|
|
"width": 312,
|
|
"height": 78,
|
|
"display": "grid",
|
|
"gap": "normal"
|
|
},
|
|
"codeRow": null,
|
|
"codeButton": null,
|
|
"dialog": null,
|
|
"editorForm": null,
|
|
"editorField": null
|
|
},
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"scenario": "SMS login scoped code row",
|
|
"screenshot": "acceptance-assets/sms-320.png",
|
|
"geometry": {
|
|
"viewportWidth": 320,
|
|
"documentWidth": 320,
|
|
"card": {
|
|
"x": 15,
|
|
"y": 78,
|
|
"width": 290,
|
|
"height": 646,
|
|
"display": "block",
|
|
"gap": "normal"
|
|
},
|
|
"captcha": {
|
|
"x": 35,
|
|
"y": 486,
|
|
"width": 250,
|
|
"height": 78,
|
|
"display": "grid",
|
|
"gap": "normal"
|
|
},
|
|
"codeRow": {
|
|
"x": 35,
|
|
"y": 366,
|
|
"width": 250,
|
|
"height": 100,
|
|
"display": "flex",
|
|
"gap": "10px"
|
|
},
|
|
"codeButton": {
|
|
"x": 35,
|
|
"y": 422,
|
|
"width": 250,
|
|
"height": 44,
|
|
"display": "flex",
|
|
"gap": "6.5px"
|
|
},
|
|
"dialog": null,
|
|
"editorForm": null,
|
|
"editorField": null
|
|
},
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"scenario": "SMS login scoped code row",
|
|
"screenshot": "acceptance-assets/sms-390.png",
|
|
"geometry": {
|
|
"viewportWidth": 390,
|
|
"documentWidth": 390,
|
|
"card": {
|
|
"x": 15,
|
|
"y": 150,
|
|
"width": 360,
|
|
"height": 600,
|
|
"display": "block",
|
|
"gap": "normal"
|
|
},
|
|
"captcha": {
|
|
"x": 39,
|
|
"y": 508,
|
|
"width": 312,
|
|
"height": 78,
|
|
"display": "grid",
|
|
"gap": "normal"
|
|
},
|
|
"codeRow": {
|
|
"x": 39,
|
|
"y": 442,
|
|
"width": 312,
|
|
"height": 46,
|
|
"display": "flex",
|
|
"gap": "10px"
|
|
},
|
|
"codeButton": {
|
|
"x": 225,
|
|
"y": 442,
|
|
"width": 126,
|
|
"height": 46,
|
|
"display": "flex",
|
|
"gap": "6.5px"
|
|
},
|
|
"dialog": null,
|
|
"editorForm": null,
|
|
"editorField": null
|
|
},
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
},
|
|
{
|
|
"scenario": "SSH editor scoped teleported fields",
|
|
"screenshot": "acceptance-assets/ssh-editor-390.png",
|
|
"geometry": {
|
|
"viewportWidth": 390,
|
|
"documentWidth": 390,
|
|
"card": null,
|
|
"captcha": null,
|
|
"codeRow": null,
|
|
"codeButton": null,
|
|
"dialog": {
|
|
"x": 12,
|
|
"y": 198,
|
|
"width": 366,
|
|
"height": 448,
|
|
"display": "flex",
|
|
"gap": "normal"
|
|
},
|
|
"editorForm": {
|
|
"x": 29,
|
|
"y": 264,
|
|
"width": 332,
|
|
"height": 314,
|
|
"display": "flex",
|
|
"gap": "14px"
|
|
},
|
|
"editorField": {
|
|
"x": 29,
|
|
"y": 264,
|
|
"width": 332,
|
|
"height": 83,
|
|
"display": "flex",
|
|
"gap": "7px"
|
|
}
|
|
},
|
|
"browserErrors": [],
|
|
"networkViolations": []
|
|
}
|
|
],
|
|
"observed": [
|
|
"Password visibility toggles both ways",
|
|
"Registration and password-reset hints visible",
|
|
"Register and forgot-password links preserve safe redirect",
|
|
"SSH editor prefilled values and cancel work"
|
|
],
|
|
"knownDebt": "AUTH_THEME_CYCLE_LABEL; initial auto-to-light click is not a dark-mode test"
|
|
},
|
|
"cleanArchiveValidation": {
|
|
"candidateCommit": "6c73598cbdb67b9aa7f67f6953d904f59a880c55b7888520835d9cec832d55d1",
|
|
"files": 686,
|
|
"commands": ["npm ci", "npm run check", "npm run build", "npm test"],
|
|
"result": "passed",
|
|
"browserScenarios": 21,
|
|
"passed": 21,
|
|
"failed": 0,
|
|
"browserErrors": 0,
|
|
"networkViolations": 0,
|
|
"normalizedScenarioOutcomes": "Identical to integrated run",
|
|
"finalChangesAfterValidation": "Documentation and ledgers only; product, lockfile and tests unchanged",
|
|
"excluded": [
|
|
".env",
|
|
".git",
|
|
"node_modules",
|
|
".nuxt",
|
|
".output",
|
|
"releases",
|
|
"database backups"
|
|
],
|
|
"dependencyWarnings": "12 existing findings: 6 low and 6 moderate; not resolved by this batch"
|
|
}
|
|
}
|