Sha256: e4c0b09867614505c1f749de8d010b14daf1c6fb076ef914d187c375f0302dad

Contents?: true

Size: 1.25 KB

Versions: 87

Compression:

Stored size: 1.25 KB

Contents

package fzf

import (
	"testing"
	"time"

	"github.com/junegunn/fzf/src/util"
)

func TestReadFromCommand(t *testing.T) {
	strs := []string{}
	eb := util.NewEventBox()
	reader := NewReader(
		func(s []byte) bool { strs = append(strs, string(s)); return true },
		eb, false, true)

	reader.startEventPoller()

	// Check EventBox
	if eb.Peek(EvtReadNew) {
		t.Error("EvtReadNew should not be set yet")
	}

	// Normal command
	reader.fin(reader.readFromCommand(nil, `echo abc&&echo def`))
	if len(strs) != 2 || strs[0] != "abc" || strs[1] != "def" {
		t.Errorf("%s", strs)
	}

	// Check EventBox again
	eb.WaitFor(EvtReadFin)

	// Wait should return immediately
	eb.Wait(func(events *util.Events) {
		events.Clear()
	})

	// EventBox is cleared
	if eb.Peek(EvtReadNew) {
		t.Error("EvtReadNew should not be set yet")
	}

	// Make sure that event poller is finished
	time.Sleep(readerPollIntervalMax)

	// Restart event poller
	reader.startEventPoller()

	// Failing command
	reader.fin(reader.readFromCommand(nil, `no-such-command`))
	strs = []string{}
	if len(strs) > 0 {
		t.Errorf("%s", strs)
	}

	// Check EventBox again
	if eb.Peek(EvtReadNew) {
		t.Error("Command failed. EvtReadNew should not be set")
	}
	if !eb.Peek(EvtReadFin) {
		t.Error("EvtReadFin should be set")
	}
}

Version data entries

87 entries across 87 versions & 1 rubygems

Version Path
doing-2.1.41 lib/helpers/fzf/src/reader_test.go
doing-2.1.40 lib/helpers/fzf/src/reader_test.go
doing-2.1.39 lib/helpers/fzf/src/reader_test.go
doing-2.1.38 lib/helpers/fzf/src/reader_test.go
doing-2.1.37 lib/helpers/fzf/src/reader_test.go
doing-2.1.36 lib/helpers/fzf/src/reader_test.go
doing-2.1.35 lib/helpers/fzf/src/reader_test.go
doing-2.1.34 lib/helpers/fzf/src/reader_test.go
doing-2.1.33 lib/helpers/fzf/src/reader_test.go
doing-2.1.32 lib/helpers/fzf/src/reader_test.go
doing-2.1.31pre lib/helpers/fzf/src/reader_test.go
doing-2.1.30 lib/helpers/fzf/src/reader_test.go
doing-2.1.29 lib/helpers/fzf/src/reader_test.go
doing-2.1.28 lib/helpers/fzf/src/reader_test.go
doing-2.1.27 lib/helpers/fzf/src/reader_test.go
doing-2.1.26 lib/helpers/fzf/src/reader_test.go
doing-2.1.25 lib/helpers/fzf/src/reader_test.go
doing-2.1.24 lib/helpers/fzf/src/reader_test.go
doing-2.1.23 lib/helpers/fzf/src/reader_test.go
doing-2.1.22 lib/helpers/fzf/src/reader_test.go