﻿
   FAIL  Tests\Feature\CredentialAndPrivilegesTest
  Γ¿» the credential register lists the seeded rows with derived currency                                          1.31s  
  Γ¿» the credential register filters by derived state                                                             0.90s  
  Γ£ô credential doors are closed to accounts that do not hold them                                                1.60s  
  Γ£ô the hr officer reads and records credentials                                                                 0.98s  
  Γ£ô a credential round trips through record and amend forms                                                      0.90s  
  Γ£ô the expiry cannot precede the issue date                                                                     0.75s  
  Γ£ô a credential number is unique per clinic                                                                     0.74s  
  Γ£ô recording a credential requires its fields                                                                   0.76s  
  Γ£ô another clinics credential does not resolve holding every door                                               0.75s  
  Γ£ô an edition without the staff module cannot open the credential register                                      0.73s  
  Γ£ô a status decision states its reason                                                                          0.78s  
  Γ£ô status decisions are audited and refuse a repeat                                                             0.80s  
  Γ£ô a suspended licence closes the practice doors and restores them                                              1.61s  
  Γ£ô an expired licence removes practice while the status stays active                                            0.81s  
  Γ£ô a certificate never gates practice even when stopped                                                         0.92s  
  Γ£ô a person with no credentials is not restricted                                                               0.85s  
  Γ£ô only licence typed credentials gate                                                                          0.71s  
  Γ£ô the profile reports practice standing from the holds                                                         1.35s  
  Γ£ô the privileges panel reads the live set and is not a side door into grants                                   1.29s  
  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ  
   FAILED  Tests\Feature\CredentialAndPrivilegesTest > the credential register lists the seeded rows with derived cuΓÇª   
  Expected: <!DOCTYPE html>\n
<html lang="en">\n
<head>\n
    <meta charset="utf-8">\n
    <meta name="viewport" content="width=device-width, initial-scale=1">\n
    <meta name="robots" content="noindex, nofollow">\n
    \n
    <meta name="csrf-token" content="MDk6KptRJNtQ8FlT0AYdQNLH3rYakFbMVVgEUQeF">\n
    <title>Credentials ΓÇö BITMED</title>\n
    <script>\n
        // Resolve the theme before first paint so there is no flash of the\n
        // wrong palette. An explicit choice is remembered; otherwise the\n
        // operating-system preference is honoured.\n
        (function () {\n
            try {\n
                var saved = window.localStorage.getItem('bitmed-theme');\n
                if (saved !== 'light' && saved !== 'dark') {\n
                    saved = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n
                }\n
                document.documentElement.setAttribute('data-theme', saved);\n
            } catch (error) {\n
                document.documentElement.setAttribute('data-theme', 'light');\n
            }\n
        })();\n
    </script>\n
    <link rel="preload" href="/assets/fonts/InterVariable.woff2" as="font" type="font/woff2" crossorigin>\n
    <link rel="stylesheet" href="/assets/css/bitmed.css">\n
</head>\n
<body>\n
<a class="skip-link" href="#main-content">Skip to main content</a>\n
\n
<div class="app" data-nav="closed" id="app-shell">\n
    <aside class="app__sidebar" aria-label="Primary navigation">\n
        <a class="app__brand" href="http://127.0.0.1:8000/dashboard">\n
            <span class="app__brand-mark" aria-hidden="true">B</span>\n
            <span class="app__brand-text">\n
                BITMED\n
                <span class="app__brand-sub">\n
                    Lagos Family Clinic\n
                </span>\n
            </span>\n
        </a>\n
\n
        <nav class="app__nav">\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#home"></use></svg>\n
                                                Overview\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/dashboard"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#layout-dashboard"></use></svg>\n
                                                        <span>Dashboard</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/patients"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#users"></use></svg>\n
                                                        <span>Patients</span>\n
                                                    </a>\n
                                    </div>\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#heart-pulse"></use></svg>\n
                                                Care\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/appointments"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#calendar"></use></svg>\n
                                                        <span>Appointments</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/queue"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#list-check"></use></svg>\n
                                                        <span>Queue</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/calendar"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#calendar-days"></use></svg>\n
                                                        <span>Calendar</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/results/deliveries"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#send"></use></svg>\n
                                                        <span>Result deliveries</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/specimens"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#test-tube"></use></svg>\n
                                                        <span>Specimens</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/specimens/process"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#microscope"></use></svg>\n
                                                        <span>Processing &amp; QC</span>\n
                                                    </a>\n
                                    </div>\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#bed"></use></svg>\n
                                                Admission\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/beds"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#bed"></use></svg>\n
                                                        <span>Bed management</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/wards"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#building"></use></svg>\n
                                                        <span>Wards</span>\n
                                                    </a>\n
                                    </div>\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#credit-card"></use></svg>\n
                                                Finance\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/service-tariffs"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#file-text"></use></svg>\n
                                                        <span>Service catalogue</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/product-items"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#package"></use></svg>\n
                                                        <span>Product catalogue</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/invoices"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#file-invoice"></use></svg>\n
                                                        <span>Invoices</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/payment-points"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#credit-card"></use></svg>\n
                                                        <span>Payment points</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/wallets"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#wallet"></use></svg>\n
                                                        <span>Wallets</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/cards"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#credit-card"></use></svg>\n
                                                        <span>Cards</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/payment-adapters"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#terminal"></use></svg>\n
                                                        <span>Payment adapters</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/deposits"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#piggy-bank"></use></svg>\n
                                                        <span>Deposits</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/sponsorships"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#users"></use></svg>\n
                                                        <span>Sponsors</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/refunds"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#rotate-ccw"></use></svg>\n
                                                        <span>Refunds</span>\n
                                                    </a>\n
                                    </div>\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#cog"></use></svg>\n
                                                Operations\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/employees"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#users"></use></svg>\n
                                                        <span>Staff</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/leave"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#calendar-x"></use></svg>\n
                                                        <span>Leave</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/credentials"\n
                            aria-current="page" >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#award"></use></svg>\n
                                                        <span>Credentials</span>\n
                                                    </a>\n
                                    </div>\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#help-circle"></use></svg>\n
                                                Assistance\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/ask"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#bot"></use></svg>\n
                                                        <span>Ask BITMED AI</span>\n
                                                    </a>\n
                                    </div>\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#settings"></use></svg>\n
                                                Setup\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/setup/modules"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#puzzle"></use></svg>\n
                                                        <span>Modules</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/setup/users"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#user-cog"></use></svg>\n
                                                        <span>Users and grants</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/setup/audit"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#history"></use></svg>\n
                                                        <span>Audit trail</span>\n
                                                    </a>\n
                                    </div>\n
                    </nav>\n
