-
Notifications
You must be signed in to change notification settings - Fork 101
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add the VIP Governance plugin to the integrations * Update the config used for seeing if the governance plugin is loaded or not * Add a test for the new vip-governance integration * Leave only the single test that actually tests some functionality * Add a test for the Block Data API as well * Shift the import lines to be in the right order * Add in a test to see if the isloaded method works correctly for both the integrations * Add a code coverage ignore block to the registrations * Remove the extra false loaded check * Switch the isLoad check to not define any constant * Initial rollout safeguard
- Loading branch information
1 parent
f7a70b1
commit 070e9e4
Showing
4 changed files
with
133 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
<?php | ||
/** | ||
* Integration: VIP Governance. | ||
* | ||
* @package Automattic\VIP\Integrations | ||
*/ | ||
|
||
namespace Automattic\VIP\Integrations; | ||
|
||
/** | ||
* Loads VIP Governance. | ||
* | ||
* @private | ||
*/ | ||
class VipGovernanceIntegration extends Integration { | ||
|
||
/** | ||
* The version of the VIP Governance plugin to load, that's set to the latest version. | ||
* This should be higher than the lowestVersion set in "vip-governance" config (https://github.com/Automattic/vip-go-mu-plugins-ext/blob/trunk/config.json) | ||
* | ||
* @var string | ||
*/ | ||
protected string $version = '1.0'; | ||
|
||
/** | ||
* Returns `true` if `VIP Governance` is already available e.g. via customer code. We will use | ||
* this function to prevent activating of integration from platform side. | ||
*/ | ||
public function is_loaded(): bool { | ||
return defined( 'VIP_GOVERNANCE_LOADED' ); | ||
} | ||
|
||
/** | ||
* Applies hooks to load VIP Governance plugin. | ||
* | ||
* @private | ||
*/ | ||
public function load(): void { | ||
// Wait until plugins_loaded to give precedence to the plugin in the customer repo. | ||
add_action( 'plugins_loaded', function () { | ||
// Return if the integration is already loaded. | ||
// | ||
// In activate() method we do make sure to not activate the integration if its already loaded | ||
// but still adding it here as a safety measure i.e. if load() is called directly. | ||
if ( $this->is_loaded() ) { | ||
return; | ||
} | ||
|
||
// Load the version of the plugin that should be set to the latest version, otherwise if it's not found deactivate the integration. | ||
$load_path = WPMU_PLUGIN_DIR . '/vip-integrations/vip-governance-' . $this->version . '/vip-governance.php'; | ||
if ( file_exists( $load_path ) ) { | ||
require_once $load_path; | ||
} else { | ||
$this->is_active = false; | ||
} | ||
} ); | ||
} | ||
|
||
/** | ||
* Configure `VIP Governance` for VIP Platform. | ||
*/ | ||
public function configure(): void {} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<?php | ||
/** | ||
* Test: Block Data API Integration. | ||
* | ||
* @package Automattic\VIP\Integrations | ||
*/ | ||
|
||
namespace Automattic\VIP\Integrations; | ||
|
||
use WP_UnitTestCase; | ||
|
||
// phpcs:disable Squiz.Commenting.ClassComment.Missing, Squiz.Commenting.FunctionComment.Missing, Squiz.Commenting.VariableComment.Missing | ||
|
||
class Block_Data_API_Integration_Test extends WP_UnitTestCase { | ||
private string $slug = 'block-data-api'; | ||
|
||
public function test__load_call_returns_inactive_because_no_block_data_api_plugin_loaded(): void { | ||
$block_data_api_integration = new BlockDataApiIntegration( $this->slug ); | ||
|
||
$block_data_api_integration->load(); | ||
|
||
$this->assertFalse( $block_data_api_integration->is_active() ); | ||
} | ||
|
||
public function test__if_is_loaded_gives_back_true_when_loaded(): void { | ||
$block_data_api_integration = new BlockDataApiIntegration( $this->slug ); | ||
|
||
$this->assertFalse( $block_data_api_integration->is_loaded() ); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<?php | ||
/** | ||
* Test: VIP Governance Integration. | ||
* | ||
* @package Automattic\VIP\Integrations | ||
*/ | ||
|
||
namespace Automattic\VIP\Integrations; | ||
|
||
use WP_UnitTestCase; | ||
|
||
// phpcs:disable Squiz.Commenting.ClassComment.Missing, Squiz.Commenting.FunctionComment.Missing, Squiz.Commenting.VariableComment.Missing | ||
|
||
class VIP_Governance_Integration_Test extends WP_UnitTestCase { | ||
private string $slug = 'vip-governance'; | ||
|
||
public function test__load_call_returns_inactive_because_no_governance_plugin_loaded(): void { | ||
$vip_governance_integration = new VipGovernanceIntegration( $this->slug ); | ||
|
||
$vip_governance_integration->load(); | ||
|
||
$this->assertFalse( $vip_governance_integration->is_active() ); | ||
} | ||
|
||
public function test__if_is_loaded_gives_back_true_when_loaded(): void { | ||
$vip_governance_integration = new VipGovernanceIntegration( $this->slug ); | ||
|
||
$this->assertFalse( $vip_governance_integration->is_loaded() ); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters