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 }