\n
        <div class="app__sidebar-foot">\n
            <button class="theme-toggle" type="button" aria-pressed="false">\n
                <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#moon"></use></svg>\n
                <span class="theme-toggle__label">Dark mode</span>\n
            </button>\n
        </div>\n
    </aside>\n
\n
    <div class="app__main">\n
        <header class="app__topbar">\n
            <button class="app__nav-toggle" type="button" aria-expanded="false" aria-controls="app-shell">\n
                <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#menu"></use></svg>\n
                <span>Menu</span>\n
            </button>\n
\n
                            <form class="topbar-search" role="search" method="get" action="http://127.0.0.1:8000/patients">\n
                    <svg class="topbar-search__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#search"></use></svg>\n
                    <label class="visually-hidden" for="topbar-search-input">Search patients</label>\n
                    <input id="topbar-search-input" type="search" name="q" value=""\n
                           placeholder="Search patients by name or MRN" autocomplete="off">\n
                </form>\n
            \n
            <div class="app__topbar-spacer"></div>\n
\n
                            <div class="topbar-actions">\n
                                            <details class="menu add-menu">\n
                            <summary class="btn btn--dark">\n
                                <svg class="btn-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#plus"></use></svg>\n
                                <span>Add</span>\n
                            </summary>\n
                            <div class="menu__panel">\n
                                                                    <a class="menu__item" href="http://127.0.0.1:8000/patients">\n
                                        <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#search"></use></svg>\n
                                        <span>Find a patient</span>\n
                                    </a>\n
                                                            </div>\n
                        </details>\n
                    \n
                    <button class="icon-btn" type="button" aria-disabled="true"\n
                            title="Direct messaging is not part of this build yet.">\n
                        <svg class="icon-btn__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#message"></use></svg>\n
                        <span class="visually-hidden">Messages ΓÇö not available in this build</span>\n
                    </button>\n
\n
                    <button class="icon-btn" type="button" aria-disabled="true"\n
                            title="Notification centre is not part of this build yet.">\n
                        <svg class="icon-btn__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#bell"></use></svg>\n
                        <span class="visually-hidden">Notifications ΓÇö not available in this build</span>\n
                    </button>\n
\n
                    <a class="icon-btn" href="http://127.0.0.1:8000/settings/two-step" title="Account settings">\n
                        <svg class="icon-btn__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#settings"></use></svg>\n
                        <span class="visually-hidden">Account settings</span>\n
                    </a>\n
\n
                                        <details class="menu user-menu">\n
                        <summary class="user-chip">\n
                            <span class="user-avatar" aria-hidden="true">AO</span>\n
                            <span class="user-chip__meta">\n
                                <strong>Amaka Okonkwo</strong>\n
                                <span>Facility administrator</span>\n
                            </span>\n
                            <svg class="user-chip__caret" aria-hidden="true"><use href="/assets/icons/sprite.svg#chevron-down"></use></svg>\n
                        </summary>\n
                        <div class="menu__panel menu__panel--right">\n
                            <div class="menu__header">\n
                                <strong>Amaka Okonkwo</strong>\n
                                <span>admin@lagosfamilyclinic.bitmed.test</span>\n
                                <span class="menu__role">Facility administrator</span>\n
                            </div>\n
                            <a class="menu__item" href="http://127.0.0.1:8000/settings/two-step">\n
                                <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#shield"></use></svg>\n
                                <span>Two-step verification</span>\n
                            </a>\n
                            <a class="menu__item" href="http://127.0.0.1:8000/dashboard">\n
                                <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#home"></use></svg>\n
                                <span>Dashboard</span>\n
                            </a>\n
                            <form method="POST" action="http://127.0.0.1:8000/logout">\n
                                <input type="hidden" name="_token" value="MDk6KptRJNtQ8FlT0AYdQNLH3rYakFbMVVgEUQeF" autocomplete="off">                                <button class="menu__item menu__item--button" type="submit">\n
                                    <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#log-out"></use></svg>\n
                                    <span>Sign out</span>\n
                                </button>\n
                            </form>\n
                        </div>\n
                    </details>\n
                </div>\n
                    </header>\n
