102 lines
2.9 KiB
MySQL
102 lines
2.9 KiB
MySQL
|
|
begin;
|
||
|
|
select plan(17);
|
||
|
|
|
||
|
|
-- ============================================================================
|
||
|
|
-- Table Existence
|
||
|
|
-- ============================================================================
|
||
|
|
|
||
|
|
SELECT has_table('public', 'apple_customers', 'apple_customers table should exist');
|
||
|
|
SELECT has_table('public', 'apple_subscriptions', 'apple_subscriptions table should exist');
|
||
|
|
SELECT has_table(
|
||
|
|
'public',
|
||
|
|
'apple_subscription_events',
|
||
|
|
'apple_subscription_events table should exist'
|
||
|
|
);
|
||
|
|
|
||
|
|
-- ============================================================================
|
||
|
|
-- Column Coverage
|
||
|
|
-- ============================================================================
|
||
|
|
|
||
|
|
SELECT has_column('public', 'apple_customers', 'user_id', 'apple_customers should have user_id');
|
||
|
|
SELECT has_column(
|
||
|
|
'public',
|
||
|
|
'apple_customers',
|
||
|
|
'revenuecat_app_user_id',
|
||
|
|
'apple_customers should have revenuecat_app_user_id'
|
||
|
|
);
|
||
|
|
SELECT has_column(
|
||
|
|
'public',
|
||
|
|
'apple_subscriptions',
|
||
|
|
'owner_user_id',
|
||
|
|
'apple_subscriptions should have owner_user_id'
|
||
|
|
);
|
||
|
|
SELECT has_column(
|
||
|
|
'public',
|
||
|
|
'apple_subscriptions',
|
||
|
|
'original_transaction_id',
|
||
|
|
'apple_subscriptions should have original_transaction_id'
|
||
|
|
);
|
||
|
|
SELECT has_column(
|
||
|
|
'public',
|
||
|
|
'apple_subscription_events',
|
||
|
|
'event_id',
|
||
|
|
'apple_subscription_events should have event_id'
|
||
|
|
);
|
||
|
|
|
||
|
|
-- ============================================================================
|
||
|
|
-- Primary Keys + Constraints
|
||
|
|
-- ============================================================================
|
||
|
|
|
||
|
|
SELECT has_pk('public', 'apple_customers', 'apple_customers should have primary key');
|
||
|
|
SELECT has_pk('public', 'apple_subscriptions', 'apple_subscriptions should have primary key');
|
||
|
|
SELECT has_pk(
|
||
|
|
'public',
|
||
|
|
'apple_subscription_events',
|
||
|
|
'apple_subscription_events should have primary key'
|
||
|
|
);
|
||
|
|
|
||
|
|
SELECT has_index(
|
||
|
|
'public',
|
||
|
|
'apple_customers',
|
||
|
|
'apple_customers_user_id_key',
|
||
|
|
'apple_customers.user_id unique constraint should exist'
|
||
|
|
);
|
||
|
|
SELECT has_index(
|
||
|
|
'public',
|
||
|
|
'apple_customers',
|
||
|
|
'apple_customers_revenuecat_app_user_id_key',
|
||
|
|
'apple_customers.revenuecat_app_user_id unique constraint should exist'
|
||
|
|
);
|
||
|
|
SELECT has_index(
|
||
|
|
'public',
|
||
|
|
'apple_subscriptions',
|
||
|
|
'apple_subscriptions_original_transaction_id_key',
|
||
|
|
'apple_subscriptions.original_transaction_id unique constraint should exist'
|
||
|
|
);
|
||
|
|
|
||
|
|
-- ============================================================================
|
||
|
|
-- Performance Indexes
|
||
|
|
-- ============================================================================
|
||
|
|
|
||
|
|
SELECT has_index(
|
||
|
|
'public',
|
||
|
|
'apple_subscriptions',
|
||
|
|
'idx_apple_subscriptions_owner_user_id',
|
||
|
|
'apple_subscriptions owner_user_id index should exist'
|
||
|
|
);
|
||
|
|
SELECT has_index(
|
||
|
|
'public',
|
||
|
|
'apple_subscriptions',
|
||
|
|
'idx_apple_subscriptions_status',
|
||
|
|
'apple_subscriptions status index should exist'
|
||
|
|
);
|
||
|
|
SELECT has_index(
|
||
|
|
'public',
|
||
|
|
'apple_subscriptions',
|
||
|
|
'idx_apple_subscriptions_current_period_end',
|
||
|
|
'apple_subscriptions current_period_end index should exist'
|
||
|
|
);
|
||
|
|
|
||
|
|
select * from finish();
|
||
|
|
rollback;
|