devsofttech_hms_ci4/tests/unit/HospitalProfileWallpaperTest.php

111 lines
4.8 KiB
PHP

<?php
namespace Tests\Unit;
use CodeIgniter\Test\CIUnitTestCase;
/**
* @internal
*/
final class HospitalProfileWallpaperTest extends CIUnitTestCase
{
protected function setUp(): void
{
parent::setUp();
helper('common');
helper('setting');
$db = \Config\Database::connect();
$db->query("CREATE TABLE IF NOT EXISTS db_hospital_setting (id INTEGER PRIMARY KEY AUTOINCREMENT, s_name TEXT, s_value TEXT)");
$db->query("CREATE TABLE IF NOT EXISTS db_settings (id INTEGER PRIMARY KEY AUTOINCREMENT, class TEXT, key TEXT, value TEXT, type TEXT, context TEXT, created_at TEXT, updated_at TEXT)");
}
public function testHospitalProfileViewContainsWallpaperControls(): void
{
$viewData = [
'hospital_name' => 'City Hospital',
'hospital_address_1' => '123 Medical Road',
'hospital_address_2' => 'Civil Lines',
'hospital_phone' => '9876543210',
'hospital_email' => 'admin@cityhospital.in',
'hospital_hfr_id' => 'IN0510000871',
'footer_version' => '2026.01',
'hospital_logo' => 'test_logo.png',
'hospital_logo_url' => 'http://localhost:8080/assets/images/test_logo.png',
'hospital_wallpaper' => 'test_wallpaper.jpg',
'hospital_wallpaper_url' => 'http://localhost:8080/assets/images/test_wallpaper.jpg',
'pharmacy_name' => 'City Hospital Pharmacy',
'pharmacy_address' => 'Ground Floor',
'pharmacy_phone' => '9876543211',
'pharmacy_gst' => '05ABIPR7922F1ZJ',
'pharmacy_logo' => '',
'pharmacy_logo_url' => '',
'sidebar_auto_hide_seconds' => '7',
'allow_image_preupload_edit' => '0',
];
$html = view('Setting/Admin/hospital_profile', $viewData);
$this->assertStringContainsString('id="hospital_wallpaper"', $html);
$this->assertStringContainsString('id="hospital_wallpaper_preview"', $html);
$this->assertStringContainsString('id="btn_hospital_wallpaper_delete"', $html);
$this->assertStringContainsString('test_wallpaper.jpg', $html);
$this->assertStringContainsString('renderWallpaper', $html);
}
public function testLoginSettingsViewRendersAllConfigurationControls(): void
{
$viewData = [
'login_panel_position' => 'left',
'login_hero_theme' => 'light',
'login_logo_style' => '3d_box',
'login_hero_overlay' => 'dark',
'login_show_subtitle' => '1',
'login_show_contact_meta' => '1',
'login_show_pwa_card' => '1',
'hospital_wallpaper' => 'hospital_wallpaper_soft_teal_leaves.jpg',
'hospital_wallpaper_url' => 'http://localhost:8080/assets/images/hospital_wallpaper_soft_teal_leaves.jpg',
'presets' => [
[
'file' => 'hospital_wallpaper_20261027_203745_bf800456.jpg',
'title' => 'Client Deep Teal',
'subtitle' => 'Original curated rich hospital theme',
'tag' => 'Active Default',
'url' => 'http://localhost:8080/assets/images/hospital_wallpaper_20261027_203745_bf800456.jpg',
],
],
'hospital_logo' => 'logo.png',
'hospital_logo_url' => 'http://localhost:8080/assets/images/logo.png',
'hospital_name' => 'Johri Hospital',
];
$html = view('Setting/Admin/login_settings', $viewData);
// Layout position controls
$this->assertStringContainsString('name="login_panel_position"', $html);
$this->assertStringContainsString('value="left"', $html);
$this->assertStringContainsString('value="center"', $html);
$this->assertStringContainsString('value="right"', $html);
// Logo style controls
$this->assertStringContainsString('name="login_logo_style"', $html);
$this->assertStringContainsString('value="3d_box"', $html);
$this->assertStringContainsString('value="glass"', $html);
$this->assertStringContainsString('value="transparent"', $html);
// Typography theme & overlay
$this->assertStringContainsString('name="login_hero_theme"', $html);
$this->assertStringContainsString('name="login_hero_overlay"', $html);
// Feature switches
$this->assertStringContainsString('name="login_show_subtitle"', $html);
$this->assertStringContainsString('name="login_show_contact_meta"', $html);
$this->assertStringContainsString('name="login_show_pwa_card"', $html);
// Presets and save button
$this->assertStringContainsString('Client Deep Teal', $html);
$this->assertStringContainsString('id="btn_save_login_settings"', $html);
}
}