\n
        <main class="app__content" id="main-content">\n
            \n
            \n
            <div class="container mt-4">\n
    <div class="page-head mb-3">\n
        <div>\n
            <h1>Credentials</h1>\n
            <p class="lede">\n
                The professional credentials this clinic holds for its staff, and what they mean\n
                for practice right now. Currency is derived ΓÇö <em>expired</em> falls out of the\n
                dates themselves, never a stored flip ΓÇö and only licences gate practice:\n
                certificates and training records are recorded here but never stop anyone.\n
            </p>\n
        </div>\n
        <div class="row" style="gap: .5rem;">\n
            <a href="http://127.0.0.1:8000/employees" class="btn btn--outline">Staff register</a>\n
                            <a href="http://127.0.0.1:8000/credentials/create" class="btn btn--primary">Record credential</a>\n
                    </div>\n
    </div>\n
\n
    \n
    \n
    <p class="hint">\n
        A licence that is expired, suspended or revoked closes this person's\n
        <strong>practice doors</strong> ΓÇö clinical, laboratory, pharmacy and nutrition capabilities ΓÇö\n
        from the moment of the request, while everything they signed before stays exactly as signed.\n
        Restoring the credential (or renewing its date) opens them again.\n
    </p>\n
\n
    <section class="card">\n
        <div class="card__head"><h2>Credential register</h2></div>\n
        <div class="card__body">\n
            <div class="row row--between" style="margin-bottom: 1rem;">\n
                <p class="hint" style="margin: 0;">\n
                    <strong>4</strong> record(s) shown.\n
                                            <strong>1</strong> expiring within 30 days.\n
                                                                <strong>2</strong> expired.\n
                                                                            </p>\n
                <form method="GET" action="http://127.0.0.1:8000/credentials" class="row" style="gap: .5rem;">\n
                    <label for="state" class="sr-only">Filter by currency state</label>\n
                    <select name="state" id="state">\n
                        <option value="">All states</option>\n
                                                    <option value="current" >Current</option>\n
                                                    <option value="expiring" >Expiring soon</option>\n
                                                    <option value="expired" >Expired</option>\n
                                                    <option value="suspended" >Suspended</option>\n
                                                    <option value="revoked" >Revoked</option>\n
                                            </select>\n
                    <button class="btn btn--outline" type="submit">Filter</button>\n
                </form>\n
            </div>\n
