metis-desk/.artifacts/resources-global-operating-systems-closure/technical/companies-detailed.log

367 lines
32 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

✔ contexto AD: creación pura con identidades propias, sin cuentas, grupos ni activos (4.523835ms)
✔ clasificación independiente del nombre; no se adopta un sistema existente por llamarse AD (1.169609ms)
✔ se rechazan compañías distintas, referencias inexistentes y entornos sin clasificación (0.579104ms)
✔ DNS repetido no crea dos entornos; otro dominio comparte sistema y obtiene un entorno distinto (0.623805ms)
✔ identidad local: vínculo por UUID, alta y retirada idempotentes con identidad e historial protegidos (1.539512ms)
✔ identidad local: clasificación explícita rechaza AD por sistema o entorno, sin comparar etiquetas (0.419404ms)
✔ identidad local: crear entorno utiliza AccessWorkspace y conserva cuentas y sistema existentes (0.638505ms)
✔ catálogos globales no se duplican con adiciones locales y no se admiten grupos anidados (1.050908ms)
✔ renombrar una cuenta conserva UUID, historial y semántica de repetición; su uso permanece fijo (1.188209ms)
✔ cerrar una autorización configurada deja retirada pendiente y cerrar una pendiente no inventa un acceso (1.819814ms)
✔ titulares no se solapan incluso en periodos cerrados; el relevo conserva una retirada anterior (0.819007ms)
✔ responsabilidad técnica no concede acceso y se permite sobre una cuenta caducada o inactiva (0.616505ms)
✔ valores reconstruyen UUID y fechas, rechazan fechas imposibles y no permiten credenciales (1.569712ms)
✔ las referencias UUID se normalizan y no permiten duplicar cuentas variando mayúsculas (0.827106ms)
✔ aplicaciones: contrato estricto, versión opcional y solo instalada (1.814814ms)
✔ aplicaciones: UUID, idempotencia, versión auditada, destino fijo y retirada (2.474119ms)
✔ aplicaciones: ámbito y clasificación explícita, duplicados abiertos y reapertura nueva (1.735514ms)
✔ aplicaciones: inactividad conserva notas y permite retirada, impide reconfigurar (1.514312ms)
✔ aplicaciones: persistencia preserva historial y rechaza claves y orden incoherentes (2.096117ms)
✔ R2.5: global conserva perfil, delivery e historial; disponibilidad distinta de lectura histórica (0.772806ms)
✔ certificados: contrato estricto, ubicación opcional y límites (0.965307ms)
✔ certificados: UUID, idempotencia, ubicación auditada, destino fijo y retirada (1.420811ms)
✔ certificados: ámbito y clasificación explícita, duplicados abiertos y reapertura nueva (1.26921ms)
✔ certificados: inactividad conserva notas y permite retirada, impide reconfigurar (0.682406ms)
✔ certificados: persistencia preserva historial y rechaza claves y orden incoherentes (1.555612ms)
✔ certificados: caducidad inclusiva, revisión y retirada sin perder historial (0.766006ms)
✔ compañía, contacto y sede tienen UUID v7 propios y se conserva la identidad al editar (0.729206ms)
✔ la pertenencia impide asociar o editar entidades de otra compañía (0.600304ms)
✔ la dirección y el teléfono son optativos y se pueden borrar (0.284702ms)
✔ nombres, email, teléfono y longitud de dirección se validan en los Value Objects (0.474504ms)
✔ sedes: archivar y reactivar conserva identidad y datos; repetir el estado es idempotente (0.399904ms)
✔ FolderMapping: cuenta desconocida, cuenta alternativa y cobertura independiente de la necesidad (4.578036ms)
✔ FolderMapping: ausencia conserva cuenta, null la retira y cada cambio real crea revisión (2.119217ms)
✔ FolderMapping: rechaza cuenta ausente, otro subtipo, otra persona, caducada o desactivada (2.010215ms)
✔ FolderMapping: Coverage por grupo exige pertenencia directa de la cuenta y configuración vigente (3.279525ms)
✔ FolderMapping: cobertura derivada cambia al retirar concesión, necesidad, cuenta o asociación personal (4.788537ms)
✔ FolderMapping: todas las autorizaciones necesarias deben proceder de la cuenta seleccionada (0.964907ms)
✔ Correo: UUIDv7, normalización, no-op, historial y retirada explícita (1.418511ms)
✔ Correo: buzón independiente, vigencia, perfiles, varios buzones y duplicados abiertos (2.061416ms)
✔ Correo: persistencia conserva identidad e historial y rechaza corrupción (35.405076ms)
✔ Correo: vinculación explícita del legado conserva UUID e historial, sin inferir propiedad (2.129316ms)
✔ Buzón: identidad, dirección única, cuenta opcional, ámbito y cambios auditados (0.859307ms)
✔ Uso de buzón: fechas inclusiva/exclusiva, mismo día, solapes, varias personas e historial (1.041608ms)
✔ Buzones: mapper conserva identidad y revisiones, rechaza corrupción (1.801614ms)
✔ personas con datos opcionales no requieren cuenta de acceso y conservan su UUID (0.314902ms)
✔ departamentos únicos por compañía, ignorando mayúsculas y espacios exteriores (0.520605ms)
✔ varios departamentos, un único principal y sin periodos solapados (1.093508ms)
✔ ediciones conservan revisiones y una repetición semántica no añade historial (1.468711ms)
✔ inactivos no reciben nuevas asignaciones; se conservan y pueden cerrarse las existentes (0.468304ms)
✔ asignaciones rechazan pertenencias cruzadas y fechas inválidas (0.488604ms)
✔ la persistencia rechaza periodos inválidos y revisiones que no reflejan el estado actual (0.965107ms)
✔ impresoras: contratos estrictos, notas opcionales y predeterminada solo vigente (0.778506ms)
✔ impresoras: UUID, historial, igualdad semántica, destino fijo y retirada terminal (1.398011ms)
✔ impresoras: duplicados por perfil, predeterminada única y destinos del ámbito (0.775406ms)
✔ impresoras: indisponibilidad señala revisión y permite notas y retirada (0.597505ms)
✔ impresoras: rehidratación conserva identidades y detecta corrupción (4.413435ms)
✔ procesos: contratos estrictos, normalización y límites (2.816222ms)
✔ procesos: UUID v7, tareas con identidad, actualización idempotente e historial (1.684713ms)
✔ procesos: completar exige todas resueltas; cierre terminal y sujeto/tareas fijos (2.059916ms)
✔ procesos: añadir revisiones conserva las resueltas e identidades y no duplica (2.391319ms)
✔ plantillas: copia de instrucciones, igualdad semántica y cambios independientes (0.738606ms)
✔ procesos: rehidratación bidireccional y rechazo de raíces/historial alterados (2.268618ms)
✔ revisión: personales, retirada pendiente y relaciones finalizadas aún configuradas (0.288202ms)
✔ revisión: incluye configuraciones de perfiles archivados, excluye cerradas y evita duplicar (0.128801ms)
✔ remotos: origen personal sin detalle, destinos tipados y contrato estricto (1.170909ms)
✔ remotos: UUID e historial, destino fijo, idempotencia y cierre terminal (1.194709ms)
✔ remotos: referencias de compañía y duplicados abiertos por recorrido y herramienta (0.912407ms)
✔ remotos: configuración y autorización independientes; caducidad y revocación no borran acceso (1.111809ms)
✔ remotos: disponibilidad de origen y destino, retirada y método personalizado (0.362603ms)
✔ remotos: persistencia conserva auditoría y detecta referencias, claves e historial corruptos (2.268617ms)
✔ remotos: una sede archivada conserva conexiones existentes pero rechaza nuevas (0.411903ms)
✔ instalaciones: pertenecen al equipo, admiten SO/aplicaciones y rechazan recursos ajenos y destinos variables (1.579012ms)
✔ instalaciones: versiones, idempotencia, retirada, revisión y persistencia de historial (2.68862ms)
✔ licencia del software: opcional, misma compañía y tipo, vigencia, desvinculación e historial idempotente (2.838322ms)
✔ R2.4: global activo e inactivo separan alta, reconfiguración y recuperación histórica (0.613205ms)
✔ teletrabajo: ausencia, límites, fechas reales y contrato estricto (0.553104ms)
✔ teletrabajo: UUID, renovación y revocación auditadas, igualdad y destino fijo (0.837506ms)
✔ teletrabajo: vigencia inclusiva, programación, caducidad y persona inactiva (0.764806ms)
✔ teletrabajo: ámbito, unicidad incluso revocada, disponibilidad y retirada (0.582805ms)
✔ teletrabajo: rehidratación preserva identidad y detecta corrupción de raíz e historial (3.225625ms)
✔ Perfil: cuenta opcional, UUID, historial, identidad fija e idempotencia (0.981707ms)
✔ Perfil: desactivar conserva valores e historial, es idempotente y precede al borrado (0.423103ms)
✔ Perfil: misma persona/dispositivo único vigente, múltiples dispositivos/personas y revisión sin pérdida de datos (0.801806ms)
✔ Perfil: cuenta autorizada, vigencia inclusiva de caducidad, cierre de autorización y cuenta técnica (0.692606ms)
✔ Perfil: persistencia conserva revisiones y rechaza raíz o cuenta histórica incoherentes (2.887322ms)
✔ Perfil: solo un ordenador principal activo admite altas y reactivaciones; el historial se conserva (0.487304ms)
✔ PNG, JPEG y WebP se normalizan sin recorte y sin metadatos a un avatar ligero (59.965167ms)
✔ se rechazan archivos vacíos, corruptos, SVG y GIF aunque simulen un MIME válido (0.904207ms)
✔ se rechazan excesos de peso y dimensión antes de almacenar (2.112816ms)
✔ los PNG animados se rechazan antes de decodificarlos (1.455812ms)
✔ el contexto distingue cuentas y grupos del entorno, sin incluir otros entornos o datos globales (0.337503ms)
✔ recurso contextual: incluye identidades de sistemas distintos sin mezclar necesidades y concesiones ajenas (0.884007ms)
✔ filtro vacío no incluye elementos ajenos y las rutas validan UUID y contexto de compañía (1.903715ms)
✔ los catálogos presentan alta mediante acción y no un formulario junto al listado (60.671172ms)
✔ cuentas ofrecen caducidad opcional y campos sin contraseña (14.451313ms)
✔ la ayuda explica todos los elementos en ambos idiomas y distingue el ámbito (31.223543ms)
✔ los ejemplos del sistema orientan sin rellenar datos del alta (3.129924ms)
✔ las altas rápidas respetan el contexto, ámbito y relaciones históricas (0.526104ms)
✔ los formularios ofrecen altas relacionadas y el segundo modal evita altas anidadas (65.035106ms)
✔ aplicaciones: listado sin formularios, alta en cabecera y traducciones (17.470736ms)
✔ aplicaciones: selectores con alta rápida y ayuda inferior antes de guardar (13.715607ms)
✔ R2.5: perfil muestra nombre, origen y versión global sin ResourceDTO local ni mezcla de perfiles (32.873556ms)
✔ certificados: listado sin formularios, alta en cabecera y traducciones (16.538729ms)
✔ certificados: selectores con alta rápida y ayuda inferior antes de guardar (12.360096ms)
✔ la compañía de origen es ámbito visible, no un filtro eliminable con Limpiar filtros (49.387184ms)
✔ directorio: orden y página proceden de URL sin perder la consulta (20.258258ms)
✔ el dashboard no ofrece selector de compañía y conserva las métricas de cada ámbito (19.497952ms)
✔ el resumen de compañía es la entrada por defecto y ofrece destinos reales (28.582922ms)
✔ los índices de catálogos distinguen definiciones globales y variantes de compañía (4.279033ms)
✔ el listado presenta estado vacío y acceso al alta sin formularios visibles (8.388865ms)
✖ la ficha presenta datos de la compañía, contactos y acceso a sedes (15.284819ms)
✔ el formulario de sede ofrece dirección y teléfono opcionales (1.700613ms)
✖ el formulario de persona distingue contactos de cuentas de acceso y permite datos opcionales (3.012124ms)
✔ asignar un departamento permite añadir el primero y conserva el selector en edición (4.144632ms)
✔ el tablero de compañía tiene composición propia, acciones arriba y métricas limitadas a su ámbito (3.894931ms)
✔ el menú de compañía ordena trabajo y personas por grupos sin repetir las acciones de usuario (7.165556ms)
✔ sedes: listado traducido con filtro de archivadas y solo sedes activas por defecto (11.462489ms)
✔ la navegación de compañía conserva 21 enlaces reales, sección activa y contexto es/en (28.700723ms)
✔ el logo sustituye iniciales con URL versionada, dimensiones fijas y carga diferida (0.532004ms)
✔ sin logotipo aparecen iniciales y las listas consultan la misma caché de compañías (0.440003ms)
✔ cuentas del mapeo: exige asociación vigente y catálogos activos; no atribuye por login o por perfil (0.640805ms)
✔ actualización del mapeo: omitir cuenta conserva semántica distinta de retirarla explícitamente; admite revisión capturada (0.448803ms)
✔ uso de impresora: agrupa perfiles de un mismo equipo y separa pendientes e historial (0.738606ms)
✔ uso de impresora: referencias sin resolver no se presentan como ausencia de uso (0.137601ms)
✔ identidades locales: entorno del activo, navegación por UUID y estado vigente en es/en (3.413127ms)
✔ propietario local: vínculo retirado conserva navegación y no ofrece reasignación (0.431303ms)
✔ cuenta del mapeo: seleccionar perfil es una acción explícita; el render no infiere ni cambia cuenta (2.315518ms)
✔ correo: listado traducido, alta en cabecera y formularios ocultos (6.473151ms)
✔ correo: selectores reutilizables con altas y ayuda inmediatamente antes de guardar (3.676329ms)
✔ Buzones: alta en modal, cuenta opcional y ayuda al final (6.754252ms)
✔ L04.2: correo mantiene tabla y criterios mientras faltan sus referencias (3.966831ms)
✔ Personas conserva búsqueda por nombre, contactos, consulta y distinción ñ/n en es/en (52.71641ms)
✔ organización: resuelve departamento y cargo vigentes del responsable (0.267702ms)
✔ organización: sin responsable o asignación no infiere datos desde perfiles ni cargo genérico de persona (0.1015ms)
✔ organización: periodos semiabiertos, históricos y futuros (0.0768ms)
✔ organización: varias vigentes conservan todas, principal primero y orden estable sin mutar (0.150301ms)
✔ organización: dos principales no ocultan información seleccionando una arbitrariamente (0.077401ms)
✔ organización: aislamiento de compañía y persona, y referencias incompletas (0.091401ms)
✔ organización: cambios y refetch se derivan de la fuente actual (0.117201ms)
✔ impresoras: listado sin formularios, alta en cabecera y traducciones (6.249649ms)
✔ impresoras: selectores con alta rápida y ayuda inferior antes de guardar (6.027247ms)
✔ L04.2: Procesos recupera búsqueda, cerrados, orden y página en sus enlaces (13.449205ms)
✔ procesos: listados es/en sin formularios junto a los datos (13.290503ms)
✔ procesos: alta rápida y ayuda inferior antes del pie (5.541243ms)
✔ plantillas: instrucciones, desactivación y ayuda global es/en sin datos de compañía (4.110332ms)
✔ seguimiento: origen personal, revisión actual y edición sin afirmar retirada real; cerrados sin editar (17.681837ms)
✔ remotos: consulta sin formularios y traducciones (5.499642ms)
✔ remotos: formulario, altas rápidas y ayuda antes del pie (9.768376ms)
✔ remotos: origen personal, acceso configurado sin autorización y VPN separada (1.24441ms)
✔ las consultas de compañías conservan sus rutas y rechazan respuestas inválidas (20.336958ms)
✔ lectura y guardado de accesos están separados sin cambiar el contrato HTTP (1.31591ms)
✔ el guardado de usos de buzón mantiene su endpoint y no se confunde con la consulta (1.155609ms)
✔ los adapters mantienen la ausencia semántica sin modificar los campos del formulario (0.145101ms)
✔ las instrucciones de proceso conservan el orden y excluyen líneas vacías (0.114801ms)
✔ la validación de logos conserva tipos permitidos, vacío y límite exacto de tamaño (0.131101ms)
✔ la tabla espera todas sus referencias y distingue actualización de disponibilidad (0.0774ms)
✔ un fallo recuperable conserva datos anteriores sin presentarlos como actualizados (0.0996ms)
✔ una fuente denegada impide mostrar la caché de todo el listado compuesto (0.208401ms)
✔ dashboard: HTTP 401 conserva la semántica de disponibilidad (0.345302ms)
✔ dashboard: HTTP 403 conserva la semántica de disponibilidad (0.141601ms)
✔ dashboard: HTTP 503 conserva la semántica de disponibilidad (0.177201ms)
✔ dashboard: una lectura correcta valida y conserva la página del proveedor (0.746105ms)
✔ iniciales y siglas soportan nombres vacíos, Unicode y separadores (0.481804ms)
✔ el color es estable con variaciones de espacios, mayúsculas y acentos (0.155901ms)
✔ los colores generados mantienen contraste AA para texto pequeño (0.630705ms)
✔ el avatar conserva su nombre accesible y puede ser decorativo dentro de un botón etiquetado (0.424103ms)
✔ OSUI-01/02/17: SO actual desde instalación, independiente de cualquier valor de fábrica (1.092308ms)
✔ OSUI-03/04/05/18: vacío, pendiente y retirado no son SO actual (4.290433ms)
✔ OSUI-06/07: varios SO, orden determinista y aplicaciones excluidas (1.730613ms)
✔ OSUI-08/12: cambiar de activo conserva solo su SO, sin aceptar compañías ajenas (1.048708ms)
✔ OSUI-09: versión de instalación y redundancia literal sin reglas de fabricante (2.851622ms)
✔ OSUI-10: referencia no resoluble no significa ausencia; inactiva resoluble conserva información (1.431712ms)
✔ OSUI-11: error con datos previos, error de resolver y carga no se presentan como vacío (3.226925ms)
✔ OSUI-13/14: servidor sin puesto y plantilla propia consumen la misma lectura por activo (1.616113ms)
✔ OSUI-16: presentación es/en y versión opcional (2.675721ms)
✔ SO global: selector conserva scope y destino SO; la versión instalada sigue separada (0.222002ms)
✖ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (6.377449ms)
✔ formulario software: recurso fijo en edición, estados permitidos, ayuda y ausencia de persona/perfil (3.118824ms)
✔ R2.4: nombre, origen y enlace global se resuelven sin ResourceDTO local; licencia continúa particular (8.764668ms)
✔ teletrabajo: consulta sin formularios y traducciones (4.797537ms)
✔ teletrabajo: formulario con alta rápida de persona, fechas opcionales y ayuda inferior (3.301326ms)
✔ teletrabajo: sin autorización no se presupone permiso; persona inactiva requiere revisión (1.342011ms)
✔ teletrabajo: alta desde un perfil fija la persona y no abre otra alta rápida (1.705414ms)
✔ teletrabajo es/en: conserva estado documental, vigencia y revisión como mensajes independientes (6.536251ms)
✔ entorno: reúne varios correos y configuraciones, distingue pendiente, retirada y revisión (0.777306ms)
✔ entorno: excluye cerradas, otros perfiles, compañías y correo antiguo sin adivinar relaciones (0.425204ms)
✔ entorno: composición vigente del puesto y datos actuales sin duplicación (0.457704ms)
✔ entorno: ficha es/en con estados y acciones, sin formularios; muestra falso y varios correos (12.635298ms)
✔ entorno: carga, fallo parcial sin falsa ficha vacía, perfil inexistente y aviso de archivado (11.245887ms)
✔ entorno: consulta autorización por persona, común a sus perfiles y sin confundir preparación (14.23231ms)
✔ entorno: accesos abiertos de la persona y sus orígenes sin confundirlos con configuraciones del perfil (4.617236ms)
✔ las entidades de los selectores se pluralizan en es/en sin reutilizar el verbo de acción (1.36901ms)
✔ perfiles: listado es/en, alta en cabecera y ausencia de formulario junto al listado (5.892546ms)
✔ perfiles: la cabecera breve conserva el motivo completo en la celda de revisión (9.400873ms)
✔ perfiles: alta en cuatro pasos, sin guardado intermedio y contenido de ayuda conservado (4.848338ms)
✔ perfiles: selección de persona explícita y cuenta opcional con altas independientes (6.252049ms)
✔ perfiles: el puesto fijado aporta su ordenador y no selecciona al responsable como usuario (3.230525ms)
✔ perfiles: requisitos por paso, cuenta opcional y propuesta basada en persona y ordenador (0.272803ms)
✔ perfiles: el nombre sugerido respeta el límite del contrato (0.107601ms)
✔ perfiles: resumen con listas, ordenador único y ausencias representadas por guion (1.686613ms)
✔ perfiles: edición completa con identidad fija aunque el perfil requiera revisión (2.795121ms)
✔ perfiles: orden y página navegables conservan búsqueda y archivados al abrir entorno (11.298688ms)
✔ el catálogo de aplicaciones de compañía conserva cursor, filtros y retorno a ficha (1.318811ms)
✔ las funcionalidades archivadas no tienen rutas activas (0.445704ms)
✔ el filtro de plantilla permite abrir listados y fichas de activos y recursos (0.572505ms)
✔ el filtro de plantilla se limita a los inventarios que conocen sus definiciones (0.295202ms)
✔ todas las secciones de compañía tienen una ruta propia y el índice es el resumen (0.754306ms)
✔ los índices de catálogos y los cinco catálogos globales son destinos independientes (0.212202ms)
✔ las configuraciones conservan la compañía y el UUID del perfil (0.242802ms)
✔ las rutas desconocidas y los parámetros inválidos no abren una sección por defecto (1.091609ms)
✔ la ficha de puesto tiene ruta propia, conserva el UUID y rechaza identificadores inválidos (0.525204ms)
✔ dominios: enlaces a cuentas y grupos limitados al entorno de la compañía (0.590104ms)
✔ los parámetros de contexto llegan al consumidor sin crear rutas nuevas ni aceptar claves ajenas (0.636505ms)
✔ catálogo de aplicaciones: UUID global y criterios propios sin compañía ficticia (0.468604ms)
✔ catálogo SO: ruta específica y filtros, sin confundir con aplicaciones (0.242002ms)
✔ la barra comienza desplegada sin navegador o sin una preferencia válida (0.300703ms)
✔ plegar y desplegar persisten la preferencia sin modificar otras claves (0.167901ms)
✔ un fallo de lectura, escritura o acceso a localStorage no bloquea la barra (0.175201ms)
✔ la capacidad del shell fuerza modos sin cambiar la preferencia manual (0.197802ms)
✔ un menú solo libera su modalidad si su presentación pasa a estar disponible fija (0.116601ms)
✔ layout 640px: 0 asociados y 0 instalaciones (5.066039ms)
✔ layout 640px: 0 asociados y 3 instalaciones (5.252841ms)
✔ layout 640px: 1 asociados y 0 instalaciones (1.949916ms)
✔ layout 640px: 1 asociados y 2 instalaciones (2.800522ms)
✔ layout 640px: 2 asociados y 3 instalaciones (3.637428ms)
✔ layout 748px: 0 asociados y 0 instalaciones (0.794006ms)
✔ layout 748px: 0 asociados y 3 instalaciones (2.209217ms)
✔ layout 748px: 1 asociados y 0 instalaciones (1.32501ms)
✔ layout 748px: 1 asociados y 2 instalaciones (2.203217ms)
✔ layout 748px: 2 asociados y 3 instalaciones (3.329025ms)
✔ layout 900px: 0 asociados y 0 instalaciones (0.555404ms)
✔ layout 900px: 0 asociados y 3 instalaciones (1.890015ms)
✔ layout 900px: 1 asociados y 0 instalaciones (1.030108ms)
✔ layout 900px: 1 asociados y 2 instalaciones (1.958115ms)
✔ layout 900px: 2 asociados y 3 instalaciones (3.023124ms)
✔ layout 1200px: 0 asociados y 0 instalaciones (0.710706ms)
✔ layout 1200px: 0 asociados y 3 instalaciones (2.236018ms)
✔ layout 1200px: 1 asociados y 0 instalaciones (1.120209ms)
✔ layout 1200px: 1 asociados y 2 instalaciones (2.301317ms)
✔ layout 1200px: 2 asociados y 3 instalaciones (2.930423ms)
✔ layout: dos asociados se reparten por capacidad; sin principal no se fabrican conexiones (3.512227ms)
✔ preview: conserva límites y publica solo cobertura real de fuentes conocidas (0.300702ms)
✔ WD04.4: acción estable de presentación, fuera de las relaciones y contadores, sin solapamientos (55.576631ms)
✔ WD04.5: acciones ordenadas del principal y periférico sin inferir software por categoría (0.872407ms)
✔ WD04.5: lectura sin permisos de edición, carga/error parcial y activos retirados (0.298002ms)
✔ WD04.5: distingue instalación, producto global/inactivo y licencia particular (0.435403ms)
✔ WD04.5: producto particular y gates cerrados no crean acciones administrativas (0.709905ms)
✔ WD04.5: estados terminales, refetch y cambio de principal o compañía no reutilizan acciones antiguas (0.189802ms)
✔ WD04.5: trigger es/en separado del enlace, tarjetas sin acciones y añadir sin menú (8.156964ms)
✔ dashboard: ordenador y equipamiento actuales, personas por perfiles y archivados separados (0.397804ms)
✔ dashboard: sin responsable sigue mostrando usuarios y un puesto desmantelado no cuenta historia como miembros (0.202402ms)
✔ dashboard: sustituir ordenador resuelve perfiles del nuevo host sin trasladar los anteriores (0.164401ms)
✔ dashboard: referencias ajenas o principal fuera de composición no aportan relaciones (0.119201ms)
✔ pendientes: solo pending, perfiles activos, compañía correcta y deduplicación por familia e identidad (0.613705ms)
✔ último cambio: orden cronológico sin mutación, altas de miembros y campos realmente cambiados (0.215102ms)
✔ equipamiento: principal válido primero, miembros únicos y secundarios en orden declarado (0.163001ms)
✔ equipamiento: activos sin principal no adquieren un principal por su tipo o posición (0.160701ms)
✔ equipamiento: principal fuera de composición se advierte sin añadirlo a miembros (0.112601ms)
✔ equipamiento: referencia ausente o de otra compañía no inventa datos ni marca principal (0.213802ms)
✔ equipamiento: vacío y desmantelado no recuperan miembros del historial (0.127101ms)
✔ equipamiento: averiado sigue asignado y conserva ambos estados originales (0.136301ms)
✔ expansión: todos abiertos inicialmente y plegado independiente de cada perfil (0.128801ms)
✔ refetch conserva plegados y filtros individuales, incluso con error o fuentes incompletas (0.122101ms)
✔ retirada o archivo limpia únicamente el estado del perfil afectado (0.088501ms)
✔ cambio de compañía, puesto u ordenador restablece todos los perfiles abiertos y los filtros (0.123401ms)
✔ orden estable y numérico del resumen y los pendientes, sin mutar datos remotos (0.143601ms)
✔ incluye solo perfiles del ordenador principal, distingue inactivos y deduplica personas (0.281003ms)
✔ puesto inexistente o sin composición no hereda perfiles de otros activos (0.196401ms)
✔ persona: responsabilidad y uso son independientes y solo se consideran puestos y perfiles vigentes (0.343002ms)
✔ ficha de puesto es/en: cabecera, retorno, bloques vacíos y edición modal sin formulario incrustado (16.087925ms)
✔ un UUID de puesto ausente muestra no encontrado sin cabecera ni edición de otro puesto (1.341011ms)
✔ ficha de persona es/en: distingue responsabilidad y uso, y enlaza los puestos (1.956716ms)
✔ ficha: ordenador destacado y periféricos sin repetir, perfiles solo del ordenador y personas deduplicadas (26.374705ms)
✔ personas y perfiles: carga y error no se presentan como listados vacíos (5.594643ms)
✔ ficha: no permite crear perfiles si el ordenador está retirado o el puesto está desactivado (29.037025ms)
✔ historial del puesto es/en: revisiones de más reciente a más antigua con autor y valores de cada momento (4.435735ms)
✔ personas es/en: enlaces a todos sus puestos bajo responsabilidad, sin confundirlos con puestos usados (20.126357ms)
✔ menú de compañía es/en: totales en badges alineados y cero real en secciones vacías (16.386228ms)
✔ ruta de activo de compañía abre la página con información, historial, software y solo sus perfiles (75.822589ms)
✔ equipamiento es/en: badges de principal, técnico y uso conservan su significado (5.14184ms)
✔ equipamiento: inventario fallido no se presenta como vacío y permite reintentar (3.230625ms)
✔ equipamiento: principal inconsistente se explica y no se incorpora como miembro válido (2.012815ms)
✔ personas y perfiles es/en: expansión contextual, enlaces independientes y resumen cero real (5.797345ms)
✔ cabecera es/en: responsable largo o ausente, contexto independiente y mapa con resumen (73.704572ms)
✔ perfiles: lista completa y todos desplegados por defecto, incluso con cincuenta perfiles (65.403608ms)
✔ perfiles: carga, error y datos retenidos no publican un total como actual (3.463327ms)
✔ equipamiento: contador conocido cero, uno, cinco y seis; error conserva filas sin publicar total (9.399973ms)
✔ configuración: cobertura desconocida, revisión y notas permanecen fuera del disclosure técnico (2.127716ms)
✔ perfiles: una actualización en curso conserva el total conocido y anuncia la actividad (1.27171ms)
✔ v2.2: dependencia sin principal conserva mapa y resumen y una explicación principal sin tabla vacía (10.768083ms)
✔ v2.2: un vacío confirmado de perfiles conserva el alta y evita cabeceras de una tabla sin filas (0.915007ms)
✔ v2.2: soporte distingue perfiles en carga, error, ausencia confirmada y persona no resuelta (2.074516ms)
✔ v2.2: referencia de principal no resuelta no publica cero pendientes ni ausencia de perfiles (4.727336ms)
✔ v3: Software conserva los tres estados documentales con la misma representación que las familias (20.223157ms)
✔ v3: estados técnicos de equipamiento conservan principal y asignación en es/en (10.818084ms)
✔ responsable es/en: avatar y nombre abren un único popup y la ausencia no ofrece acciones (2.780222ms)
✔ mapa visual: aísla compañías, deduplica miembros y conserva software y estados reales (2.760122ms)
✔ mapa es/en: principal solo, vacíos confirmados y error de software conservan navegación y gestión (31.968549ms)
✔ mapa: composición vacía y sin principal no fabrica relaciones ni instalaciones (0.884007ms)
✔ contexto de persona: rechaza datos de otra compañía y no ofrece acciones (0.537504ms)
✔ mapa es/en: carga inicial y carga parcial mantienen estados accesibles (15.615222ms)
✔ mapa es/en: leyenda con tres conceptos y cobertura explícita sin totales inventados (1.520912ms)
✔ mapa es/en: revisión de software traducida incluso sin referencia navegable (0.999408ms)
✔ WD04.4 es/en: acción autorizada, vacío accionable y lectura sin permiso (4.483635ms)
✔ perfiles del puesto: configuraciones de todos los activos abiertas y destinos accesibles únicos (11.467489ms)
ℹ tests 305
ℹ suites 0
ℹ pass 302
ℹ fail 3
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 5488.410922
✖ failing tests:
test at src/web/companies/shared/companies-page.test.tsx:1:4385
✖ la ficha presenta datos de la compañía, contactos y acceso a sedes (15.284819ms)
AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:
assert.ok(markup.includes("Personas (1)"))
at TestContext.<anonymous> (/home/david/dev/metis-desk/modules/companies/src/web/companies/shared/companies-page.test.tsx:180:10)
at async Test.run (node:internal/test_runner/test:1404:7)
at async Test.processPendingSubtests (node:internal/test_runner/test:969:7) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: false,
expected: true,
operator: '==',
diff: 'simple'
}
test at src/web/companies/shared/companies-page.test.tsx:1:5801
✖ el formulario de persona distingue contactos de cuentas de acceso y permite datos opcionales (3.012124ms)
AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:
assert.ok(markup.includes("Esta persona no tiene acceso a Metis Desk"))
at TestContext.<anonymous> (/home/david/dev/metis-desk/modules/companies/src/web/companies/shared/companies-page.test.tsx:210:10)
at async Test.run (node:internal/test_runner/test:1404:7)
at async Test.processPendingSubtests (node:internal/test_runner/test:969:7) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: false,
expected: true,
operator: '==',
diff: 'simple'
}
test at src/web/software-installations/shared/software.test.tsx:1:2755
✖ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (6.377449ms)
AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:
assert.ok(html.includes("Windows 11 Pro"))
at TestContext.<anonymous> (/home/david/dev/metis-desk/modules/companies/src/web/software-installations/shared/software.test.tsx:126:12)
at async Test.run (node:internal/test_runner/test:1404:7)
at async Test.processPendingSubtests (node:internal/test_runner/test:969:7) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: false,
expected: true,
operator: '==',
diff: 'simple'
}