github.com/DelineaXPM/dsv-cli@v1.40.6/tests/e2e/cmd_role_test.go (about) 1 //go:build endtoend 2 // +build endtoend 3 4 package e2e 5 6 import ( 7 "fmt" 8 "testing" 9 ) 10 11 func TestRole(t *testing.T) { 12 roleName := makeRoleName() 13 roleName1 := roleName + "1" 14 roleName2 := roleName + "2" 15 16 output := runWithProfile(t, "role") 17 requireContains(t, output, "Execute an action on a role") 18 19 output = runWithProfile(t, "role --help") 20 requireContains(t, output, "Execute an action on a role") 21 22 output = runWithProfile(t, "role create --help") 23 requireLine(t, output, "Create a role in DevOps Secrets Vault") 24 25 output = runWithProfile(t, fmt.Sprintf("role create --name %s --external-id some-id", roleName1)) 26 requireContains(t, output, "must specify both provider and external ID") 27 28 output = runWithProfile(t, fmt.Sprintf("role create --name %s --provider some-provider", roleName1)) 29 requireContains(t, output, "must specify both provider and external ID") 30 31 output = runWithProfile(t, fmt.Sprintf("role create --name %s --desc E2E-CLI-testing", roleName1)) 32 requireContains(t, output, fmt.Sprintf(`"name": "%s"`, roleName1)) 33 requireContains(t, output, `"description": "E2E-CLI-testing"`) 34 35 output = runWithProfile(t, fmt.Sprintf("role create --name %s --desc E2E-CLI-testing", roleName2)) 36 requireContains(t, output, fmt.Sprintf(`"name": "%s"`, roleName2)) 37 requireContains(t, output, `"description": "E2E-CLI-testing"`) 38 39 output = runWithProfile(t, fmt.Sprintf("role %s", roleName1)) 40 requireContains(t, output, fmt.Sprintf(`"name": "%s"`, roleName1)) 41 42 output = runWithProfile(t, fmt.Sprintf("role --name %s", roleName1)) 43 requireContains(t, output, fmt.Sprintf(`"name": "%s"`, roleName1)) 44 45 output = runWithProfile(t, fmt.Sprintf("role -n %s", roleName1)) 46 requireContains(t, output, fmt.Sprintf(`"name": "%s"`, roleName1)) 47 48 output = runWithProfile(t, fmt.Sprintf("role read --name %s", roleName1)) 49 requireContains(t, output, fmt.Sprintf(`"name": "%s"`, roleName1)) 50 51 output = runWithProfile(t, fmt.Sprintf("role read -n %s", roleName1)) 52 requireContains(t, output, fmt.Sprintf(`"name": "%s"`, roleName1)) 53 54 output = runWithProfile(t, fmt.Sprintf("role delete -n %s", roleName1)) 55 requireContains(t, output, "role marked for deletion and will be removed in about 72 hours") 56 57 runWithProfile(t, fmt.Sprintf("role restore -n %s", roleName1)) 58 59 output = runWithProfile(t, "role update --desc E2E-CLI-testing-updated") 60 requireContains(t, output, "error: must specify name") 61 62 output = runWithProfile(t, fmt.Sprintf("role update --name %s --desc E2E-CLI-testing-updated", roleName1)) 63 requireContains(t, output, fmt.Sprintf(`"name": "%s"`, roleName1)) 64 requireContains(t, output, `"description": "E2E-CLI-testing-updated"`) 65 requireContains(t, output, `"version": "1"`) 66 67 output = runWithProfile(t, fmt.Sprintf("role search --query %s --limit 5", roleName1)) 68 requireContains(t, output, fmt.Sprintf(`"name": "%s"`, roleName1)) 69 70 output = runWithProfile(t, fmt.Sprintf("role search --limit 1 --sort asc --sorted-by name --query %s", roleName)) 71 requireContains(t, output, fmt.Sprintf(`"name": "%s"`, roleName1)) 72 requireNotContains(t, output, fmt.Sprintf(`"name": "%s"`, roleName2)) 73 74 output = runWithProfile(t, fmt.Sprintf("role search --limit 1 --sort desc --sorted-by name --query %s", roleName)) 75 requireContains(t, output, fmt.Sprintf(`"name": "%s"`, roleName2)) 76 requireNotContains(t, output, fmt.Sprintf(`"name": "%s"`, roleName1)) 77 78 output = runWithProfile(t, "role delete --force") 79 requireContains(t, output, "error: must specify name") 80 81 runWithProfile(t, fmt.Sprintf("role delete --name %s --force", roleName1)) 82 83 output = runWithProfile(t, fmt.Sprintf("role delete %s --force", roleName1)) 84 requireContains(t, output, "unable to find item with specified identifier") 85 86 runWithProfile(t, fmt.Sprintf("role delete --name %s --force", roleName2)) 87 }