53 lines
1.4 KiB
PHP
53 lines
1.4 KiB
PHP
<?php
|
||
/**
|
||
* Install tests
|
||
*
|
||
* @package WooCommerce\Admin\Tests
|
||
*/
|
||
|
||
use \Automattic\WooCommerce\Admin\Install;
|
||
|
||
/**
|
||
* Tests for \Automattic\WooCommerce\Admin\Install class.
|
||
*/
|
||
class WC_Admin_Tests_Install extends WP_UnitTestCase {
|
||
|
||
/**
|
||
* Integration test for database table creation.
|
||
*
|
||
* @group database
|
||
*/
|
||
public function test_create_tables() {
|
||
global $wpdb;
|
||
|
||
// Remove the Test Suite’s use of temporary tables https://wordpress.stackexchange.com/a/220308.
|
||
remove_filter( 'query', array( $this, '_create_temporary_tables' ) );
|
||
remove_filter( 'query', array( $this, '_drop_temporary_tables' ) );
|
||
|
||
// List of tables created by Install::create_tables.
|
||
$tables = array(
|
||
"{$wpdb->prefix}wc_order_stats",
|
||
"{$wpdb->prefix}wc_order_product_lookup",
|
||
"{$wpdb->prefix}wc_order_tax_lookup",
|
||
"{$wpdb->prefix}wc_order_coupon_lookup",
|
||
"{$wpdb->prefix}wc_admin_notes",
|
||
"{$wpdb->prefix}wc_admin_note_actions",
|
||
"{$wpdb->prefix}wc_customer_lookup",
|
||
"{$wpdb->prefix}wc_category_lookup",
|
||
);
|
||
|
||
// Remove any existing tables in the environment.
|
||
$query = 'DROP TABLE IF EXISTS ' . implode( ',', $tables );
|
||
$wpdb->query( $query ); // phpcs:ignore.
|
||
|
||
// Try to create the tables.
|
||
Install::create_tables();
|
||
$result = $wpdb->get_col( "SHOW TABLES LIKE '{$wpdb->prefix}%'" );
|
||
|
||
// Check all the tables exist.
|
||
foreach ( $tables as $table ) {
|
||
$this->assertContains( $table, $result );
|
||
}
|
||
}
|
||
}
|