\n
                            <div style="overflow-x:auto;">\n
                    <table class="table">\n
                        <caption class="sr-only">Professional credentials held by this clinic</caption>\n
                        <thead>\n
                            <tr>\n
                                <th scope="col">Person</th>\n
                                <th scope="col">Credential</th>\n
                                <th scope="col">Issuing body</th>\n
                                <th scope="col">Issued</th>\n
                                <th scope="col">Expires</th>\n
                                <th scope="col">Practice</th>\n
                                <th scope="col"><span class="sr-only">Actions</span></th>\n
                            </tr>\n
                        </thead>\n
                        <tbody>\n
                                                                                            <tr>\n
                                    <td>\n
                                                                                    <a href="http://127.0.0.1:8000/employees/2">Ngozi Chidinma Eze</a>\n
                                            <div class="muted tnum">EMP-0002</div>\n
                                                                            </td>\n
                                    <td>\n
                                        Certificate\n
                                        <div class="muted tnum">DEMO-BLS-0771</div>\n
                                    </td>\n
                                    <td>Nigerian Resuscitation Council</td>\n
                                    <td class="tnum">18 Oct 2023</td>\n
                                    <td class="tnum">\n
                                                                                    18 Aug 2026\n
                                                                                <div>\n
                                            <span class="badge badge--danger">\n
                                                Expired\n
                                            </span>\n
                                        </div>\n
                                    </td>\n
                                    <td>\n
                                                                                    <span class="muted">Does not gate</span>\n
                                                                            </td>\n
                                    <td>\n
                                        <a class="btn btn--ghost" href="http://127.0.0.1:8000/credentials/2">View</a>\n
                                                                                    <a class="btn btn--ghost" href="http://127.0.0.1:8000/credentials/2/edit">Edit</a>\n
                                                                            </td>\n
                                </tr>\n
                                                                                            <tr>\n
                                    <td>\n
                                                                                    <a href="http://127.0.0.1:8000/employees/9">Femi Ajayi</a>\n
                                            <div class="muted tnum">EMP-0009</div>\n
                                                                            </td>\n
                                    <td>\n
                                        Medical licence\n
                                        <div class="muted tnum">DEMO-MDCN-0917</div>\n
                                    </td>\n
                                    <td>Medical and Dental Council of Nigeria</td>\n
                                    <td class="tnum">18 Oct 2023</td>\n
                                    <td class="tnum">\n
                                                                                    03 Sep 2026\n
                                                                                <div>\n
                                            <span class="badge badge--danger">\n
                                                Expired\n
                                            </span>\n
                                        </div>\n
                                    </td>\n
                                    <td>\n
                                                                                    <span class="badge badge--danger">Practice removed</span>\n
                                                                            </td>\n
                                    <td>\n
                                        <a class="btn btn--ghost" href="http://127.0.0.1:8000/credentials/4">View</a>\n
                                                                                    <a class="btn btn--ghost" href="http://127.0.0.1:8000/credentials/4/edit">Edit</a>\n
                                                                            </td>\n
                                </tr>\n
                                                                                            <tr>\n
                                    <td>\n
                                                                                    <a href="http://127.0.0.1:8000/employees/2">Ngozi Chidinma Eze</a>\n
                                            <div class="muted tnum">EMP-0002</div>\n
                                                                            </td>\n
                                    <td>\n
                                        Medical licence\n
                                        <div class="muted tnum">DEMO-MDCN-1042</div>\n
                                    </td>\n
                                    <td>Medical and Dental Council of Nigeria</td>\n
                                    <td class="tnum">18 Oct 2024</td>\n
                                    <td class="tnum">\n
                                                                                    18 Feb 2027\n
                                                                                <div>\n
                                            <span class="badge badge--success">\n
                                                Current\n
                                            </span>\n
                                        </div>\n
                                    </td>\n
                                    <td>\n
                                                                                    <span class="badge badge--success">Practice clear</span>\n
                                                                            </td>\n
                                    <td>\n
                                        <a class="btn btn--ghost" href="http://127.0.0.1:8000/credentials/1">View</a>\n
                                                                                    <a class="btn btn--ghost" href="http://127.0.0.1:8000/credentials/1/edit">Edit</a>\n
                                                                            </td>\n
                                </tr>\n
                                                                                            <tr>\n
                                    <td>\n
                                                                                    <a href="http://127.0.0.1:8000/employees/3">Halima Yusuf</a>\n
                                            <div class="muted tnum">EMP-0003</div>\n
                                                                            </td>\n
                                    <td>\n
                                        Nursing licence\n
                                        <div class="muted tnum">DEMO-NMCN-2210</div>\n
                                    </td>\n
                                    <td>Nursing and Midwifery Council of Nigeria</td>\n
                                    <td class="tnum">18 Oct 2025</td>\n
                                    <td class="tnum">\n
                                                                                    05 Nov 2026\n
                                                                                <div>\n
                                            <span class="badge badge--warn">\n
                                                Expires in 18 days\n
                                            </span>\n
                                        </div>\n
                                    </td>\n
                                    <td>\n
                                                                                    <span class="badge badge--success">Practice clear</span>\n
                                                                            </td>\n
                                    <td>\n
                                        <a class="btn btn--ghost" href="http://127.0.0.1:8000/credentials/3">View</a>\n
                                                                                    <a class="btn btn--ghost" href="http://127.0.0.1:8000/credentials/3/edit">Edit</a>\n
                                                                            </td>\n
                                </tr>\n
                                                    </tbody>\n
                    </table>\n
                </div>\n
                    </div>\n
    </section>\n
</div>\n
        </main>\n
\n
        <footer class="app__footer">\n
            Synthetic demonstration data only. No real patient records, and no real\n
            payments or notifications are generated by this build.\n
        </footer>\n
    </div>\n
</div>\n
\n
<script>\n
    (function () {\n
        var shell = document.getElementById('app-shell');\n
        var toggle = document.querySelector('.app__nav-toggle');\n
        if (shell && toggle) {\n
            toggle.addEventListener('click', function () {\n
                var open = shell.getAttribute('data-nav') === 'open';\n
                shell.setAttribute('data-nav', open ? 'closed' : 'open');\n
                toggle.setAttribute('aria-expanded', open ? 'false' : 'true');\n
            });\n
        }\n
\n
        // Only one top-bar menu is open at a time.\n
        var menus = Array.prototype.slice.call(document.querySelectorAll('details.menu'));\n
        menus.forEach(function (menu) {\n
            menu.addEventListener('toggle', function () {\n
                if (!menu.open) return;\n
                menus.forEach(function (other) {\n
                    if (other !== menu) other.open = false;\n
                });\n
            });\n
        });\n
\n
        document.addEventListener('click', function (event) {\n
            menus.forEach(function (menu) {\n
                if (menu.open && !menu.contains(event.target)) menu.open = false;\n
            });\n
        });\n
\n
        document.addEventListener('keydown', function (event) {\n
            if (event.key !== 'Escape') return;\n
            if (shell && toggle) {\n
                shell.setAttribute('data-nav', 'closed');\n
                toggle.setAttribute('aria-expanded', 'false');\n
            }\n
            menus.forEach(function (menu) { menu.open = false; });\n
        });\n
\n
        var themeButton = document.querySelector('.theme-toggle');\n
\n
        function syncThemeButton() {\n
            if (!themeButton) return;\n
            var dark = document.documentElement.getAttribute('data-theme') === 'dark';\n
            themeButton.setAttribute('aria-pressed', dark ? 'true' : 'false');\n
            var label = themeButton.querySelector('.theme-toggle__label');\n
            if (label) label.textContent = dark ? 'Light mode' : 'Dark mode';\n
        }\n
\n
        if (themeButton) {\n
            syncThemeButton();\n
            themeButton.addEventListener('click', function () {\n
                var dark = document.documentElement.getAttribute('data-theme') === 'dark';\n
                var next = dark ? 'light' : 'dark';\n
                document.documentElement.setAttribute('data-theme', next);\n
                try {\n
                    window.localStorage.setItem('bitmed-theme', next);\n
                } catch (error) {\n
                    /* Storage may be unavailable; the choice simply does not persist. */\n
                }\n
                syncThemeButton();\n
            });\n
        }\n
    })();\n
