chatdesk-ui/postgres_15.8.1.044/ebssurrogate/files/unit-tests/unit-test-01.sql

64 lines
1.8 KiB
PL/PgSQL

BEGIN;
CREATE EXTENSION IF NOT EXISTS pgtap;
DO $$
DECLARE
extension_array text[];
orioledb_available boolean;
BEGIN
-- Check if orioledb is available
SELECT EXISTS (
SELECT 1 FROM pg_available_extensions WHERE name = 'orioledb'
) INTO orioledb_available;
-- If available, create it and add to the expected extensions list
IF orioledb_available THEN
CREATE EXTENSION IF NOT EXISTS orioledb;
extension_array := ARRAY[
'plpgsql',
'pg_stat_statements',
'pgsodium',
'pgtap',
'pg_graphql',
'pgcrypto',
'pgjwt',
'uuid-ossp',
'supabase_vault',
'orioledb'
];
ELSE
extension_array := ARRAY[
'plpgsql',
'pg_stat_statements',
'pgsodium',
'pgtap',
'pg_graphql',
'pgcrypto',
'pgjwt',
'uuid-ossp',
'supabase_vault'
];
END IF;
-- Set the array as a temporary variable to use in the test
PERFORM set_config('myapp.extensions', array_to_string(extension_array, ','), false);
END $$;
SELECT plan(8);
SELECT extensions_are(
string_to_array(current_setting('myapp.extensions'), ',')::text[]
);
SELECT has_schema('pg_toast');
SELECT has_schema('pg_catalog');
SELECT has_schema('information_schema');
SELECT has_schema('public');
SELECT function_privs_are('pgsodium', 'crypto_aead_det_decrypt', array['bytea', 'bytea', 'uuid', 'bytea'], 'service_role', array['EXECUTE']);
SELECT function_privs_are('pgsodium', 'crypto_aead_det_encrypt', array['bytea', 'bytea', 'uuid', 'bytea'], 'service_role', array['EXECUTE']);
SELECT function_privs_are('pgsodium', 'crypto_aead_det_keygen', array[]::text[], 'service_role', array['EXECUTE']);
SELECT * FROM finish();
ROLLBACK;