Skip to content

Commit f545f91

Browse files
committed
rework some tests with pgxmock
1 parent 963cac6 commit f545f91

File tree

2 files changed

+274
-323
lines changed

2 files changed

+274
-323
lines changed

internal/pgengine/bootstrap_test.go

Lines changed: 0 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -154,87 +154,6 @@ func TestTryLockClientName(t *testing.T) {
154154
})
155155
}
156156

157-
func TestCreateChainFromYamlErrors(t *testing.T) {
158-
initmockdb(t)
159-
defer mockPool.Close()
160-
mockpge := pgengine.NewDB(mockPool, "pgengine_unit_test")
161-
162-
t.Run("Database error during chain creation", func(t *testing.T) {
163-
mockPool.ExpectQuery(`INSERT INTO timetable.chain`).
164-
WithArgs(anyArgs(9)...).
165-
WillReturnError(fmt.Errorf("simulated DB error"))
166-
_, err := mockpge.CreateChainFromYaml(ctx, &pgengine.YamlChain{})
167-
assert.Error(t, err)
168-
assert.NoError(t, mockPool.ExpectationsWereMet())
169-
})
170-
171-
t.Run("Database error during task creation", func(t *testing.T) {
172-
mockPool.ExpectQuery(`INSERT INTO timetable.chain`).
173-
WithArgs(anyArgs(9)...).
174-
WillReturnRows(pgxmock.NewRows([]string{"chain_id"}).AddRow(1))
175-
mockPool.ExpectQuery(`INSERT INTO timetable.task`).
176-
WithArgs(anyArgs(10)...).
177-
WillReturnError(fmt.Errorf("simulated DB error on task"))
178-
179-
_, err := mockpge.CreateChainFromYaml(ctx, &pgengine.YamlChain{
180-
Chain: pgengine.Chain{ChainName: "test-chain"},
181-
Schedule: "0 0 * * *",
182-
Tasks: []pgengine.YamlTask{
183-
{ChainTask: pgengine.ChainTask{Command: "SELECT 1", Kind: "SQL"}},
184-
},
185-
})
186-
assert.Error(t, err)
187-
assert.NoError(t, mockPool.ExpectationsWereMet())
188-
})
189-
190-
t.Run("Database error during parameter unmarshalling", func(t *testing.T) {
191-
mockPool.ExpectQuery(`INSERT INTO timetable.chain`).
192-
WithArgs(anyArgs(9)...).
193-
WillReturnRows(pgxmock.NewRows([]string{"chain_id"}).AddRow(1))
194-
mockPool.ExpectQuery(`INSERT INTO timetable.task`).
195-
WithArgs(anyArgs(10)...).
196-
WillReturnRows(pgxmock.NewRows([]string{"task_id"}).AddRow(1))
197-
198-
_, err := mockpge.CreateChainFromYaml(ctx, &pgengine.YamlChain{
199-
Chain: pgengine.Chain{ChainName: "test-chain"},
200-
Schedule: "0 0 * * *",
201-
Tasks: []pgengine.YamlTask{
202-
{
203-
ChainTask: pgengine.ChainTask{Command: "SELECT 1", Kind: "SQL"},
204-
Parameters: []any{func() {}}, // functions cannot be marshalled to JSON
205-
},
206-
},
207-
})
208-
assert.Error(t, err)
209-
assert.NoError(t, mockPool.ExpectationsWereMet())
210-
})
211-
212-
t.Run("Database error during parameter creation", func(t *testing.T) {
213-
mockPool.ExpectQuery(`INSERT INTO timetable.chain`).
214-
WithArgs(anyArgs(9)...).
215-
WillReturnRows(pgxmock.NewRows([]string{"chain_id"}).AddRow(1))
216-
mockPool.ExpectQuery(`INSERT INTO timetable.task`).
217-
WithArgs(anyArgs(10)...).
218-
WillReturnRows(pgxmock.NewRows([]string{"task_id"}).AddRow(1))
219-
mockPool.ExpectExec(`INSERT INTO timetable.parameter`).
220-
WithArgs(anyArgs(3)...).
221-
WillReturnError(fmt.Errorf("simulated DB error on parameter"))
222-
223-
_, err := mockpge.CreateChainFromYaml(ctx, &pgengine.YamlChain{
224-
Chain: pgengine.Chain{ChainName: "test-chain"},
225-
Schedule: "0 0 * * *",
226-
Tasks: []pgengine.YamlTask{
227-
{
228-
ChainTask: pgengine.ChainTask{Command: "SELECT 1", Kind: "SQL"},
229-
Parameters: []any{"foo"},
230-
},
231-
},
232-
})
233-
assert.Error(t, err)
234-
assert.NoError(t, mockPool.ExpectationsWereMet())
235-
})
236-
}
237-
238157
func TestExecuteFileScript(t *testing.T) {
239158
initmockdb(t)
240159
defer mockPool.Close()

0 commit comments

Comments
 (0)