From 00f427bb474142a985528731eca67dfe8b63dd85 Mon Sep 17 00:00:00 2001 From: maxcask Date: Mon, 6 Jul 2026 18:00:05 +0300 Subject: [PATCH] Update backup_test.go --- .../19-defer-cleanup-chain/backup_test.go | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/04-errors-semantics/19-defer-cleanup-chain/backup_test.go b/04-errors-semantics/19-defer-cleanup-chain/backup_test.go index d1aad3c..3fa4d6b 100644 --- a/04-errors-semantics/19-defer-cleanup-chain/backup_test.go +++ b/04-errors-semantics/19-defer-cleanup-chain/backup_test.go @@ -272,6 +272,17 @@ func TestBackupDatabase_Matrix(t *testing.T) { wantDBCloseCalls: 0, wantRowsClosed: false, }, + { + name: "rows close failure is preserved", + rows: []fakeRow{{id: 1, payload: "ok"}}, + rowsCloseErr: errors.New("rows close boom"), + wantErr: true, + wantErrContains: []string{"close rows"}, + wantCommitCalls: 1, + wantRollbackCalls: 0, + wantDBCloseCalls: 1, + wantRowsClosed: true, + }, } for _, tt := range tests { @@ -480,6 +491,21 @@ func TestBackupDatabase_PublicWrapper_ConnectorError(t *testing.T) { assert.ErrorIs(t, err, errConnect) } +func TestBackupDatabase_PublicWrapper_DefaultConnectorUnconfigured(t *testing.T) { + oldConnector := defaultConnector + t.Cleanup(func() { + defaultConnector = oldConnector + }) + + defaultConnector = oldConnector + + filename := filepath.Join(t.TempDir(), "backup.csv") + err := BackupDatabase(context.Background(), "db://public", filename) + require.Error(t, err) + assert.ErrorContains(t, err, "connect DB") + assert.ErrorContains(t, err, "no database connector configured") +} + func countOpenFDs() (int, error) { var lastErr error