Documentación de Proyecto Sincro

SesionTest extends ApiTestCase

Sección SESIÓN de la API — reglas de autenticación propias del modelo usuario_web (login único, usuarios deshabilitados, no enumeración).

El ciclo genérico de login/logout se cubre en tests/general/AuthTest.php; aquí solo lo específico de la tabla.

Tags
see
ControladorUsers::loginUsuarioWeb
requires

PHP 8.0 Uso de tipado estricto y funciones de strings

requires

PHPUnit.

Attributes
#[Group]
'trackingweb'
#[Group]
'sesion'

Table of Contents

Properties

$cookieJar  : CookieJar
$debug  : bool
$http  : Client

Methods

testErrorDeLoginNoDistingueUsuarioInexistenteDeClaveIncorrecta()  : void
El mensaje de error debe ser idéntico tanto si el usuario no existe como si la contraseña es incorrecta. De lo contrario se podrían enumerar los logins válidos del sistema.
testLoginCorrectoDevuelveDatosDeSesion()  : void
La respuesta de un login correcto debe traer los datos de sesión esperados y nada más relacionado con credenciales.
testUsuarioDeshabilitadoNoPuedeIniciarSesion()  : void
Un usuario con habilitado = 0 no debe poder iniciar sesión.
assertNoFiltraDetallesInternos()  : void
Verifica que un mensaje de error no filtra detalles internos del servidor (SQL, rutas de archivo, clases o trazas de excepción).
assertRespuestaApi()  : void
Verifica que la respuesta cumple el contrato mínimo de la API: JSON válido con una clave booleana 'ok'.
credenciales()  : array{0: string, 1: string}
Devuelve las credenciales de test del entorno.
idSesion()  : string|null
Devuelve el identificador de sesión actual del cookieJar, si existe.
iniciarSesion()  : void
Inicia sesión con las credenciales del entorno.
nuevoCliente()  : Client
Crea un cliente HTTP que comparte el cookieJar del test.
post()  : array{0: int, 1: array}
Ejecuta un POST contra la API y devuelve [statusCode, bodyArray].
setUp()  : void
Carga el entorno de test, el cookieJar y el cliente HTTP.
trace()  : void
Imprime una traza de ejecución con contexto, dirección y payload.

Properties

Methods

testErrorDeLoginNoDistingueUsuarioInexistenteDeClaveIncorrecta()

El mensaje de error debe ser idéntico tanto si el usuario no existe como si la contraseña es incorrecta. De lo contrario se podrían enumerar los logins válidos del sistema.

public testErrorDeLoginNoDistingueUsuarioInexistenteDeClaveIncorrecta() : void
Tags
throws
GuzzleException

testLoginCorrectoDevuelveDatosDeSesion()

La respuesta de un login correcto debe traer los datos de sesión esperados y nada más relacionado con credenciales.

public testLoginCorrectoDevuelveDatosDeSesion() : void
Tags
throws
GuzzleException

testUsuarioDeshabilitadoNoPuedeIniciarSesion()

Un usuario con habilitado = 0 no debe poder iniciar sesión.

public testUsuarioDeshabilitadoNoPuedeIniciarSesion() : void

Crea un usuario temporal deshabilitado, comprueba el login y lo elimina.

Tags
throws
GuzzleException
Attributes
#[Group]
'escritura'

assertNoFiltraDetallesInternos()

Verifica que un mensaje de error no filtra detalles internos del servidor (SQL, rutas de archivo, clases o trazas de excepción).

protected assertNoFiltraDetallesInternos(array<string|int, mixed> $body[, string $contexto = '' ]) : void
Parameters
$body : array<string|int, mixed>

: Cuerpo decodificado

$contexto : string = ''

: Texto identificativo para el mensaje de fallo

assertRespuestaApi()

Verifica que la respuesta cumple el contrato mínimo de la API: JSON válido con una clave booleana 'ok'.

protected assertRespuestaApi(array<string|int, mixed> $body[, string $contexto = '' ]) : void
Parameters
$body : array<string|int, mixed>

: Cuerpo decodificado

$contexto : string = ''

: Texto identificativo para el mensaje de fallo

credenciales()

Devuelve las credenciales de test del entorno.

protected credenciales([bool $admin = false ]) : array{0: string, 1: string}
Parameters
$admin : bool = false

: true para las credenciales de administrador

Return values
array{0: string, 1: string}

idSesion()

Devuelve el identificador de sesión actual del cookieJar, si existe.

protected idSesion() : string|null

Se busca por coincidencia parcial para soportar session.name personalizado.

Return values
string|null

iniciarSesion()

Inicia sesión con las credenciales del entorno.

protected iniciarSesion([bool $admin = false ]) : void

Marca el test como skipped si no están configuradas.

Parameters
$admin : bool = false

: true para iniciar como administrador

Tags
throws
GuzzleException

nuevoCliente()

Crea un cliente HTTP que comparte el cookieJar del test.

protected nuevoCliente([array<string|int, mixed> $headers = [] ]) : Client

Permite sobreescribir cabeceras (útil para probar el binding de UA).

Parameters
$headers : array<string|int, mixed> = []

: Cabeceras adicionales o sobreescritas

Return values
Client

post()

Ejecuta un POST contra la API y devuelve [statusCode, bodyArray].

protected post(string $endpoint, array<string|int, mixed> $params) : array{0: int, 1: array}
Parameters
$endpoint : string

: Punto de entrada

$params : array<string|int, mixed>

: Parametros de la peticion

Tags
throws
GuzzleException
Return values
array{0: int, 1: array}

setUp()

Carga el entorno de test, el cookieJar y el cliente HTTP.

protected setUp() : void

El cookieJar se recrea en cada test para garantizar aislamiento.

trace()

Imprime una traza de ejecución con contexto, dirección y payload.

protected trace(string $contexto, string $mensaje[, mixed|null $payload = null ]) : void

Los valores sensibles se sustituyen por '***'.

Parameters
$contexto : string

: Contexto del mensaje

$mensaje : string

: Mensaje

$payload : mixed|null = null

: Carga del mensaje


        
On this page

Search results