* @license MIT */ declare(strict_types=1); use BitBadger\PDODocument\{Definition, DocumentIndex}; pest()->group('integration', 'postgresql'); describe('::ensureTable()', function () { test('creates a table', function () { expect($this->dbObjectExists('ensured'))->toBeFalse() ->and($this->dbObjectExists('idx_ensured_key'))->toBeFalse(); Definition::ensureTable('ensured'); expect($this->dbObjectExists('ensured'))->toBeTrue() ->and($this->dbObjectExists('idx_ensured_key'))->toBeTrue(); }); }); describe('::ensureFieldIndex()', function () { test('creates an index', function () { expect($this->dbObjectExists('idx_ensured_test'))->toBeFalse(); Definition::ensureTable('ensured'); Definition::ensureFieldIndex('ensured', 'test', ['name', 'age']); expect($this->dbObjectExists('idx_ensured_test'))->toBeTrue(); }); }); describe('::ensureDocumentIndex()', function () { test('creates a full index', function () { $docIdx = 'idx_doc_table_document'; Definition::ensureTable('doc_table'); expect($this->dbObjectExists($docIdx))->toBeFalse(); Definition::ensureDocumentIndex('doc_table', DocumentIndex::Full); expect($this->dbObjectExists($docIdx))->toBeTrue(); }); test('creates an optimized index', function () { $docIdx = 'idx_doc_tbl_document'; Definition::ensureTable('doc_tbl'); expect($this->dbObjectExists($docIdx))->toBeFalse(); Definition::ensureDocumentIndex('doc_tbl', DocumentIndex::Optimized); expect($this->dbObjectExists($docIdx))->toBeTrue(); }); });