</script>\n
</body>\n
</html>\n


  To contain: &lt;strong&gt;4&lt;/strong&gt; record(s) shown

  at tests\Feature\CredentialAndPrivilegesTest.php:106
    102Γûò         $response->assertSee('Does not gate');
    103Γûò         $response->assertSee('Femi Ajayi');
    104Γûò         // Unfiltered, the summary counts every state in the seeded set.
    105Γûò         // (The digits sit in their own <strong>, so assert the markup.)
  Γ₧£ 106Γûò         $response->assertSee('<strong>4</strong> record(s) shown');
    107Γûò         $response->assertSee('<strong>1</strong> expiring within 30 days');
    108Γûò         $response->assertSee('<strong>2</strong> expired.');
    109Γûò     }
    110Γûò

  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ  
   FAILED  Tests\Feature\CredentialAndPrivilegesTest > the credential register filters by derived state                 
  Expected: <!DOCTYPE html>\n
<html lang="en">\n
<head>\n
    <meta charset="utf-8">\n
    <meta name="viewport" content="width=device-width, initial-scale=1">\n
    <meta name="robots" content="noindex, nofollow">\n
    \n
    <meta name="csrf-token" content="IJc0H6TeGJjo61sNdSKLvigrxU2OV1YLkfRewtFU">\n
    <title>Credentials ΓÇö BITMED</title>\n
    <script>\n
        // Resolve the theme before first paint so there is no flash of the\n
        // wrong palette. An explicit choice is remembered; otherwise the\n
        // operating-system preference is honoured.\n
        (function () {\n
            try {\n
                var saved = window.localStorage.getItem('bitmed-theme');\n
                if (saved !== 'light' && saved !== 'dark') {\n
                    saved = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n
                }\n
                document.documentElement.setAttribute('data-theme', saved);\n
            } catch (error) {\n
                document.documentElement.setAttribute('data-theme', 'light');\n
            }\n
        })();\n
    </script>\n
    <link rel="preload" href="/assets/fonts/InterVariable.woff2" as="font" type="font/woff2" crossorigin>\n
    <link rel="stylesheet" href="/assets/css/bitmed.css">\n
</head>\n
<body>\n
<a class="skip-link" href="#main-content">Skip to main content</a>\n
\n
<div class="app" data-nav="closed" id="app-shell">\n
    <aside class="app__sidebar" aria-label="Primary navigation">\n
        <a class="app__brand" href="http://127.0.0.1:8000/dashboard">\n
            <span class="app__brand-mark" aria-hidden="true">B</span>\n
            <span class="app__brand-text">\n
                BITMED\n
                <span class="app__brand-sub">\n
                    Lagos Family Clinic\n
                </span>\n
            </span>\n
        </a>\n
