src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/edit/insert_api_test.go (about)

     1  package edit
     2  
     3  import (
     4  	"testing"
     5  
     6  	"src.elv.sh/pkg/cli/term"
     7  )
     8  
     9  func TestInsert_Abbr(t *testing.T) {
    10  	f := setup(t)
    11  
    12  	evals(f.Evaler, `set edit:abbr = [&x=full]`)
    13  	f.TTYCtrl.Inject(term.K('x'), term.K('\n'))
    14  
    15  	if code := <-f.codeCh; code != "full" {
    16  		t.Errorf("abbreviation expanded to %q, want %q", code, "full")
    17  	}
    18  }
    19  
    20  func TestInsert_Binding(t *testing.T) {
    21  	f := setup(t)
    22  
    23  	evals(f.Evaler,
    24  		`var called = 0`,
    25  		`set edit:insert:binding[x] = { set called = (+ $called 1) }`)
    26  
    27  	f.TTYCtrl.Inject(term.K('x'), term.K('\n'))
    28  
    29  	if code := <-f.codeCh; code != "" {
    30  		t.Errorf("code = %q, want %q", code, "")
    31  	}
    32  	if called, _ := f.Evaler.Global().Index("called"); called != 1 {
    33  		t.Errorf("called = %v, want 1", called)
    34  	}
    35  }
    36  
    37  func TestInsert_QuotePaste(t *testing.T) {
    38  	f := setup(t)
    39  
    40  	evals(f.Evaler, `set edit:insert:quote-paste = $true`)
    41  
    42  	f.TTYCtrl.Inject(
    43  		term.PasteSetting(true),
    44  		term.K('>'),
    45  		term.PasteSetting(false),
    46  		term.K('\n'))
    47  
    48  	wantCode := `'>'`
    49  	if code := <-f.codeCh; code != wantCode {
    50  		t.Errorf("Got code %q, want %q", code, wantCode)
    51  	}
    52  }
    53  
    54  func TestToggleQuotePaste(t *testing.T) {
    55  	f := setup(t)
    56  
    57  	evals(f.Evaler,
    58  		`var v0 = $edit:insert:quote-paste`,
    59  		`edit:toggle-quote-paste`,
    60  		`var v1 = $edit:insert:quote-paste`,
    61  		`edit:toggle-quote-paste`,
    62  		`var v2 = $edit:insert:quote-paste`)
    63  
    64  	v0 := getGlobal(f.Evaler, "v0").(bool)
    65  	v1 := getGlobal(f.Evaler, "v1").(bool)
    66  	v2 := getGlobal(f.Evaler, "v2").(bool)
    67  	if v1 == v0 {
    68  		t.Errorf("got v1 = v0")
    69  	}
    70  	if v2 == v1 {
    71  		t.Errorf("got v2 = v1")
    72  	}
    73  }