github.com/pluralsh/plural-cli@v0.9.5/pkg/test/e2e/e2e_crypto_test.go (about)

     1  //go:build e2e
     2  
     3  package e2e_test
     4  
     5  import (
     6  	"fmt"
     7  	"os"
     8  	"os/exec"
     9  	"path"
    10  	"testing"
    11  
    12  	utiltest "github.com/pluralsh/plural-cli/pkg/test"
    13  	"github.com/stretchr/testify/assert"
    14  )
    15  
    16  func TestKeyValidation(t *testing.T) {
    17  	homeDir, err := os.UserHomeDir()
    18  	assert.NoError(t, err)
    19  
    20  	testDir := path.Join(homeDir, "test")
    21  	keyFingerprintFile := path.Join(testDir, ".keyid")
    22  	err = os.Chdir(testDir)
    23  	assert.NoError(t, err)
    24  
    25  	// generate new validation file
    26  	cmd := exec.Command("plural", "crypto", "fingerprint")
    27  	cmdOutput, err := cmd.CombinedOutput()
    28  	assert.NoError(t, err)
    29  	assert.Equal(t, "", string(cmdOutput))
    30  	utiltest.CheckFingerprint(t, keyFingerprintFile)
    31  
    32  	// enforce a new key creation. Validation should fail
    33  	err = os.Remove(path.Join(homeDir, ".plural", "key"))
    34  	assert.NoError(t, err)
    35  	cmd = exec.Command("plural", "crypto", "unlock")
    36  	cmdOutput, err = cmd.CombinedOutput()
    37  	assert.Error(t, err, "expected: 'the key fingerprint doesn't match' error")
    38  	fmt.Println(string(cmdOutput))
    39  }
    40  
    41  func TestRepoSharing(t *testing.T) {
    42  	homeDir, err := os.UserHomeDir()
    43  	assert.NoError(t, err)
    44  	testDir := path.Join(homeDir, "share")
    45  	err = os.Chdir(testDir)
    46  	assert.NoError(t, err)
    47  
    48  	cmd := exec.Command("plural", "crypto", "init")
    49  	cmdOutput, err := cmd.CombinedOutput()
    50  	assert.NoError(t, err)
    51  	fmt.Println(string(cmdOutput))
    52  	cmd = exec.Command("plural", "crypto", "unlock")
    53  	cmdOutput, err = cmd.CombinedOutput()
    54  	assert.NoError(t, err)
    55  	fmt.Println(string(cmdOutput))
    56  }