From 11b10e1c94166eec18666eb5e4859186149055d3 Mon Sep 17 00:00:00 2001
From: Erick Hitter <git-contrib@ethitter.com>
Date: Sat, 11 Jun 2022 21:26:03 -0700
Subject: [PATCH] Test coverage

---
 ...external-permalinks-redux-block-editor.php | 94 ++++++++++++++++++-
 1 file changed, 91 insertions(+), 3 deletions(-)

diff --git a/tests/test-class-external-permalinks-redux-block-editor.php b/tests/test-class-external-permalinks-redux-block-editor.php
index ed460ad..c64613d 100644
--- a/tests/test-class-external-permalinks-redux-block-editor.php
+++ b/tests/test-class-external-permalinks-redux-block-editor.php
@@ -17,7 +17,43 @@ class TestClassExternalPermalinksReduxBlockEditor extends WP_UnitTestCase {
 	 * @covers ::register_meta()
 	 */
 	public function test_register_meta() {
-		$this->markTestIncomplete( 'This test has not been implemented.' );
+		global $wp_meta_keys;
+
+		$wp_meta_keys = null;
+
+		$this->assertFalse(
+			registered_meta_key_exists(
+				'post',
+				external_permalinks_redux::get_instance()->meta_key_target
+			),
+			'Failed to assert that "target" meta key is not registered.'
+		);
+
+		$this->assertFalse(
+			registered_meta_key_exists(
+				'post',
+				external_permalinks_redux::get_instance()->meta_key_type
+			),
+			'Failed to assert that "type" meta key is not registered.'
+		);
+
+		External_Permalinks_Redux_Block_Editor::get_instance()->register_meta();
+
+		$this->assertTrue(
+			registered_meta_key_exists(
+				'post',
+				external_permalinks_redux::get_instance()->meta_key_target
+			),
+			'Failed to assert that "target" meta key is registered.'
+		);
+
+		$this->assertTrue(
+			registered_meta_key_exists(
+				'post',
+				external_permalinks_redux::get_instance()->meta_key_type
+			),
+			'Failed to assert that "type" meta key is registered.'
+		);
 	}
 
 	/**
@@ -26,7 +62,41 @@ class TestClassExternalPermalinksReduxBlockEditor extends WP_UnitTestCase {
 	 * @covers ::allow_meta_updates()
 	 */
 	public function test_allow_meta_updates() {
-		$this->markTestIncomplete( 'This test has not been implemented.' );
+		$this->assertTrue(
+			External_Permalinks_Redux_Block_Editor::get_instance()->allow_meta_updates(
+				true,
+				'_a_random_key',
+				'term'
+			),
+			'Failed to assert that a term\'s key is not modified..'
+		);
+
+		$this->assertTrue(
+			External_Permalinks_Redux_Block_Editor::get_instance()->allow_meta_updates(
+				true,
+				'_a_random_key',
+				'post'
+			),
+			'Failed to assert that unrelated key\'s protection is not modified.'
+		);
+
+		$this->assertFalse(
+			External_Permalinks_Redux_Block_Editor::get_instance()->allow_meta_updates(
+				true,
+				external_permalinks_redux::get_instance()->meta_key_target,
+				'post'
+			),
+			'Failed to assert that "target" key is not protected.'
+		);
+
+		$this->assertFalse(
+			External_Permalinks_Redux_Block_Editor::get_instance()->allow_meta_updates(
+				true,
+				external_permalinks_redux::get_instance()->meta_key_type,
+				'post'
+			),
+			'Failed to assert that "type" key is not protected.'
+		);
 	}
 
 	/**
@@ -35,6 +105,24 @@ class TestClassExternalPermalinksReduxBlockEditor extends WP_UnitTestCase {
 	 * @covers ::enqueue()
 	 */
 	public function test_enqueue() {
-		$this->markTestIncomplete( 'This test has not been implemented.' );
+		$asset_handle = $asset_handle = 'external-permalinks-redux';
+
+		$this->assertFalse(
+			wp_script_is( $asset_handle, 'enqueued' ),
+			'Failed to assert that script is not enqueued.'
+		);
+
+		External_Permalinks_Redux_Block_Editor::get_instance()->enqueue();
+
+		$this->assertTrue(
+			wp_script_is( $asset_handle, 'enqueued' ),
+			'Failed to assert that script is enqueued.'
+		);
+
+		$this->assertStringContainsString(
+			'externalPermalinksReduxConfig',
+			wp_scripts()->get_data( $asset_handle, 'data' ),
+			'Failed to assert that configuration data is added.'
+		);
 	}
 }
-- 
GitLab