github.com/jcarley/cli@v0.0.0-20180201210820-966d90434c30/commands/clear/clear_test.go (about)

     1  package clear
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/daticahealth/cli/test"
     7  )
     8  
     9  var clearTests = []struct {
    10  	privKey bool
    11  	session bool
    12  	envs    bool
    13  	pods    bool
    14  }{
    15  	{false, false, false, false},
    16  	{false, false, false, true},
    17  	{false, false, true, false},
    18  	{false, true, false, false},
    19  	{true, false, false, false},
    20  	{true, true, true, true},
    21  }
    22  
    23  func TestClear(t *testing.T) {
    24  	for _, data := range clearTests {
    25  		t.Logf("Data: %+v", data)
    26  		settings := test.GetSettings("")
    27  		err := CmdClear(data.privKey, data.session, data.envs, data.pods, settings)
    28  		if err != nil {
    29  			t.Errorf("Unexpected error: %s", err)
    30  			continue
    31  		}
    32  		if data.privKey && settings.PrivateKeyPath != "" {
    33  			t.Errorf("Private key should have been cleared")
    34  			continue
    35  		}
    36  		if data.session && settings.SessionToken != "" {
    37  			t.Errorf("Session token should have been cleared")
    38  		}
    39  		if data.envs && settings.Environments != nil && len(settings.Environments) != 0 {
    40  			t.Errorf("Environments should have been cleared")
    41  		}
    42  		if data.pods && settings.Pods != nil && len(*settings.Pods) != 0 {
    43  			t.Errorf("Pods should have been cleared")
    44  		}
    45  	}
    46  }