\n
        <nav class="app__nav">\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#home"></use></svg>\n
                                                Overview\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/dashboard"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#layout-dashboard"></use></svg>\n
                                                        <span>Dashboard</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/patients"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#users"></use></svg>\n
                                                        <span>Patients</span>\n
                                                    </a>\n
                                    </div>\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#heart-pulse"></use></svg>\n
                                                Care\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/appointments"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#calendar"></use></svg>\n
                                                        <span>Appointments</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/queue"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#list-check"></use></svg>\n
                                                        <span>Queue</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/calendar"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#calendar-days"></use></svg>\n
                                                        <span>Calendar</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/results/deliveries"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#send"></use></svg>\n
                                                        <span>Result deliveries</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/specimens"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#test-tube"></use></svg>\n
                                                        <span>Specimens</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/specimens/process"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#microscope"></use></svg>\n
                                                        <span>Processing &amp; QC</span>\n
                                                    </a>\n
                                    </div>\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#bed"></use></svg>\n
                                                Admission\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/beds"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#bed"></use></svg>\n
                                                        <span>Bed management</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/wards"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#building"></use></svg>\n
                                                        <span>Wards</span>\n
                                                    </a>\n
                                    </div>\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#credit-card"></use></svg>\n
                                                Finance\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/service-tariffs"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#file-text"></use></svg>\n
                                                        <span>Service catalogue</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/product-items"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#package"></use></svg>\n
                                                        <span>Product catalogue</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/invoices"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#file-invoice"></use></svg>\n
                                                        <span>Invoices</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/payment-points"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#credit-card"></use></svg>\n
                                                        <span>Payment points</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/wallets"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#wallet"></use></svg>\n
                                                        <span>Wallets</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/cards"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#credit-card"></use></svg>\n
                                                        <span>Cards</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/payment-adapters"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#terminal"></use></svg>\n
                                                        <span>Payment adapters</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/deposits"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#piggy-bank"></use></svg>\n
                                                        <span>Deposits</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/sponsorships"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#users"></use></svg>\n
                                                        <span>Sponsors</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/refunds"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#rotate-ccw"></use></svg>\n
                                                        <span>Refunds</span>\n
                                                    </a>\n
                                    </div>\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#cog"></use></svg>\n
                                                Operations\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/employees"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#users"></use></svg>\n
                                                        <span>Staff</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/leave"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#calendar-x"></use></svg>\n
                                                        <span>Leave</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/credentials"\n
                            aria-current="page" >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#award"></use></svg>\n
                                                        <span>Credentials</span>\n
                                                    </a>\n
                                    </div>\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#help-circle"></use></svg>\n
                                                Assistance\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/ask"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#bot"></use></svg>\n
                                                        <span>Ask BITMED AI</span>\n
                                                    </a>\n
                                    </div>\n
                            <div class="app__nav-group">\n
                    <div class="app__nav-heading">\n
                                                    <svg class="app__nav-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#settings"></use></svg>\n
                                                Setup\n
                    </div>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/setup/modules"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#puzzle"></use></svg>\n
                                                        <span>Modules</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/setup/users"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#user-cog"></use></svg>\n
                                                        <span>Users and grants</span>\n
                                                    </a>\n
                                            <a class="app__nav-link"\n
                           href="http://127.0.0.1:8000/setup/audit"\n
                           >\n
                                                            <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#history"></use></svg>\n
                                                        <span>Audit trail</span>\n
                                                    </a>\n
                                    </div>\n
                    </nav>\n
\n
        <div class="app__sidebar-foot">\n
            <button class="theme-toggle" type="button" aria-pressed="false">\n
                <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#moon"></use></svg>\n
                <span class="theme-toggle__label">Dark mode</span>\n
            </button>\n
        </div>\n
    </aside>\n
\n
    <div class="app__main">\n
        <header class="app__topbar">\n
            <button class="app__nav-toggle" type="button" aria-expanded="false" aria-controls="app-shell">\n
                <svg class="app__nav-item-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#menu"></use></svg>\n
                <span>Menu</span>\n
            </button>\n
\n
                            <form class="topbar-search" role="search" method="get" action="http://127.0.0.1:8000/patients">\n
                    <svg class="topbar-search__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#search"></use></svg>\n
                    <label class="visually-hidden" for="topbar-search-input">Search patients</label>\n
                    <input id="topbar-search-input" type="search" name="q" value=""\n
                           placeholder="Search patients by name or MRN" autocomplete="off">\n
                </form>\n
            \n
            <div class="app__topbar-spacer"></div>\n
\n
                            <div class="topbar-actions">\n
                                            <details class="menu add-menu">\n
                            <summary class="btn btn--dark">\n
                                <svg class="btn-icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#plus"></use></svg>\n
                                <span>Add</span>\n
                            </summary>\n
                            <div class="menu__panel">\n
                                                                    <a class="menu__item" href="http://127.0.0.1:8000/patients">\n
                                        <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#search"></use></svg>\n
                                        <span>Find a patient</span>\n
                                    </a>\n
                                                            </div>\n
                        </details>\n
                    \n
                    <button class="icon-btn" type="button" aria-disabled="true"\n
                            title="Direct messaging is not part of this build yet.">\n
                        <svg class="icon-btn__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#message"></use></svg>\n
                        <span class="visually-hidden">Messages ΓÇö not available in this build</span>\n
                    </button>\n
\n
                    <button class="icon-btn" type="button" aria-disabled="true"\n
                            title="Notification centre is not part of this build yet.">\n
                        <svg class="icon-btn__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#bell"></use></svg>\n
                        <span class="visually-hidden">Notifications ΓÇö not available in this build</span>\n
                    </button>\n
\n
                    <a class="icon-btn" href="http://127.0.0.1:8000/settings/two-step" title="Account settings">\n
                        <svg class="icon-btn__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#settings"></use></svg>\n
                        <span class="visually-hidden">Account settings</span>\n
                    </a>\n
