@@ -33,6 +33,40 @@ def test_pgvector_extension_registration():
3333 assert pgvector_config ["name" ] == "vector"
3434
3535
36+ def test_pg_trgm_extension_registration ():
37+ """Test pg_trgm extension is properly registered."""
38+ pg_trgm_config = SUPPORTED_EXTENSIONS ["pg_trgm" ]
39+
40+ assert pg_trgm_config ["module" ] == "@electric-sql/pglite/contrib/pg_trgm"
41+ assert pg_trgm_config ["name" ] == "pg_trgm"
42+
43+
44+ def test_btree_gin_extension_registration ():
45+ """Test btree_gin extension is properly registered."""
46+ btree_gin_config = SUPPORTED_EXTENSIONS ["btree_gin" ]
47+
48+ assert btree_gin_config ["module" ] == "@electric-sql/pglite/contrib/btree_gin"
49+ assert btree_gin_config ["name" ] == "btree_gin"
50+
51+
52+ def test_btree_gist_extension_registration ():
53+ """Test btree_gist extension is properly registered."""
54+ btree_gist_config = SUPPORTED_EXTENSIONS ["btree_gist" ]
55+
56+ assert btree_gist_config ["module" ] == "@electric-sql/pglite/contrib/btree_gist"
57+ assert btree_gist_config ["name" ] == "btree_gist"
58+
59+
60+ def test_fuzzystrmatch_extension_registration ():
61+ """Test fuzzystrmatch extension is properly registered."""
62+ fuzzystrmatch_config = SUPPORTED_EXTENSIONS ["fuzzystrmatch" ]
63+
64+ assert (
65+ fuzzystrmatch_config ["module" ] == "@electric-sql/pglite/contrib/fuzzystrmatch"
66+ )
67+ assert fuzzystrmatch_config ["name" ] == "fuzzystrmatch"
68+
69+
3670def test_config_extension_validation ():
3771 """Test that PGliteConfig properly validates extensions."""
3872 # Valid extension should work
@@ -159,6 +193,30 @@ def test_extension_registry_is_immutable():
159193 assert SUPPORTED_EXTENSIONS ["pgvector" ] == original_pgvector
160194
161195
196+ def test_new_extensions_configuration ():
197+ """Test that all new extensions can be configured."""
198+ # Test individual extensions
199+ for ext in ["pg_trgm" , "btree_gin" , "btree_gist" , "fuzzystrmatch" ]:
200+ config = PGliteConfig (extensions = [ext ])
201+ assert config .extensions == [ext ]
202+
203+ manager = PGliteManager (config )
204+ assert manager .config .extensions == [ext ]
205+
206+ # Test all new extensions together
207+ new_extensions = ["pg_trgm" , "btree_gin" , "btree_gist" , "fuzzystrmatch" ]
208+ config = PGliteConfig (extensions = new_extensions )
209+ assert config .extensions == new_extensions
210+
211+ manager = PGliteManager (config )
212+ assert manager .config .extensions == new_extensions
213+
214+ # Test all extensions including pgvector
215+ all_exts = ["pgvector" , "pg_trgm" , "btree_gin" , "btree_gist" , "fuzzystrmatch" ]
216+ config = PGliteConfig (extensions = all_exts )
217+ assert config .extensions == all_exts
218+
219+
162220def test_extension_validation_error_messages ():
163221 """Test that extension validation provides helpful error messages."""
164222 try :
@@ -169,6 +227,10 @@ def test_extension_validation_error_messages():
169227 assert "Unsupported extension: 'nonexistent'" in error_msg
170228 assert "Available extensions:" in error_msg
171229 assert "pgvector" in error_msg
230+ assert "pg_trgm" in error_msg
231+ assert "btree_gin" in error_msg
232+ assert "btree_gist" in error_msg
233+ assert "fuzzystrmatch" in error_msg
172234
173235
174236def test_extensions_with_empty_string ():
0 commit comments