<?php namespace WP_Ultimo\Admin_Pages; use WP_UnitTestCase; class Dashboard_Admin_Page_Test extends WP_UnitTestCase { /** * Test the register_scripts method enqueues the necessary scripts and styles. */ public function test_register_scripts(): void { // Create a mock instance of Dashboard_Admin_Page and call the register_scripts method $dashboard_admin_page = $this->getMockBuilder(Dashboard_Admin_Page::class) ->disableOriginalConstructor() ->setMethods(['output']) ->getMock(); // Fake dates for testing $dashboard_admin_page->start_date = '2023-01-01'; $dashboard_admin_page->end_date = '2023-01-31'; // Execute register_scripts method $dashboard_admin_page->register_scripts(); // Assert scripts are registered $this->assertTrue(wp_script_is('wu-apex-charts', 'registered')); $this->assertTrue(wp_script_is('wu-vue-apex-charts', 'registered')); $this->assertTrue(wp_script_is('wu-dashboard-stats', 'registered')); // Assert styles are registered $this->assertTrue(wp_style_is('wu-apex-charts', 'registered')); // Assert scripts are enqueued $this->assertTrue(wp_script_is('wu-dashboard-stats', 'enqueued')); // Verify localized script data is correct $localized_vars = wp_scripts()->get_data('wu-dashboard-stats', 'data'); echo($localized_vars); $this->assertStringContainsString('"month_list":["Jan ', $localized_vars); $this->assertStringContainsString('"today":"', $localized_vars); // Check that today is included $this->assertStringContainsString('"new_mrr":"New MRR"', $localized_vars); } }