Skip to content

Commit af46ab3

Browse files
committed
add remaining job db tests, fix job archive by search query
1 parent 2ad0b95 commit af46ab3

2 files changed

Lines changed: 128 additions & 26 deletions

File tree

database/dbJob.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -862,8 +862,8 @@ func (r JobDBHandler) SelectAllJobsFromArchiveBySearch(search string, lastID int
862862
created_at,
863863
updated_at
864864
FROM job_archive
865-
WHERE (rid ILIKE '%' || $1 || '%'
866-
OR worker_id ILIKE '%' || $1 || '%'
865+
WHERE (rid::text ILIKE '%' || $1 || '%'
866+
OR worker_id::text ILIKE '%' || $1 || '%'
867867
OR task_name ILIKE '%' || $1 || '%'
868868
OR status ILIKE '%' || $1 || '%')
869869
AND (0 = $2

database/dbJob_test.go

Lines changed: 126 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ func TestJobCheckTableExistance(t *testing.T) {
2727
database := helper.NewTestDatabase(port)
2828

2929
jobDBHandler, err := NewJobDBHandler(database)
30-
assert.NoError(t, err, "Expected NewJobDBHandler to not return an error")
30+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
3131

3232
exists, err := jobDBHandler.CheckTableExistance()
3333
assert.NoError(t, err, "Expected CheckTableExistance to not return an error")
@@ -38,7 +38,7 @@ func TestJobCreateTable(t *testing.T) {
3838
database := helper.NewTestDatabase(port)
3939

4040
jobDBHandler, err := NewJobDBHandler(database)
41-
assert.NoError(t, err, "Expected NewJobDBHandler to not return an error")
41+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
4242

4343
err = jobDBHandler.CreateTable()
4444
assert.NoError(t, err, "Expected CreateTable to not return an error")
@@ -48,7 +48,7 @@ func TestJobDropTable(t *testing.T) {
4848
database := helper.NewTestDatabase(port)
4949

5050
jobDBHandler, err := NewJobDBHandler(database)
51-
assert.NoError(t, err, "Expected NewJobDBHandler to not return an error")
51+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
5252

5353
err = jobDBHandler.DropTable()
5454
assert.NoError(t, err, "Expected DropTable to not return an error")
@@ -58,10 +58,10 @@ func TestJobInsertJob(t *testing.T) {
5858
database := helper.NewTestDatabase(port)
5959

6060
jobDBHandler, err := NewJobDBHandler(database)
61-
assert.NoError(t, err, "Expected NewJobDBHandler to not return an error")
61+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
6262

63-
job, err := model.NewJob("TestJob", nil)
64-
assert.NoError(t, err, "Expected NewJob to not return an error")
63+
job, err := model.NewJob("TestTask", nil)
64+
require.NoError(t, err, "Expected NewJob to not return an error")
6565

6666
insertedJob, err := jobDBHandler.InsertJob(job)
6767
assert.NoError(t, err, "Expected InsertJob to not return an error")
@@ -77,7 +77,7 @@ func TestJobBatchInsertJobs(t *testing.T) {
7777
database := helper.NewTestDatabase(port)
7878

7979
jobDBHandler, err := NewJobDBHandler(database)
80-
assert.NoError(t, err, "Expected NewJobDBHandler to not return an error")
80+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
8181

8282
jobCount := 5
8383
jobs := []*model.Job{}
@@ -119,7 +119,7 @@ func TestJobUpdateJobsInitial(t *testing.T) {
119119
require.NoError(t, err, "Expected NewJob to not return an error")
120120

121121
insertedJob, err := jobDBHandler.InsertJob(job)
122-
assert.NoError(t, err, "Expected InsertJob to not return an error")
122+
require.NoError(t, err, "Expected InsertJob to not return an error")
123123

124124
updatedJobs, err := jobDBHandler.UpdateJobsInitial(updatedWorker)
125125
assert.NoError(t, err, "Expected UpdateJobsInitial to not return an error")
@@ -135,13 +135,13 @@ func TestJobUpdateJobFinal(t *testing.T) {
135135
database := helper.NewTestDatabase(port)
136136

137137
jobDBHandler, err := NewJobDBHandler(database)
138-
assert.NoError(t, err, "Expected NewJobDBHandler to not return an error")
138+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
139139

140-
job, err := model.NewJob("TestJob", nil)
141-
assert.NoError(t, err, "Expected NewJob to not return an error")
140+
job, err := model.NewJob("TestTask", nil)
141+
require.NoError(t, err, "Expected NewJob to not return an error")
142142

143143
insertedJob, err := jobDBHandler.InsertJob(job)
144-
assert.NoError(t, err, "Expected InsertJob to not return an error")
144+
require.NoError(t, err, "Expected InsertJob to not return an error")
145145

146146
// Update the job status to SUCCEEDED
147147
insertedJob.Status = model.JobStatusSucceeded
@@ -156,13 +156,13 @@ func TestJobDeleteJob(t *testing.T) {
156156
database := helper.NewTestDatabase(port)
157157

158158
jobDBHandler, err := NewJobDBHandler(database)
159-
assert.NoError(t, err, "Expected NewJobDBHandler to not return an error")
159+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
160160

161-
job, err := model.NewJob("TestJob", nil)
162-
assert.NoError(t, err, "Expected NewJob to not return an error")
161+
job, err := model.NewJob("TestTask", nil)
162+
require.NoError(t, err, "Expected NewJob to not return an error")
163163

164164
insertedJob, err := jobDBHandler.InsertJob(job)
165-
assert.NoError(t, err, "Expected InsertJob to not return an error")
165+
require.NoError(t, err, "Expected InsertJob to not return an error")
166166

167167
err = jobDBHandler.DeleteJob(insertedJob.RID)
168168
assert.NoError(t, err, "Expected DeleteJob to not return an error")
@@ -178,13 +178,13 @@ func TestJobSelectJob(t *testing.T) {
178178
database := helper.NewTestDatabase(port)
179179

180180
jobDBHandler, err := NewJobDBHandler(database)
181-
assert.NoError(t, err, "Expected NewJobDBHandler to not return an error")
181+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
182182

183-
job, err := model.NewJob("TestJob", nil)
184-
assert.NoError(t, err, "Expected NewJob to not return an error")
183+
job, err := model.NewJob("TestTask", nil)
184+
require.NoError(t, err, "Expected NewJob to not return an error")
185185

186186
insertedJob, err := jobDBHandler.InsertJob(job)
187-
assert.NoError(t, err, "Expected InsertJob to not return an error")
187+
require.NoError(t, err, "Expected InsertJob to not return an error")
188188

189189
selectedJob, err := jobDBHandler.SelectJob(insertedJob.RID)
190190
assert.NoError(t, err, "Expected SelectJob to not return an error")
@@ -197,7 +197,7 @@ func TestJobSelectAllJobs(t *testing.T) {
197197

198198
newJobCount := 5
199199
jobDBHandler, err := NewJobDBHandler(database)
200-
assert.NoError(t, err, "Expected NewJobDBHandler to not return an error")
200+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
201201

202202
for i := 0; i < newJobCount; i++ {
203203
job, err := model.NewJob(fmt.Sprintf("TestJob%v", i), nil)
@@ -240,7 +240,7 @@ func TestJobSelectAllJobsByWorkerRID(t *testing.T) {
240240

241241
// Insert jobs associated with the worker
242242
jobDBHandler, err := NewJobDBHandler(database)
243-
assert.NoError(t, err, "Expected NewJobDBHandler to not return an error")
243+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
244244

245245
for i := 0; i < newJobCount; i++ {
246246
job, err := model.NewJob("TestTask", nil)
@@ -262,12 +262,12 @@ func TestJobSelectAllJobsByWorkerRID(t *testing.T) {
262262
func TestJobSelectAllJobsBySearch(t *testing.T) {
263263
database := helper.NewTestDatabase(port)
264264

265-
searchTerm := "TestJob"
265+
searchTerm := "TestTaskSearch"
266266
newJobCountSearch := 5
267267
newJobCountOther := 3
268268

269269
jobDBHandler, err := NewJobDBHandler(database)
270-
assert.NoError(t, err, "Expected NewJobDBHandler to not return an error")
270+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
271271

272272
// Insert multiple jobs with different names
273273
for i := 0; i < newJobCountSearch; i++ {
@@ -295,3 +295,105 @@ func TestJobSelectAllJobsBySearch(t *testing.T) {
295295
assert.NoError(t, err, "Expected SelectAllJobsBySearch to not return an error")
296296
assert.Len(t, paginatedJobsBySearch, pageLength, "Expected SelectAllJobsBySearch to return 3 jobs")
297297
}
298+
299+
func TestJobSelectJobFromArchive(t *testing.T) {
300+
database := helper.NewTestDatabase(port)
301+
302+
jobDBHandler, err := NewJobDBHandler(database)
303+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
304+
305+
job, err := model.NewJob("TestTask", nil)
306+
require.NoError(t, err, "Expected NewJob to not return an error")
307+
308+
insertedJob, err := jobDBHandler.InsertJob(job)
309+
require.NoError(t, err, "Expected InsertJob to not return an error")
310+
311+
// Update the job status to SUCCEEDED
312+
insertedJob.Status = model.JobStatusSucceeded
313+
updatedJob, err := jobDBHandler.UpdateJobFinal(insertedJob)
314+
require.NoError(t, err, "Expected UpdateJobFinal to not return an error")
315+
316+
// Now select the job from archive
317+
archivedJob, err := jobDBHandler.SelectJobFromArchive(updatedJob.RID)
318+
assert.NoError(t, err, "Expected SelectJobFromArchive to not return an error")
319+
assert.NotNil(t, archivedJob, "Expected SelectJobFromArchive to return a non-nil job")
320+
assert.Equal(t, archivedJob.RID, insertedJob.RID, "Expected archived job RID to match inserted job RID")
321+
assert.Equal(t, archivedJob.Status, model.JobStatusSucceeded, "Expected archived job status to be SUCCEEDED")
322+
}
323+
324+
func TestJobSelectAllJobsFromArchive(t *testing.T) {
325+
database := helper.NewTestDatabase(port)
326+
327+
jobDBHandler, err := NewJobDBHandler(database)
328+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
329+
330+
newJobCount := 5
331+
for i := 0; i < newJobCount; i++ {
332+
job, err := model.NewJob(fmt.Sprintf("TestJob%v", i), nil)
333+
require.NoError(t, err, "Expected NewJob to not return an error")
334+
335+
insertedJob, err := jobDBHandler.InsertJob(job)
336+
require.NoError(t, err, "Expected InsertJob to not return an error")
337+
338+
// Update the job status to SUCCEEDED
339+
insertedJob.Status = model.JobStatusSucceeded
340+
_, err = jobDBHandler.UpdateJobFinal(insertedJob)
341+
require.NoError(t, err, "Expected UpdateJobFinal to not return an error")
342+
}
343+
344+
jobsFromArchive, err := jobDBHandler.SelectAllJobsFromArchive(0, 10)
345+
assert.NoError(t, err, "Expected SelectAllJobsFromArchive to not return an error")
346+
assert.Len(t, jobsFromArchive, newJobCount, "Expected SelectAllJobsFromArchive to return all archived jobs")
347+
348+
pageLength := 3
349+
paginatedJobsFromArchive, err := jobDBHandler.SelectAllJobsFromArchive(0, pageLength)
350+
assert.NoError(t, err, "Expected SelectAllJobsFromArchive to not return an error")
351+
assert.Len(t, paginatedJobsFromArchive, pageLength, "Expected SelectAllJobsFromArchive to return 3 archived jobs")
352+
}
353+
354+
func TestJobSelectAllJobsFromArchiveBySearch(t *testing.T) {
355+
database := helper.NewTestDatabase(port)
356+
357+
searchTerm := "TestTaskSearch"
358+
newJobCountSearch := 5
359+
newJobCountOther := 3
360+
361+
jobDBHandler, err := NewJobDBHandler(database)
362+
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")
363+
364+
// Insert multiple jobs with different names
365+
for i := 0; i < newJobCountSearch; i++ {
366+
job, err := model.NewJob(searchTerm, nil)
367+
require.NoError(t, err, "Expected NewJob to not return an error")
368+
369+
insertedJob, err := jobDBHandler.InsertJob(job)
370+
require.NoError(t, err, "Expected InsertJob to not return an error")
371+
372+
// Update the job status to SUCCEEDED
373+
insertedJob.Status = model.JobStatusSucceeded
374+
_, err = jobDBHandler.UpdateJobFinal(insertedJob)
375+
require.NoError(t, err, "Expected UpdateJobFinal to not return an error")
376+
}
377+
378+
for i := 0; i < newJobCountOther; i++ {
379+
job, err := model.NewJob("TestTask", nil)
380+
require.NoError(t, err, "Expected NewJob to not return an error")
381+
382+
insertedJob, err := jobDBHandler.InsertJob(job)
383+
require.NoError(t, err, "Expected InsertJob to not return an error")
384+
385+
// Update the job status to SUCCEEDED
386+
insertedJob.Status = model.JobStatusSucceeded
387+
_, err = jobDBHandler.UpdateJobFinal(insertedJob)
388+
require.NoError(t, err, "Expected UpdateJobFinal to not return an error")
389+
}
390+
391+
jobsBySearchFromArchive, err := jobDBHandler.SelectAllJobsFromArchiveBySearch(searchTerm, 0, 10)
392+
assert.NoError(t, err, "Expected SelectAllJobsFromArchiveBySearch to not return an error")
393+
assert.Len(t, jobsBySearchFromArchive, newJobCountSearch, "Expected SelectAllJobsFromArchiveBySearch to return all archived jobs matching the search term")
394+
395+
pageLength := 3
396+
paginatedJobsBySearchFromArchive, err := jobDBHandler.SelectAllJobsFromArchiveBySearch(searchTerm, 0, pageLength)
397+
assert.NoError(t, err, "Expected SelectAllJobsFromArchiveBySearch to not return an error")
398+
assert.Len(t, paginatedJobsBySearchFromArchive, pageLength, "Expected SelectAllJobsFromArchiveBySearch to return 3 archived jobs")
399+
}

0 commit comments

Comments
 (0)