\n
                                        <details class="menu user-menu">\n
                        <summary class="user-chip">\n
                            <span class="user-avatar" aria-hidden="true">AO</span>\n
                            <span class="user-chip__meta">\n
                                <strong>Amaka Okonkwo</strong>\n
                                <span>Facility administrator</span>\n
                            </span>\n
                            <svg class="user-chip__caret" aria-hidden="true"><use href="/assets/icons/sprite.svg#chevron-down"></use></svg>\n
                        </summary>\n
                        <div class="menu__panel menu__panel--right">\n
                            <div class="menu__header">\n
                                <strong>Amaka Okonkwo</strong>\n
                                <span>admin@lagosfamilyclinic.bitmed.test</span>\n
                                <span class="menu__role">Facility administrator</span>\n
                            </div>\n
                            <a class="menu__item" href="http://127.0.0.1:8000/settings/two-step">\n
                                <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#shield"></use></svg>\n
                                <span>Two-step verification</span>\n
                            </a>\n
                            <a class="menu__item" href="http://127.0.0.1:8000/dashboard">\n
                                <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#home"></use></svg>\n
                                <span>Dashboard</span>\n
                            </a>\n
                            <form method="POST" action="http://127.0.0.1:8000/logout">\n
                                <input type="hidden" name="_token" value="IJc0H6TeGJjo61sNdSKLvigrxU2OV1YLkfRewtFU" autocomplete="off">                                <button class="menu__item menu__item--button" type="submit">\n
                                    <svg class="menu__icon" aria-hidden="true"><use href="/assets/icons/sprite.svg#log-out"></use></svg>\n
                                    <span>Sign out</span>\n
                                </button>\n
                            </form>\n
                        </div>\n
                    </details>\n
                </div>\n
                    </header>\n
\n
        <main class="app__content" id="main-content">\n
            \n
            \n
            <div class="container mt-4">\n
    <div class="page-head mb-3">\n
        <div>\n
            <h1>Credentials</h1>\n
            <p class="lede">\n
                The professional credentials this clinic holds for its staff, and what they mean\n
                for practice right now. Currency is derived ΓÇö <em>expired</em> falls out of the\n
                dates themselves, never a stored flip ΓÇö and only licences gate practice:\n
                certificates and training records are recorded here but never stop anyone.\n
            </p>\n
        </div>\n
        <div class="row" style="gap: .5rem;">\n
            <a href="http://127.0.0.1:8000/employees" class="btn btn--outline">Staff register</a>\n
                            <a href="http://127.0.0.1:8000/credentials/create" class="btn btn--primary">Record credential</a>\n
                    </div>\n
    </div>\n
\n
    \n
    \n
    <p class="hint">\n
        A licence that is expired, suspended or revoked closes this person's\n
        <strong>practice doors</strong> ΓÇö clinical, laboratory, pharmacy and nutrition capabilities ΓÇö\n
        from the moment of the request, while everything they signed before stays exactly as signed.\n
        Restoring the credential (or renewing its date) opens them again.\n
    </p>\n
\n
    <section class="card">\n
        <div class="card__head"><h2>Credential register</h2></div>\n
        <div class="card__body">\n
            <div class="row row--between" style="margin-bottom: 1rem;">\n
                <p class="hint" style="margin: 0;">\n
                    <strong>2</strong> record(s) shown.\n
                                                                <strong>2</strong> expired.\n
                                                                            </p>\n
                <form method="GET" action="http://127.0.0.1:8000/credentials" class="row" style="gap: .5rem;">\n
                    <label for="state" class="sr-only">Filter by currency state</label>\n
                    <select name="state" id="state">\n
                        <option value="">All states</option>\n
                                                    <option value="current" >Current</option>\n
                                                    <option value="expiring" >Expiring soon</option>\n
                                                    <option value="expired" selected>Expired</option>\n
                                                    <option value="suspended" >Suspended</option>\n
                                                    <option value="revoked" >Revoked</option>\n
                                            </select>\n
                    <button class="btn btn--outline" type="submit">Filter</button>\n
                </form>\n
            </div>\n
\n
                            <div style="overflow-x:auto;">\n
                    <table class="table">\n
                        <caption class="sr-only">Professional credentials held by this clinic</caption>\n
                        <thead>\n
                            <tr>\n
                                <th scope="col">Person</th>\n
                                <th scope="col">Credential</th>\n
                                <th scope="col">Issuing body</th>\n
                                <th scope="col">Issued</th>\n
                                <th scope="col">Expires</th>\n
                                <th scope="col">Practice</th>\n
                                <th scope="col"><span class="sr-only">Actions</span></th>\n
                            </tr>\n
                        </thead>\n
                        <tbody>\n
                                                                                            <tr>\n
                                    <td>\n
                                                                                    <a href="http://127.0.0.1:8000/employees/2">Ngozi Chidinma Eze</a>\n
                                            <div class="muted tnum">EMP-0002</div>\n
                                                                            </td>\n
                                    <td>\n
                                        Certificate\n
                                        <div class="muted tnum">DEMO-BLS-0771</div>\n
                                    </td>\n
                                    <td>Nigerian Resuscitation Council</td>\n
                                    <td class="tnum">18 Oct 2023</td>\n
                                    <td class="tnum">\n
                                                                                    18 Aug 2026\n
                                                                                <div>\n
                                            <span class="badge badge--danger">\n
                                                Expired\n
                                            </span>\n
                                        </div>\n
                                    </td>\n
                                    <td>\n
                                                                                    <span class="muted">Does not gate</span>\n
                                                                            </td>\n
                                    <td>\n
                                        <a class="btn btn--ghost" href="http://127.0.0.1:8000/credentials/2">View</a>\n
                                                                                    <a class="btn btn--ghost" href="http://127.0.0.1:8000/credentials/2/edit">Edit</a>\n
                                                                            </td>\n
                                </tr>\n
                                                                                            <tr>\n
                                    <td>\n
                                                                                    <a href="http://127.0.0.1:8000/employees/9">Femi Ajayi</a>\n
                                            <div class="muted tnum">EMP-0009</div>\n
                                                                            </td>\n
                                    <td>\n
                                        Medical licence\n
                                        <div class="muted tnum">DEMO-MDCN-0917</div>\n
                                    </td>\n
                                    <td>Medical and Dental Council of Nigeria</td>\n
                                    <td class="tnum">18 Oct 2023</td>\n
                                    <td class="tnum">\n
                                                                                    03 Sep 2026\n
                                                                                <div>\n
                                            <span class="badge badge--danger">\n
                                                Expired\n
                                            </span>\n
                                        </div>\n
                                    </td>\n
                                    <td>\n
                                                                                    <span class="badge badge--danger">Practice removed</span>\n
                                                                            </td>\n
                                    <td>\n
                                        <a class="btn btn--ghost" href="http://127.0.0.1:8000/credentials/4">View</a>\n
                                                                                    <a class="btn btn--ghost" href="http://127.0.0.1:8000/credentials/4/edit">Edit</a>\n
                                                                            </td>\n
                                </tr>\n
                                                    </tbody>\n
                    </table>\n
                </div>\n
                    </div>\n
    </section>\n
