Skip to content

Commit 2f2f968

Browse files
committed
Add maria db support and write tests
1 parent 2260a6d commit 2f2f968

File tree

2 files changed

+40
-2
lines changed

2 files changed

+40
-2
lines changed

tests/tests/TestBehatTags.php

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use WP_CLI\Utils;
77
use PHPUnit\Framework\Attributes\DataProvider;
88

9+
// phpcs:ignore Universal.Files.SeparateFunctionsFromOO.Mixed
910
class TestBehatTags extends TestCase {
1011

1112
/**
@@ -192,4 +193,42 @@ public function test_behat_tags_extension(): void {
192193

193194
putenv( false === $env_github_token ? 'GITHUB_TOKEN' : "GITHUB_TOKEN=$env_github_token" );
194195
}
196+
197+
public function test_behat_tags_db_version(): void {
198+
$db_type = getenv( 'WP_CLI_TEST_DBTYPE' );
199+
200+
$behat_tags = dirname( dirname( __DIR__ ) ) . '/utils/behat-tags.php';
201+
require $behat_tags;
202+
$minimum_db_version = get_db_version() . '.1';
203+
204+
$contents = '';
205+
$expecteds = array();
206+
207+
switch ( $db_type ) {
208+
case 'mariadb':
209+
$contents = "@require-mariadb-$minimum_db_version";
210+
$expecteds[] = "~@require-mariadb-$minimum_db_version";
211+
$expecteds[] = '~@require-mysql';
212+
$expecteds[] = '~@require-sqlite';
213+
break;
214+
case 'sqlite':
215+
$expecteds[] = '~@require-mariadb';
216+
$expecteds[] = '~@require-mysql';
217+
$expecteds[] = '~@require-mysql-or-mariadb';
218+
break;
219+
case 'mysql':
220+
default:
221+
$contents = "@require-mysql-$minimum_db_version";
222+
$expecteds[] = "@require-mysql-$minimum_db_version";
223+
$expecteds[] = '~@require-mariadb';
224+
$expecteds[] = '~@require-sqlite';
225+
break;
226+
}
227+
228+
file_put_contents( $this->temp_dir . '/features/extension.feature', $contents );
229+
230+
$expected = '--tags=' . implode( '&&', $expecteds );
231+
$output = exec( "cd {$this->temp_dir}; php $behat_tags" );
232+
$this->assertSame( $expected, $output );
233+
}
195234
}

utils/behat-tags.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,7 @@ function get_db_version() {
8686

8787
switch ( getenv( 'WP_CLI_TEST_DBTYPE' ) ) {
8888
case 'mariadb':
89-
$skip_tags[] = '@require-mysql';
90-
$skip_tags[] = '@require-sqlite';
89+
$skip_tags = array_merge( $skip_tags, [ '@require-mysql', '@require-sqlite' ], version_tags( 'require-mariadb', get_db_version(), '<', $features_folder ) );
9190
break;
9291
case 'sqlite':
9392
$skip_tags[] = '@require-mariadb';

0 commit comments

Comments
 (0)