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  }