add new integration test pattern

This commit is contained in:
Jesse Duffield 2022-08-07 22:09:39 +10:00
parent c7f9d5801b
commit 77881a9c7d
154 changed files with 1514 additions and 670 deletions

View file

@ -108,6 +108,8 @@ const (
NORMAL PlayMode = iota
RECORDING
REPLAYING
// for the new form of integration tests
REPLAYING_NEW
)
type Recording struct {
@ -116,8 +118,8 @@ type Recording struct {
}
type replayedEvents struct {
keys chan *TcellKeyEventWrapper
resizes chan *TcellResizeEventWrapper
Keys chan *TcellKeyEventWrapper
Resizes chan *TcellResizeEventWrapper
}
type RecordingConfig struct {
@ -216,10 +218,10 @@ func NewGui(mode OutputMode, supportOverlaps bool, playMode PlayMode, headless b
KeyEvents: []*TcellKeyEventWrapper{},
ResizeEvents: []*TcellResizeEventWrapper{},
}
} else if playMode == REPLAYING {
} else if playMode == REPLAYING || playMode == REPLAYING_NEW {
g.ReplayedEvents = replayedEvents{
keys: make(chan *TcellKeyEventWrapper),
resizes: make(chan *TcellResizeEventWrapper),
Keys: make(chan *TcellKeyEventWrapper),
Resizes: make(chan *TcellResizeEventWrapper),
}
}
@ -1420,7 +1422,7 @@ func (g *Gui) replayRecording() {
case <-ticker.C:
timeWaited += 1
if timeWaited >= timeToWait {
g.ReplayedEvents.keys <- event
g.ReplayedEvents.Keys <- event
break middle
}
case <-g.stop:
@ -1453,7 +1455,7 @@ func (g *Gui) replayRecording() {
case <-ticker.C:
timeWaited += 1
if timeWaited >= timeToWait {
g.ReplayedEvents.resizes <- event
g.ReplayedEvents.Resizes <- event
break middle2
}
case <-g.stop:

View file

@ -232,11 +232,11 @@ func (g *Gui) timeSinceStart() int64 {
// pollEvent get tcell.Event and transform it into gocuiEvent
func (g *Gui) pollEvent() GocuiEvent {
var tev tcell.Event
if g.PlayMode == REPLAYING {
if g.PlayMode == REPLAYING || g.PlayMode == REPLAYING_NEW {
select {
case ev := <-g.ReplayedEvents.keys:
case ev := <-g.ReplayedEvents.Keys:
tev = (ev).toTcellEvent()
case ev := <-g.ReplayedEvents.resizes:
case ev := <-g.ReplayedEvents.Resizes:
tev = (ev).toTcellEvent()
}
} else {