feat: render admin settings workflow
This commit is contained in:
@@ -30,8 +30,33 @@ class DashboardTemplateTest extends TestCase {
|
||||
self::assertStringContainsString( 'The package JSON file was validated successfully.', $output );
|
||||
}
|
||||
|
||||
private function renderDashboard(): string {
|
||||
$settings = Settings::fromArray( array() );
|
||||
public function test_it_renders_settings_form_with_nonce_and_escaped_pair_values(): void {
|
||||
$settings = Settings::fromArray(
|
||||
array(
|
||||
'sync_pairs' => array(
|
||||
array(
|
||||
'name' => '<b>Staging</b>',
|
||||
'source_url' => 'https://example.test',
|
||||
'destination_url' => 'https://staging.example.test',
|
||||
'username' => 'codex',
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
$output = $this->renderDashboard( $settings );
|
||||
|
||||
self::assertStringContainsString( 'action="https://example.test/wp-admin/admin-post.php"', $output );
|
||||
self::assertStringContainsString( 'name="action" value="wpcs_save_settings"', $output );
|
||||
self::assertStringContainsString( 'name="wpcs_settings_nonce"', $output );
|
||||
self::assertStringContainsString( 'Staging', $output );
|
||||
self::assertStringNotContainsString( '<b>Staging</b>', $output );
|
||||
self::assertStringContainsString( 'name="wpcs_settings[sync_pairs][0][application_password]"', $output );
|
||||
self::assertStringContainsString( 'name="wpcs_settings[sync_pairs][0][url_mappings][0][source]"', $output );
|
||||
}
|
||||
|
||||
private function renderDashboard( ?Settings $settings = null ): string {
|
||||
$settings = $settings ?? Settings::fromArray( array() );
|
||||
|
||||
ob_start();
|
||||
include WPCS_PLUGIN_DIR . 'templates/admin/dashboard.php';
|
||||
|
||||
Reference in New Issue
Block a user