Nooloom - Tests unitaires
Request interceptor
ajoute le header Authorization Bearer si un jeton est présent
passed
0.005s
Request interceptor
préfixe l’url avec l’orgId pour une route org-scopée
passed
0.001s
Request interceptor
ne préfixe pas les routes globales (auth, organizations, admin, users, plans)
passed
0.001s
Request interceptor
ne préfixe pas si l’url commence déjà par un orgId
passed
0.001s
Request interceptor
ne préfixe pas les routes single-resource (/workflows/:id)
passed
0s
Request interceptor
ne préfixe pas les POST (sauf /config/test/)
passed
0.001s
Request interceptor
ne préfixe pas si aucun orgId n’est résolu
passed
0.001s
Response interceptor
sur 401 non-public : supprime le jeton et rejette (redirection /login couverte en E2E)
passed
0.016s
Response interceptor
sur 401 route publique (/agents/, /sessions/) : ne supprime pas le jeton
passed
0.002s
Response interceptor
sur erreur non-401 : rejette sans effet de bord
passed
0.001s
Response interceptor
l’intercepteur succès renvoie la réponse telle quelle
passed
0.001s
workflowAPI
extract : lève une erreur si workflowId manquant
passed
0.044s
workflowAPI
extract : string source → { url }
passed
0.002s
workflowAPI
extract : objet source avec url → fusionné
passed
0.001s
workflowAPI
extract : source invalide → erreur
passed
0.001s
workflowAPI
extractGeneric : URL fichier → fileUrl
passed
0.001s
workflowAPI
extractGeneric : URL web → url
passed
0.001s
workflowAPI
extractGeneric : objet avec fileId → fileId
passed
0s
sendStreamMessage
retourne le reader si la réponse est ok
passed
0s
sendStreamMessage
lève une erreur avec le message API si !ok
passed
0s
sendStreamMessage
ajoute le jeton dans les headers si présent
passed
0.001s
fetchUser
sans jeton : non authentifié, authChecked=true
passed
0.037s
fetchUser
avec jeton valide : authentifie l’utilisateur et charge les orgs
passed
0.013s
fetchUser
avec jeton rejeté en 401 : logout (jeton supprimé)
passed
0.008s
actions
logout : vide l’état et le jeton
passed
0.015s
actions
updateSettings : met à jour l’utilisateur en cas de succès
passed
0.015s
actions
deleteAccount : appelle DELETE /auth/me et se déconnecte
passed
0.021s
fetchOrganizations
charge les organisations en cas de succès
passed
0.001s
fetchOrganizations
gère l’échec du fetch
passed
0.001s
createOrganization
crée l’organisation et la définit courante
passed
0.001s
createOrganization
gère l’échec de création
passed
0.001s
switchOrganization
ne fait rien si l’org n’existe pas
passed
0.001s
switchOrganization
définit l’org courante et stocke le nouveau jeton
passed
0.001s
switchOrganization
reste fonctionnel si l’appel échoue
passed
0s
CrawlerSchedule Model
should create a valid schedule
passed
0.004s
CrawlerSchedule Model
should reject missing organizationId
passed
0.003s
CrawlerSchedule Model
should reject missing cronExpression
passed
0.001s
CrawlerSchedule Model
should reject invalid lastRunStatus
passed
0.001s
CrawlerSchedule Model
should accept valid lastRunStatus values
passed
0.002s
CrawlerSchedule Model
should default isActive to true
passed
0.001s
CrawlerSchedule Model
should default runCount to 0
passed
0.001s
CrawlerSchedule Model
should default timezone to UTC
passed
0s
Cron Expression Validation
should accept valid cron expressions
passed
0.001s
Cron Expression Validation
should reject invalid cron expressions
passed
0.005s
OwnerRoute
affiche le contenu si l’utilisateur est owner
passed
0.032s
OwnerRoute
redirige vers le frontoffice si l’utilisateur est simple membre
passed
0.007s
OwnerRoute
redirige vers /login si non authentifié
passed
0.006s
OwnerRoute
affiche un spinner tant que l’organisation n’est pas chargée
passed
0.011s
Workflow & Synthetiser stores
addSynthesis ajoute une synthèse
passed
0.001s
Workflow & Synthetiser stores
updateSynthesis met à jour une synthèse existante
passed
0.001s
Workflow & Synthetiser stores
removeSynthesis supprime une synthèse
passed
0s
Workflow & Synthetiser stores
getSynthesis renvoie la synthèse demandée
passed
0.001s
Workflow & Synthetiser stores
clearCompleted garde les synthèses en cours
passed
0s
Workflow & Synthetiser stores
clearAll vide la liste
passed
0.001s
Workflow & Synthetiser stores
SynthetiserStore suit le même comportement
passed
0.001s
KnowledgeBaseFilterStore
default baseType = real
passed
0s
KnowledgeBaseFilterStore
setBaseType met à jour le type
passed
0s
EntitySidebar
renders the title
passed
0.059s
EntitySidebar
renders items as real links with their href
passed
0.02s
EntitySidebar
filters items via the search input
passed
0.019s
EntitySidebar
renders the backoffice button with create label in createOnly mode
passed
0.017s
EntitySidebar
renders the collapse handle and hides items when collapsed
passed
0.012s
EntitySidebar
shows the empty message when there are no items
passed
0.005s
handleApiError
renvoie le message d’erreur de validation (crawler error: JSON)
passed
0s
handleApiError
parse une erreur crawler avec detail JSON valide (clé message)
passed
0s
handleApiError
gère une erreur de validation (type validation_error) avec plusieurs champs
passed
0s
handleApiError
gère une erreur de validation sans message par champ
passed
0.001s
handleApiError
renvoie le detail string simple
passed
0s
handleApiError
renvoie le message du detail objet
passed
0s
handleApiError
renvoie error.message du detail objet quand pas de message
passed
0.001s
handleApiError
renvoie response.data.message
passed
0s
handleApiError
fallback : Erreur de sauvegarde
passed
0s
handleApiError
detail crawler non parseable → garde le detail brut
passed
0s
EntityPage
renders children
passed
0.007s
EntityPage
passes collapsed=true to the sidebar when an item is selected
passed
0.003s
EntityPage
replie la sidebar mobile à la sélection d'un item (comme desktop)
passed
0.004s
EntityPage
ouvre la sidebar mobile quand aucun item n'est sélectionné
passed
0.003s
EntityPage
passes collapsed=false when no item is selected
passed
0.003s
computeHash
returns same hash for same string input
passed
0s
computeHash
returns different hash for different inputs
passed
0s
computeHash
handles empty string
passed
0s
computeHash
handles null and undefined
passed
0s
computeHash
handles objects
passed
0s
computeHash
produces SHA-256 length (64 hex chars)
passed
0.008s
buildKey
builds key with level and parts
passed
0.001s
buildKey
builds key with single part
passed
0s
buildKey
handles multiple parts
passed
0s
buildKey
filters out falsy parts
passed
0s
buildKey
converts numbers to strings
passed
0s
BackofficeEntityPage
renders children
passed
0.007s
BackofficeEntityPage
replie la sidebar à la sélection d'un item
passed
0.002s
BackofficeEntityPage
ouvre la sidebar quand aucun item n'est sélectionné
passed
0.002s
BackofficeEntityPage
fournit le gestionnaire de repli à la sidebar
passed
0.002s
getOrganizationId
renvoie l’id du store courant s’il est défini
passed
0.002s
getOrganizationId
fallback : extrait l’orgId depuis l’URL (premier segment hexa 24)
passed
0.001s
getOrganizationId
retourne null si le premier segment URL n’est pas un orgId hexa
passed
0s
getOrganizationId
retourne null si rien n’est résolu
passed
0.001s
ItemRecap
renders name and description
passed
0.008s
ItemRecap
renders meta content
passed
0.002s
ItemRecap
renders actions at the far right
passed
0.028s
ItemRecap
does not render description when absent
passed
0.002s