github.com/DelineaXPM/dsv-cli@v1.40.6/tests/e2e/cmd_engine_test.go (about)

     1  //go:build endtoend
     2  // +build endtoend
     3  
     4  package e2e
     5  
     6  import (
     7  	"fmt"
     8  	"sort"
     9  	"testing"
    10  )
    11  
    12  func TestEngine(t *testing.T) {
    13  	e := newEnv()
    14  
    15  	poolName := makePoolName()
    16  	engineName1 := makeEngineName()
    17  	engineName2 := makeEngineName()
    18  	engineNamesInOrder := []string{engineName1, engineName2}
    19  	sort.Strings(engineNamesInOrder)
    20  
    21  	output := runWithProfile(t, fmt.Sprintf("pool create --name=%s", poolName))
    22  	requireContains(t, output, fmt.Sprintf(`"name": "%s"`, poolName))
    23  
    24  	output = runWithProfile(t, fmt.Sprintf("engine read --name=%s", engineName1))
    25  	requireContains(t, output, `"message": "unable to find item with specified identifier"`)
    26  
    27  	output = runWithProfile(t, fmt.Sprintf("engine create --name=%s --pool-name=e2e-cli-test-pool-that-does-not-exist", engineName1))
    28  	requireContains(t, output, `"message": "specified pool doesn't exist"`)
    29  
    30  	output = runWithProfile(t, fmt.Sprintf("engine create --name=%s --pool-name=%s", engineName1, poolName))
    31  	requireContains(t, output, fmt.Sprintf(`"createdBy": "users:%s",`, e.username))
    32  	requireContains(t, output, fmt.Sprintf(`"name": "%s"`, engineName1))
    33  	requireContains(t, output, fmt.Sprintf(`"poolName": "%s"`, poolName))
    34  
    35  	output = runWithProfile(t, fmt.Sprintf("engine create --name=%s --pool-name=%s", engineName2, poolName))
    36  	requireContains(t, output, fmt.Sprintf(`"createdBy": "users:%s",`, e.username))
    37  	requireContains(t, output, fmt.Sprintf(`"name": "%s"`, engineName2))
    38  	requireContains(t, output, fmt.Sprintf(`"poolName": "%s"`, poolName))
    39  
    40  	output = runWithProfile(t, fmt.Sprintf("engine read --name=%s", engineName1))
    41  	requireContains(t, output, fmt.Sprintf(`"createdBy": "users:%s",`, e.username))
    42  	requireContains(t, output, fmt.Sprintf(`"name": "%s"`, engineName1))
    43  	requireContains(t, output, fmt.Sprintf(`"poolName": "%s"`, poolName))
    44  
    45  	output = runWithProfile(t, "engine list")
    46  	requireContains(t, output, `"engines": [`)
    47  	requireContains(t, output, fmt.Sprintf(`"name": "%s"`, engineName1))
    48  	requireContains(t, output, fmt.Sprintf(`"name": "%s"`, engineName2))
    49  	requireContains(t, output, fmt.Sprintf(`"poolName": "%s"`, poolName))
    50  
    51  	output = runWithProfile(t, "engine list --sort asc --sorted-by name --pool-name "+poolName)
    52  	requireContains(t, output, `"engines": [`)
    53  	requireContains(t, output, fmt.Sprintf(`"name": "%s"`, engineNamesInOrder[0]))
    54  	requireContains(t, output, fmt.Sprintf(`"name": "%s"`, engineNamesInOrder[1]))
    55  	requireContains(t, output, fmt.Sprintf(`"poolName": "%s"`, poolName))
    56  
    57  	output = runWithProfile(t, "engine list --query "+engineName1)
    58  	requireContains(t, output, `"engines": [`)
    59  	requireContains(t, output, fmt.Sprintf(`"name": "%s"`, engineName1))
    60  	requireNotContains(t, output, fmt.Sprintf(`"name": "%s"`, engineName2))
    61  	requireContains(t, output, fmt.Sprintf(`"poolName": "%s"`, poolName))
    62  
    63  	output = runWithProfile(t, fmt.Sprintf("engine delete --name=%s", engineName1))
    64  	if output != "" {
    65  		t.Fatalf("Unexpected output: \n%s\n", output)
    66  	}
    67  
    68  	output = runWithProfile(t, fmt.Sprintf("engine delete --name=%s", engineName2))
    69  	if output != "" {
    70  		t.Fatalf("Unexpected output: \n%s\n", output)
    71  	}
    72  
    73  	output = runWithProfile(t, fmt.Sprintf("engine read --name=%s", engineName1))
    74  	requireContains(t, output, `"message": "unable to find item with specified identifier"`)
    75  
    76  	runWithProfile(t, fmt.Sprintf("pool delete --name=%s", poolName))
    77  }