github.com/mutagen-io/mutagen@v0.18.0-rc1/pkg/prompting/response_mode_test.go (about)

     1  package prompting
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  // TestDetermineResponseMode tests determineResponseMode.
     8  func TestDetermineResponseMode(t *testing.T) {
     9  	// Set up test cases.
    10  	testCases := []struct {
    11  		prompt   string
    12  		expected ResponseMode
    13  	}{
    14  		{"Question? (yes/no)? ", ResponseModeEcho},
    15  		{"Question? (yes/no): ", ResponseModeEcho},
    16  		{"Question? (yes/no/[fingerprint])? ", ResponseModeEcho},
    17  		{"Please type 'yes', 'no' or the fingerprint: ", ResponseModeEcho},
    18  		{"Give me your password: ", ResponseModeSecret},
    19  	}
    20  
    21  	// Perform tests.
    22  	for _, testCase := range testCases {
    23  		if mode := determineResponseMode(testCase.prompt); mode != testCase.expected {
    24  			t.Errorf("prompt ('%s') response mode does not match expected: %v != %v", testCase.prompt, mode, testCase.expected)
    25  		}
    26  	}
    27  }