</div>\n
        </main>\n
\n
        <footer class="app__footer">\n
            Synthetic demonstration data only. No real patient records, and no real\n
            payments or notifications are generated by this build.\n
        </footer>\n
    </div>\n
</div>\n
\n
<script>\n
    (function () {\n
        var shell = document.getElementById('app-shell');\n
        var toggle = document.querySelector('.app__nav-toggle');\n
        if (shell && toggle) {\n
            toggle.addEventListener('click', function () {\n
                var open = shell.getAttribute('data-nav') === 'open';\n
                shell.setAttribute('data-nav', open ? 'closed' : 'open');\n
                toggle.setAttribute('aria-expanded', open ? 'false' : 'true');\n
            });\n
        }\n
\n
        // Only one top-bar menu is open at a time.\n
        var menus = Array.prototype.slice.call(document.querySelectorAll('details.menu'));\n
        menus.forEach(function (menu) {\n
            menu.addEventListener('toggle', function () {\n
                if (!menu.open) return;\n
                menus.forEach(function (other) {\n
                    if (other !== menu) other.open = false;\n
                });\n
            });\n
        });\n
\n
        document.addEventListener('click', function (event) {\n
            menus.forEach(function (menu) {\n
                if (menu.open && !menu.contains(event.target)) menu.open = false;\n
            });\n
        });\n
\n
        document.addEventListener('keydown', function (event) {\n
            if (event.key !== 'Escape') return;\n
            if (shell && toggle) {\n
                shell.setAttribute('data-nav', 'closed');\n
                toggle.setAttribute('aria-expanded', 'false');\n
            }\n
            menus.forEach(function (menu) { menu.open = false; });\n
        });\n
\n
        var themeButton = document.querySelector('.theme-toggle');\n
\n
        function syncThemeButton() {\n
            if (!themeButton) return;\n
            var dark = document.documentElement.getAttribute('data-theme') === 'dark';\n
            themeButton.setAttribute('aria-pressed', dark ? 'true' : 'false');\n
            var label = themeButton.querySelector('.theme-toggle__label');\n
            if (label) label.textContent = dark ? 'Light mode' : 'Dark mode';\n
        }\n
\n
        if (themeButton) {\n
            syncThemeButton();\n
            themeButton.addEventListener('click', function () {\n
                var dark = document.documentElement.getAttribute('data-theme') === 'dark';\n
                var next = dark ? 'light' : 'dark';\n
                document.documentElement.setAttribute('data-theme', next);\n
                try {\n
                    window.localStorage.setItem('bitmed-theme', next);\n
                } catch (error) {\n
                    /* Storage may be unavailable; the choice simply does not persist. */\n
                }\n
                syncThemeButton();\n
            });\n
        }\n
    })();\n
</script>\n
</body>\n
</html>\n


  To contain: &lt;strong&gt;2&lt;/strong&gt; record(s) shown

  at tests\Feature\CredentialAndPrivilegesTest.php:120
    116Γûò         $expired->assertSee('DEMO-BLS-0771');
    117Γûò         $expired->assertDontSee('DEMO-MDCN-1042');
    118Γûò         // The summary describes the rows on screen: with the expiring
    119Γûò         // licence filtered away, the line must not still claim one.
  Γ₧£ 120Γûò         $expired->assertSee('<strong>2</strong> record(s) shown');
    121Γûò         $expired->assertDontSee('expiring within 30 days');
    122Γûò 
    123Γûò         $expiring = $this->actingAs($this->admin)->get('/credentials?state=expiring');
    124Γûò         $expiring->assertOk();


  Tests:    2 failed, 17 passed (129 assertions)
  Duration: 18.77s

