aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/outcome/outcome_test.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-10-29 04:32:43 +0900
committerOphestra <cat@gensokyo.uk>2025-10-29 04:33:13 +0900
commita0b4e47acc228e48165966d8e139277b8f6f450e (patch)
treed363a6781536ce946aa445271ca1d3df587e6031 /internal/outcome/outcome_test.go
parenta52f7038e5a607dd0901244abb791c96deaf9c2d (diff)
internal/outcome: rename from app
This is less ambiguous, and more accurately describes the purpose of the package. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/outcome/outcome_test.go')
-rw-r--r--internal/outcome/outcome_test.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/internal/outcome/outcome_test.go b/internal/outcome/outcome_test.go
new file mode 100644
index 00000000..a03e2501
--- /dev/null
+++ b/internal/outcome/outcome_test.go
@@ -0,0 +1,34 @@
+package outcome
+
+import (
+ "testing"
+
+ "hakurei.app/hst"
+ "hakurei.app/internal/env"
+)
+
+func TestOutcomeStateValid(t *testing.T) {
+ t.Parallel()
+
+ testCases := []struct {
+ name string
+ s *outcomeState
+ want bool
+ }{
+ {"nil", nil, false},
+ {"zero", new(outcomeState), false},
+ {"shim", &outcomeState{Shim: &shimParams{PrivPID: -1, Ops: []outcomeOp{}}, Container: new(hst.ContainerConfig), Paths: new(env.Paths)}, false},
+ {"id", &outcomeState{Shim: &shimParams{PrivPID: 1, Ops: []outcomeOp{}}, Container: new(hst.ContainerConfig), Paths: new(env.Paths)}, false},
+ {"container", &outcomeState{Shim: &shimParams{PrivPID: 1, Ops: []outcomeOp{}}, ID: new(hst.ID), Paths: new(env.Paths)}, false},
+ {"envpaths", &outcomeState{Shim: &shimParams{PrivPID: 1, Ops: []outcomeOp{}}, ID: new(hst.ID), Container: new(hst.ContainerConfig)}, false},
+ {"valid", &outcomeState{Shim: &shimParams{PrivPID: 1, Ops: []outcomeOp{}}, ID: new(hst.ID), Container: new(hst.ContainerConfig), Paths: new(env.Paths)}, true},
+ }
+ for _, tc := range testCases {
+ t.Run(tc.name, func(t *testing.T) {
+ t.Parallel()
+ if got := tc.s.valid(); got != tc.want {
+ t.Errorf("valid: %v, want %v", got, tc.want)
+ }
+ })
+ }
+}