mirror of
https://github.com/semaphoreui/semaphore.git
synced 2024-11-23 12:30:41 +01:00
test(be): add tests for vault
This commit is contained in:
parent
a481a23c75
commit
db35f46b30
136
db/bolt/template_vault_test.go
Normal file
136
db/bolt/template_vault_test.go
Normal file
@ -0,0 +1,136 @@
|
||||
package bolt
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/semaphoreui/semaphore/db"
|
||||
)
|
||||
|
||||
func TestGetTemplateVaults(t *testing.T) {
|
||||
store := CreateTestStore()
|
||||
|
||||
proj, err := store.CreateProject(db.Project{
|
||||
Created: time.Now(),
|
||||
Name: "TestProject",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
|
||||
template, err := store.CreateTemplate(db.Template{
|
||||
ProjectID: proj.ID,
|
||||
Name: "TestTemplate",
|
||||
Playbook: "test.yml",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
|
||||
vault, err := store.CreateTemplateVault(db.TemplateVault{
|
||||
ProjectID: proj.ID,
|
||||
TemplateID: template.ID,
|
||||
Type: "password",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
|
||||
vaults, err := store.GetTemplateVaults(proj.ID, template.ID)
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
|
||||
if len(vaults) != 1 || vaults[0].ID != vault.ID {
|
||||
t.Fatalf("expected 1 vault, got %d", len(vaults))
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateTemplateVault(t *testing.T) {
|
||||
store := CreateTestStore()
|
||||
|
||||
proj, err := store.CreateProject(db.Project{
|
||||
Created: time.Now(),
|
||||
Name: "TestProject",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
|
||||
template, err := store.CreateTemplate(db.Template{
|
||||
ProjectID: proj.ID,
|
||||
Name: "TestTemplate",
|
||||
Playbook: "test.yml",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
|
||||
vault, err := store.CreateTemplateVault(db.TemplateVault{
|
||||
ProjectID: proj.ID,
|
||||
TemplateID: template.ID,
|
||||
Type: "password",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
|
||||
foundVaults, err := store.GetTemplateVaults(proj.ID, template.ID)
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
|
||||
if len(foundVaults) != 1 || foundVaults[0].ID != vault.ID {
|
||||
t.Fatalf("expected 1 vault, got %d", len(foundVaults))
|
||||
}
|
||||
}
|
||||
|
||||
func TestUpdateTemplateVaults(t *testing.T) {
|
||||
store := CreateTestStore()
|
||||
|
||||
proj, err := store.CreateProject(db.Project{
|
||||
Created: time.Now(),
|
||||
Name: "TestProject",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
|
||||
template, err := store.CreateTemplate(db.Template{
|
||||
ProjectID: proj.ID,
|
||||
Name: "TestTemplate",
|
||||
Playbook: "test.yml",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
|
||||
_, err = store.CreateTemplateVault(db.TemplateVault{
|
||||
ProjectID: proj.ID,
|
||||
TemplateID: template.ID,
|
||||
Type: "password",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
|
||||
vault2 := db.TemplateVault{
|
||||
ProjectID: proj.ID,
|
||||
TemplateID: template.ID,
|
||||
Type: "script",
|
||||
}
|
||||
|
||||
err = store.UpdateTemplateVaults(proj.ID, template.ID, []db.TemplateVault{vault2})
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
|
||||
vaults, err := store.GetTemplateVaults(proj.ID, template.ID)
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
|
||||
if len(vaults) != 1 || vaults[0].Type != "script" {
|
||||
t.Fatalf("expected 1 vault with type 'script', got %d", len(vaults))
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user