init
This commit is contained in:
72
app/run_test.go
Normal file
72
app/run_test.go
Normal file
@@ -0,0 +1,72 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/voocel/ainovel-cli/domain"
|
||||
"github.com/voocel/ainovel-cli/state"
|
||||
)
|
||||
|
||||
func TestFinalizeSteerIfIdleClearsPendingState(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
store := state.NewStore(dir)
|
||||
if err := store.InitProgress("test", 3); err != nil {
|
||||
t.Fatalf("InitProgress: %v", err)
|
||||
}
|
||||
if err := store.SetFlow(domain.FlowSteering); err != nil {
|
||||
t.Fatalf("SetFlow: %v", err)
|
||||
}
|
||||
if err := store.SetPendingSteer("主角改成女性"); err != nil {
|
||||
t.Fatalf("SetPendingSteer: %v", err)
|
||||
}
|
||||
|
||||
finalizeSteerIfIdle(store)
|
||||
|
||||
progress, err := store.LoadProgress()
|
||||
if err != nil {
|
||||
t.Fatalf("LoadProgress: %v", err)
|
||||
}
|
||||
if progress.Flow != domain.FlowWriting {
|
||||
t.Fatalf("expected flow writing, got %s", progress.Flow)
|
||||
}
|
||||
|
||||
runMeta, err := store.LoadRunMeta()
|
||||
if err != nil {
|
||||
t.Fatalf("LoadRunMeta: %v", err)
|
||||
}
|
||||
if runMeta.PendingSteer != "" {
|
||||
t.Fatalf("expected pending steer cleared, got %q", runMeta.PendingSteer)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFinalizeSteerIfIdleKeepsActiveFlow(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
store := state.NewStore(dir)
|
||||
if err := store.InitProgress("test", 3); err != nil {
|
||||
t.Fatalf("InitProgress: %v", err)
|
||||
}
|
||||
if err := store.SetFlow(domain.FlowRewriting); err != nil {
|
||||
t.Fatalf("SetFlow: %v", err)
|
||||
}
|
||||
if err := store.SetPendingSteer("加入反转"); err != nil {
|
||||
t.Fatalf("SetPendingSteer: %v", err)
|
||||
}
|
||||
|
||||
finalizeSteerIfIdle(store)
|
||||
|
||||
progress, err := store.LoadProgress()
|
||||
if err != nil {
|
||||
t.Fatalf("LoadProgress: %v", err)
|
||||
}
|
||||
if progress.Flow != domain.FlowRewriting {
|
||||
t.Fatalf("expected flow rewriting, got %s", progress.Flow)
|
||||
}
|
||||
|
||||
runMeta, err := store.LoadRunMeta()
|
||||
if err != nil {
|
||||
t.Fatalf("LoadRunMeta: %v", err)
|
||||
}
|
||||
if runMeta.PendingSteer != "加入反转" {
|
||||
t.Fatalf("expected pending steer preserved, got %q", runMeta.PendingSteer)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user