@@ -15,11 +15,9 @@ import (
1515 "github.com/stretchr/testify/assert"
1616 "github.com/supabase/cli/internal/testing/apitest"
1717 "github.com/supabase/cli/internal/testing/fstest"
18- "github.com/supabase/cli/internal/testing/helper"
1918 "github.com/supabase/cli/internal/utils"
2019 "github.com/supabase/cli/internal/utils/tenant"
2120 "github.com/supabase/cli/pkg/api"
22- "github.com/supabase/cli/pkg/migration"
2321 "github.com/supabase/cli/pkg/pgtest"
2422 "github.com/zalando/go-keyring"
2523)
@@ -44,15 +42,6 @@ func TestLinkCommand(t *testing.T) {
4442 t .Cleanup (fstest .MockStdin (t , "\n " ))
4543 // Setup in-memory fs
4644 fsys := afero .NewMemMapFs ()
47- // Setup mock postgres
48- conn := pgtest .NewConn ()
49- defer conn .Close (t )
50- conn .Query (utils .SET_SESSION_ROLE ).
51- Reply ("SET ROLE" ).
52- Query (GET_LATEST_STORAGE_MIGRATION ).
53- Reply ("SELECT 1" , []any {"custom-metadata" })
54- helper .MockMigrationHistory (conn )
55- helper .MockSeedHistory (conn )
5645 // Flush pending mocks after test execution
5746 defer gock .OffAll ()
5847 // Mock project status
@@ -119,7 +108,7 @@ func TestLinkCommand(t *testing.T) {
119108 Reply (200 ).
120109 BodyString (storage )
121110 // Run test
122- err := Run (context .Background (), project , false , fsys , conn . Intercept )
111+ err := Run (context .Background (), project , false , fsys )
123112 // Check error
124113 assert .NoError (t , err )
125114 assert .Empty (t , apitest .ListUnmatchedRequests ())
@@ -198,22 +187,13 @@ func TestLinkCommand(t *testing.T) {
198187 }
199188 })
200189 // Check error
201- assert .ErrorContains (t , err , "hostname resolving error" )
190+ assert .NoError (t , err )
202191 assert .Empty (t , apitest .ListUnmatchedRequests ())
203192 })
204193
205194 t .Run ("throws error on write failure" , func (t * testing.T ) {
206195 // Setup in-memory fs
207196 fsys := afero .NewReadOnlyFs (afero .NewMemMapFs ())
208- // Setup mock postgres
209- conn := pgtest .NewConn ()
210- defer conn .Close (t )
211- conn .Query (utils .SET_SESSION_ROLE ).
212- Reply ("SET ROLE" ).
213- Query (GET_LATEST_STORAGE_MIGRATION ).
214- Reply ("SELECT 1" , []any {"custom-metadata" })
215- helper .MockMigrationHistory (conn )
216- helper .MockSeedHistory (conn )
217197 // Flush pending mocks after test execution
218198 defer gock .OffAll ()
219199 // Mock project status
@@ -269,7 +249,7 @@ func TestLinkCommand(t *testing.T) {
269249 Get ("/v1/projects" ).
270250 ReplyError (errors .New ("network error" ))
271251 // Run test
272- err := Run (context .Background (), project , false , fsys , conn . Intercept )
252+ err := Run (context .Background (), project , false , fsys )
273253 // Check error
274254 assert .ErrorContains (t , err , "operation not permitted" )
275255 assert .Empty (t , apitest .ListUnmatchedRequests ())
@@ -419,6 +399,23 @@ func TestLinkPostgrest(t *testing.T) {
419399}
420400
421401func TestLinkDatabase (t * testing.T ) {
402+ t .Run ("syncs storage migration" , func (t * testing.T ) {
403+ // Setup in-memory fs
404+ fsys := afero .NewMemMapFs ()
405+ // Setup mock postgres
406+ conn := pgtest .NewConn ()
407+ defer conn .Close (t )
408+ conn .Query (GET_LATEST_STORAGE_MIGRATION ).
409+ Reply ("SELECT 1" , []any {"custom-metadata" })
410+ // Run test
411+ err := linkDatabase (context .Background (), dbConfig , fsys , conn .Intercept )
412+ // Check error
413+ assert .NoError (t , err )
414+ storage , err := afero .ReadFile (fsys , utils .StorageMigrationPath )
415+ assert .NoError (t , err )
416+ assert .Equal (t , []byte ("custom-metadata" ), storage )
417+ })
418+
422419 t .Run ("throws error on connect failure" , func (t * testing.T ) {
423420 // Setup in-memory fs
424421 fsys := afero .NewMemMapFs ()
@@ -438,8 +435,6 @@ func TestLinkDatabase(t *testing.T) {
438435 defer conn .Close (t )
439436 conn .Query (GET_LATEST_STORAGE_MIGRATION ).
440437 Reply ("SELECT 1" , []any {"custom-metadata" })
441- helper .MockMigrationHistory (conn )
442- helper .MockSeedHistory (conn )
443438 // Run test
444439 err := linkDatabase (context .Background (), dbConfig , fsys , conn .Intercept )
445440 // Check error
@@ -461,8 +456,6 @@ func TestLinkDatabase(t *testing.T) {
461456 defer conn .Close (t )
462457 conn .Query (GET_LATEST_STORAGE_MIGRATION ).
463458 Reply ("SELECT 1" , []any {"custom-metadata" })
464- helper .MockMigrationHistory (conn )
465- helper .MockSeedHistory (conn )
466459 // Run test
467460 err := linkDatabase (context .Background (), dbConfig , fsys , conn .Intercept )
468461 // Check error
@@ -481,18 +474,11 @@ func TestLinkDatabase(t *testing.T) {
481474 conn := pgtest .NewConn ()
482475 defer conn .Close (t )
483476 conn .Query (GET_LATEST_STORAGE_MIGRATION ).
484- ReplyError (pgerrcode .InsufficientPrivilege , "permission denied for relation migrations" ).
485- Query (migration .SET_LOCK_TIMEOUT ).
486- Query (migration .CREATE_VERSION_SCHEMA ).
487- Reply ("CREATE SCHEMA" ).
488- Query (migration .CREATE_VERSION_TABLE ).
489- ReplyError (pgerrcode .InsufficientPrivilege , "permission denied for relation supabase_migrations" ).
490- Query (migration .ADD_STATEMENTS_COLUMN ).
491- Query (migration .ADD_NAME_COLUMN )
477+ ReplyError (pgerrcode .InsufficientPrivilege , "permission denied for relation migrations" )
492478 // Run test
493479 err := linkDatabase (context .Background (), dbConfig , fsys , conn .Intercept )
494480 // Check error
495- assert .ErrorContains (t , err , "ERROR: permission denied for relation supabase_migrations (SQLSTATE 42501)" )
481+ assert .ErrorContains (t , err , "ERROR: permission denied for relation migrations (SQLSTATE 42501)" )
496482 exists , err := afero .Exists (fsys , utils .StorageMigrationPath )
497483 assert .NoError (t , err )
498484 assert .False (t , exists )
0 commit comments