Skip to content

Commit bc39169

Browse files
test updates
1 parent 03be585 commit bc39169

1 file changed

Lines changed: 34 additions & 29 deletions

File tree

tests/phpunit/tests/connectors/wpRegisterDefaultConnectorSettings.php

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?php
22

3+
require_once dirname( __DIR__, 2 ) . '/includes/wp-ai-client-mock-provider-trait.php';
4+
35
/**
46
* Tests for _wp_register_default_connector_settings().
57
*
@@ -8,6 +10,8 @@
810
*/
911
class Tests_Connectors_WpRegisterDefaultConnectorSettings extends WP_UnitTestCase {
1012

13+
use WP_AI_Client_Mock_Provider_Trait;
14+
1115
/**
1216
* Original connector registry instance.
1317
*
@@ -16,53 +20,66 @@ class Tests_Connectors_WpRegisterDefaultConnectorSettings extends WP_UnitTestCas
1620
private ?WP_Connector_Registry $original_registry;
1721

1822
/**
19-
* Setting names touched during a test.
23+
* Snapshot of registered settings before each test.
2024
*
21-
* @var string[]
25+
* @var array
26+
*/
27+
private array $original_registered_settings = array();
28+
29+
/**
30+
* Registers the mock provider once before any tests in this class run.
31+
*/
32+
public static function set_up_before_class(): void {
33+
parent::set_up_before_class();
34+
self::register_mock_connectors_provider();
35+
}
36+
37+
/**
38+
* Unregisters the mock provider setting added by `init`.
2239
*/
23-
private array $touched_settings = array();
40+
public static function tear_down_after_class(): void {
41+
self::unregister_mock_connector_setting();
42+
parent::tear_down_after_class();
43+
}
2444

2545
/**
26-
* Stores the original registry before each test.
46+
* Stores the original registry and settings before each test.
2747
*/
2848
public function set_up(): void {
2949
parent::set_up();
3050
$this->original_registry = WP_Connector_Registry::get_instance();
51+
52+
global $wp_registered_settings;
53+
$this->original_registered_settings = $wp_registered_settings;
3154
}
3255

3356
/**
34-
* Restores the original registry and connector settings after each test.
57+
* Restores the original registry and registered settings after each test.
3558
*/
3659
public function tear_down(): void {
37-
foreach ( array_unique( $this->touched_settings ) as $setting_name ) {
38-
unregister_setting( 'connectors', $setting_name );
39-
}
60+
global $wp_registered_settings;
61+
$wp_registered_settings = $this->original_registered_settings;
4062

4163
$this->set_registry_instance( $this->original_registry );
4264

43-
if ( null !== $this->original_registry ) {
44-
_wp_register_default_connector_settings();
45-
}
46-
4765
parent::tear_down();
4866
}
4967

5068
/**
5169
* @ticket 64730
5270
*/
5371
public function test_ai_connector_settings_still_auto_register(): void {
54-
$setting_name = 'connectors_ai_openai_api_key';
55-
$this->touch_setting( $setting_name );
72+
$setting_name = 'connectors_ai_mock_connectors_test_api_key';
5673
unregister_setting( 'connectors', $setting_name );
5774

58-
$openai = wp_get_connector( 'openai' );
59-
$this->assertIsArray( $openai );
75+
$mock = wp_get_connector( 'mock-connectors-test' );
76+
$this->assertIsArray( $mock );
6077

6178
$registry = new WP_Connector_Registry();
6279
$this->set_registered_connectors(
6380
$registry,
6481
array(
65-
'openai' => $openai,
82+
'mock-connectors-test' => $mock,
6683
)
6784
);
6885
$this->set_registry_instance( $registry );
@@ -77,7 +94,6 @@ public function test_ai_connector_settings_still_auto_register(): void {
7794
*/
7895
public function test_non_ai_connector_settings_auto_register_when_plugin_is_active_returns_true(): void {
7996
$setting_name = 'connectors_spam_filtering_test_active_api_key';
80-
$this->touch_setting( $setting_name );
8197

8298
$registry = $this->create_non_ai_registry(
8399
'test-active',
@@ -98,7 +114,6 @@ static function (): bool {
98114
*/
99115
public function test_non_ai_connector_settings_do_not_auto_register_when_plugin_is_active_missing(): void {
100116
$setting_name = 'connectors_spam_filtering_test_missing_api_key';
101-
$this->touch_setting( $setting_name );
102117

103118
$registry = $this->create_non_ai_registry( 'test-missing', $setting_name );
104119
$this->set_registry_instance( $registry );
@@ -113,7 +128,6 @@ public function test_non_ai_connector_settings_do_not_auto_register_when_plugin_
113128
*/
114129
public function test_non_ai_connector_settings_do_not_auto_register_when_plugin_is_active_returns_false(): void {
115130
$setting_name = 'connectors_spam_filtering_test_inactive_api_key';
116-
$this->touch_setting( $setting_name );
117131

118132
$registry = $this->create_non_ai_registry(
119133
'test-inactive',
@@ -134,7 +148,6 @@ static function (): bool {
134148
*/
135149
public function test_non_ai_connector_settings_do_not_auto_register_when_plugin_is_active_not_callable(): void {
136150
$setting_name = 'connectors_spam_filtering_test_invalid_api_key';
137-
$this->touch_setting( $setting_name );
138151

139152
$registry = $this->create_non_ai_registry( 'test-invalid', $setting_name, 'not_a_callback' );
140153
$this->set_registry_instance( $registry );
@@ -226,12 +239,4 @@ private function set_registry_instance( ?WP_Connector_Registry $registry ): void
226239
$property->setValue( null, $registry );
227240
}
228241

229-
/**
230-
* Tracks a setting name for cleanup.
231-
*
232-
* @param string $setting_name Setting name.
233-
*/
234-
private function touch_setting( string $setting_name ): void {
235-
$this->touched_settings[] = $setting_name;
236-
}
237242
}

0 commit comments

Comments
 (0)