Skip to content

Commit 84c4734

Browse files
author
warlocgao
committed
add tests
TestPopulateDetailsInventory is testing the Inventory id in task TestPopulateDetailsInventory1 is testing the Inventory id in task is nil
1 parent 73e8394 commit 84c4734

File tree

1 file changed

+198
-1
lines changed

1 file changed

+198
-1
lines changed

services/tasks/TaskRunner_test.go

+198-1
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package tasks
22

33
import (
4-
"github.com/ansible-semaphore/semaphore/db_lib"
54
"math/rand"
65
"os"
76
"path"
87
"strings"
98
"testing"
109

10+
"github.com/ansible-semaphore/semaphore/db_lib"
11+
1112
"github.com/ansible-semaphore/semaphore/db"
1213
"github.com/ansible-semaphore/semaphore/db/bolt"
1314
"github.com/ansible-semaphore/semaphore/util"
@@ -247,6 +248,202 @@ func TestPopulateDetails(t *testing.T) {
247248
}
248249
}
249250

251+
func TestPopulateDetailsInventory(t *testing.T) {
252+
store := bolt.CreateTestStore()
253+
254+
proj, err := store.CreateProject(db.Project{})
255+
if err != nil {
256+
t.Fatal(err)
257+
}
258+
259+
key, err := store.CreateAccessKey(db.AccessKey{
260+
ProjectID: &proj.ID,
261+
Type: db.AccessKeyNone,
262+
})
263+
if err != nil {
264+
t.Fatal(err)
265+
}
266+
267+
repo, err := store.CreateRepository(db.Repository{
268+
ProjectID: proj.ID,
269+
SSHKeyID: key.ID,
270+
Name: "Test",
271+
GitURL: "[email protected]:test/test",
272+
GitBranch: "master",
273+
})
274+
if err != nil {
275+
t.Fatal(err)
276+
}
277+
278+
inv, err := store.CreateInventory(db.Inventory{
279+
ProjectID: proj.ID,
280+
ID: 1,
281+
})
282+
if err != nil {
283+
t.Fatal(err)
284+
}
285+
inv2, err := store.CreateInventory(db.Inventory{
286+
ProjectID: proj.ID,
287+
ID: 2,
288+
})
289+
if err != nil {
290+
t.Fatal(err)
291+
}
292+
env, err := store.CreateEnvironment(db.Environment{
293+
ProjectID: proj.ID,
294+
Name: "test",
295+
JSON: `{"author": "Denis", "comment": "Hello, World!"}`,
296+
})
297+
if err != nil {
298+
t.Fatal(err)
299+
}
300+
301+
tpl, err := store.CreateTemplate(db.Template{
302+
Name: "Test",
303+
Playbook: "test.yml",
304+
ProjectID: proj.ID,
305+
RepositoryID: repo.ID,
306+
InventoryID: &inv.ID,
307+
EnvironmentID: &env.ID,
308+
})
309+
310+
if err != nil {
311+
t.Fatal(err)
312+
}
313+
314+
pool := TaskPool{store: store}
315+
316+
tsk := TaskRunner{
317+
pool: &pool,
318+
Task: db.Task{
319+
TemplateID: tpl.ID,
320+
ProjectID: proj.ID,
321+
Environment: `{"comment": "Just do it!", "time": "2021-11-02"}`,
322+
InventoryID: &inv2.ID,
323+
},
324+
}
325+
tsk.job = &LocalJob{
326+
Task: tsk.Task,
327+
Template: tsk.Template,
328+
Repository: tsk.Repository,
329+
Environment: tsk.Environment,
330+
Logger: &tsk,
331+
App: &db_lib.AnsibleApp{
332+
Template: tsk.Template,
333+
Repository: tsk.Repository,
334+
Logger: &tsk,
335+
Playbook: &db_lib.AnsiblePlaybook{
336+
Logger: &tsk,
337+
TemplateID: tsk.Template.ID,
338+
Repository: tsk.Repository,
339+
},
340+
},
341+
}
342+
343+
err = tsk.populateDetails()
344+
if err != nil {
345+
t.Fatal(err)
346+
}
347+
348+
if tsk.Inventory.ID != 2 {
349+
t.Fatal(err)
350+
}
351+
}
352+
353+
func TestPopulateDetailsInventory1(t *testing.T) {
354+
store := bolt.CreateTestStore()
355+
356+
proj, err := store.CreateProject(db.Project{})
357+
if err != nil {
358+
t.Fatal(err)
359+
}
360+
361+
key, err := store.CreateAccessKey(db.AccessKey{
362+
ProjectID: &proj.ID,
363+
Type: db.AccessKeyNone,
364+
})
365+
if err != nil {
366+
t.Fatal(err)
367+
}
368+
369+
repo, err := store.CreateRepository(db.Repository{
370+
ProjectID: proj.ID,
371+
SSHKeyID: key.ID,
372+
Name: "Test",
373+
GitURL: "[email protected]:test/test",
374+
GitBranch: "master",
375+
})
376+
if err != nil {
377+
t.Fatal(err)
378+
}
379+
380+
inv, err := store.CreateInventory(db.Inventory{
381+
ProjectID: proj.ID,
382+
ID: 1,
383+
})
384+
if err != nil {
385+
t.Fatal(err)
386+
}
387+
env, err := store.CreateEnvironment(db.Environment{
388+
ProjectID: proj.ID,
389+
Name: "test",
390+
JSON: `{"author": "Denis", "comment": "Hello, World!"}`,
391+
})
392+
if err != nil {
393+
t.Fatal(err)
394+
}
395+
396+
tpl, err := store.CreateTemplate(db.Template{
397+
Name: "Test",
398+
Playbook: "test.yml",
399+
ProjectID: proj.ID,
400+
RepositoryID: repo.ID,
401+
InventoryID: &inv.ID,
402+
EnvironmentID: &env.ID,
403+
})
404+
405+
if err != nil {
406+
t.Fatal(err)
407+
}
408+
409+
pool := TaskPool{store: store}
410+
411+
tsk := TaskRunner{
412+
pool: &pool,
413+
Task: db.Task{
414+
TemplateID: tpl.ID,
415+
ProjectID: proj.ID,
416+
Environment: `{"comment": "Just do it!", "time": "2021-11-02"}`,
417+
},
418+
}
419+
tsk.job = &LocalJob{
420+
Task: tsk.Task,
421+
Template: tsk.Template,
422+
Repository: tsk.Repository,
423+
Environment: tsk.Environment,
424+
Logger: &tsk,
425+
App: &db_lib.AnsibleApp{
426+
Template: tsk.Template,
427+
Repository: tsk.Repository,
428+
Logger: &tsk,
429+
Playbook: &db_lib.AnsiblePlaybook{
430+
Logger: &tsk,
431+
TemplateID: tsk.Template.ID,
432+
Repository: tsk.Repository,
433+
},
434+
},
435+
}
436+
437+
err = tsk.populateDetails()
438+
if err != nil {
439+
t.Fatal(err)
440+
}
441+
442+
if tsk.Inventory.ID != 1 {
443+
t.Fatal(err)
444+
}
445+
}
446+
250447
func TestTaskGetPlaybookArgs(t *testing.T) {
251448
util.Config = &util.ConfigType{
252449
TmpPath: "/tmp",

0 commit comments

Comments
 (0)