github.com/jfrog/jfrog-cli-go@v1.22.1-0.20200318093948-4826ef344ffd/completion/shells/generate_scripts_test.go (about)

     1  package main
     2  
     3  import (
     4  	"github.com/jfrog/jfrog-cli-go/completion/shells/bash"
     5  	"github.com/jfrog/jfrog-cli-go/completion/shells/zsh"
     6  	"github.com/stretchr/testify/assert"
     7  	"io/ioutil"
     8  	"os"
     9  	"os/exec"
    10  	"path/filepath"
    11  	"testing"
    12  )
    13  
    14  func TestGenerateScripts(t *testing.T) {
    15  	bashPath := filepath.Join("bash", "jfrog")
    16  	zshPath := filepath.Join("zsh", "jfrog")
    17  
    18  	// Make sure test environment is clean before and after test
    19  	os.Remove(bashPath)
    20  	os.Remove(zshPath)
    21  	defer os.Remove(bashPath)
    22  	defer os.Remove(zshPath)
    23  
    24  	// Run go generate ./...
    25  	cmd := exec.Command("go", "generate", "./...")
    26  	err := cmd.Run()
    27  	assert.NoError(t, err)
    28  
    29  	// Check bash completion script
    30  	bashFile, err := os.Open(bashPath)
    31  	defer bashFile.Close()
    32  	assert.NoError(t, err)
    33  	b, err := ioutil.ReadAll(bashFile)
    34  	assert.Equal(t, bash.BashAutocomplete, string(b))
    35  
    36  	// Check zsh completion script
    37  	zshFile, err := os.Open(zshPath)
    38  	defer zshFile.Close()
    39  	assert.NoError(t, err)
    40  	b, err = ioutil.ReadAll(zshFile)
    41  	assert.Equal(t, zsh.ZshAutocomplete, string(b))
    42  }