mirror of
https://github.com/onyx-and-iris/gobs-cli.git
synced 2025-06-09 13:10:35 +01:00
add output to replaybuffer start/stop
add replaybuffer tests
This commit is contained in:
parent
6ad530ce2e
commit
f58b2dfeab
@ -19,7 +19,11 @@ type ReplayBufferStartCmd struct{} // size = 0x0
|
||||
// Run executes the command to start the replay buffer.
|
||||
func (cmd *ReplayBufferStartCmd) Run(ctx *context) error {
|
||||
_, err := ctx.Client.Outputs.StartReplayBuffer()
|
||||
return err
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to start replay buffer: %w", err)
|
||||
}
|
||||
fmt.Fprintln(ctx.Out, "Replay buffer started.")
|
||||
return nil
|
||||
}
|
||||
|
||||
// ReplayBufferStopCmd stops the replay buffer.
|
||||
@ -28,7 +32,11 @@ type ReplayBufferStopCmd struct{} // size = 0x0
|
||||
// Run executes the command to stop the replay buffer.
|
||||
func (cmd *ReplayBufferStopCmd) Run(ctx *context) error {
|
||||
_, err := ctx.Client.Outputs.StopReplayBuffer()
|
||||
return err
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to stop replay buffer: %w", err)
|
||||
}
|
||||
fmt.Fprintln(ctx.Out, "Replay buffer stopped.")
|
||||
return nil
|
||||
}
|
||||
|
||||
// ReplayBufferToggleCmd toggles the replay buffer state.
|
||||
@ -42,9 +50,9 @@ func (cmd *ReplayBufferToggleCmd) Run(ctx *context) error {
|
||||
}
|
||||
|
||||
if status.OutputActive {
|
||||
fmt.Fprintln(ctx.Out, "Replay buffer started successfully.")
|
||||
fmt.Fprintln(ctx.Out, "Replay buffer started.")
|
||||
} else {
|
||||
fmt.Fprintln(ctx.Out, "Replay buffer stopped successfully.")
|
||||
fmt.Fprintln(ctx.Out, "Replay buffer stopped.")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
85
replaybuffer_test.go
Normal file
85
replaybuffer_test.go
Normal file
@ -0,0 +1,85 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestReplayBufferStart(t *testing.T) {
|
||||
client, disconnect := getClient(t)
|
||||
defer disconnect()
|
||||
|
||||
var out bytes.Buffer
|
||||
context := &context{
|
||||
Client: client,
|
||||
Out: &out,
|
||||
}
|
||||
|
||||
cmd := &ReplayBufferStartCmd{}
|
||||
err := cmd.Run(context)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to start replay buffer: %v", err)
|
||||
}
|
||||
if out.String() != "Replay buffer started.\n" {
|
||||
t.Fatalf("Expected output to be 'Replay buffer started', got '%s'", out.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestReplayBufferStop(t *testing.T) {
|
||||
client, disconnect := getClient(t)
|
||||
defer disconnect()
|
||||
|
||||
var out bytes.Buffer
|
||||
context := &context{
|
||||
Client: client,
|
||||
Out: &out,
|
||||
}
|
||||
|
||||
cmd := &ReplayBufferStopCmd{}
|
||||
err := cmd.Run(context)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to stop replay buffer: %v", err)
|
||||
}
|
||||
if out.String() != "Replay buffer stopped.\n" {
|
||||
t.Fatalf("Expected output to be 'Replay buffer stopped.', got '%s'", out.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestReplayBufferToggle(t *testing.T) {
|
||||
client, disconnect := getClient(t)
|
||||
defer disconnect()
|
||||
|
||||
var out bytes.Buffer
|
||||
context := &context{
|
||||
Client: client,
|
||||
Out: &out,
|
||||
}
|
||||
|
||||
cmdStatus := &ReplayBufferStatusCmd{}
|
||||
err := cmdStatus.Run(context)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to get replay buffer status: %v", err)
|
||||
}
|
||||
var active bool
|
||||
if strings.Contains(out.String(), "Replay buffer is active") {
|
||||
active = true
|
||||
}
|
||||
// Reset output buffer for the next command
|
||||
out.Reset()
|
||||
|
||||
cmdToggle := &ReplayBufferToggleCmd{}
|
||||
err = cmdToggle.Run(context)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to toggle replay buffer: %v", err)
|
||||
}
|
||||
if active {
|
||||
if out.String() != "Replay buffer stopped.\n" {
|
||||
t.Fatalf("Expected output to be 'Replay buffer stopped.', got '%s'", out.String())
|
||||
}
|
||||
} else {
|
||||
if out.String() != "Replay buffer started.\n" {
|
||||
t.Fatalf("Expected output to be 'Replay buffer started.', got '%s'", out.String())
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user