Skip to content

Commit

Permalink
Add test for map
Browse files Browse the repository at this point in the history
  • Loading branch information
k1LoW committed Dec 17, 2024
1 parent 4374d2b commit ae91ea9
Show file tree
Hide file tree
Showing 2 changed files with 111 additions and 64 deletions.
144 changes: 80 additions & 64 deletions defer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,74 +6,90 @@ import (
)

func TestDeferRun(t *testing.T) {
book := "testdata/book/defer.yml"
ctx := context.Background()
o, err := New(Book(book))
if err != nil {
t.Fatal(err)
tests := []struct {
book string
}{
{"testdata/book/defer.yml"},
{"testdata/book/defer_map.yml"},
}
if err := o.Run(ctx); err == nil {
t.Fatal("expected error")
}
if want := 8; len(o.store.steps) != want {
t.Errorf("o.store.steps got %v, want %v", len(o.store.steps), want)
}
r := o.Result()
if want := 8; len(r.StepResults) != want {
t.Errorf("r.StepResults got %v, want %v", len(r.StepResults), want)
}

t.Run("main steps", func(t *testing.T) {
wantResults := []struct {
desc string
skipped bool
err bool
}{
{"step 1", false, false},
{"include step", false, false},
{"step 2", false, false},
{"step 3", false, true},
{"step 4", true, false},
{"defererd step c", false, false},
{"defererd step b", false, true},
{"defererd step a", false, false},
}
for i, want := range wantResults {
got := r.StepResults[i]
if got.Desc != want.desc {
t.Errorf("got %v, want %v", got.Desc, want.desc)
}
if got.Skipped != want.skipped {
t.Errorf("got %v, want %v", got.Skipped, want.skipped)
for _, tt := range tests {
t.Run(tt.book, func(t *testing.T) {
ctx := context.Background()
o, err := New(Book(tt.book))
if err != nil {
t.Fatal(err)
}
if (got.Err == nil) == want.err {
t.Errorf("got %v, want %v", got.Err, want.err)
if err := o.Run(ctx); err == nil {
t.Fatal("expected error")
}
}
})

t.Run("include steps", func(t *testing.T) {
wantResults := []struct {
desc string
skipped bool
err bool
}{
{"included step 1", false, false},
{"included step 2", false, false},
{"included defererd step d", false, false},
}

for i, want := range wantResults {
got := r.StepResults[1].IncludedRunResults[0].StepResults[i]
if got.Desc != want.desc {
t.Errorf("got %v, want %v", got.Desc, want.desc)
if o.useMap {
if want := 8; len(o.store.stepMap) != want {
t.Errorf("o.store.steps got %v, want %v", len(o.store.steps), want)
}
} else {
if want := 8; len(o.store.steps) != want {
t.Errorf("o.store.steps got %v, want %v", len(o.store.steps), want)
}
}
if got.Skipped != want.skipped {
t.Errorf("got %v, want %v", got.Skipped, want.skipped)
r := o.Result()
if want := 8; len(r.StepResults) != want {
t.Errorf("r.StepResults got %v, want %v", len(r.StepResults), want)
}
if (got.Err == nil) == want.err {
t.Errorf("got %v, want %v", got.Err, want.err)
}
}
})

t.Run("main steps", func(t *testing.T) {
wantResults := []struct {
desc string
skipped bool
err bool
}{
{"step 1", false, false},
{"include step", false, false},
{"step 2", false, false},
{"step 3", false, true},
{"step 4", true, false},
{"defererd step c", false, false},
{"defererd step b", false, true},
{"defererd step a", false, false},
}
for i, want := range wantResults {
got := r.StepResults[i]
if got.Desc != want.desc {
t.Errorf("got %v, want %v", got.Desc, want.desc)
}
if got.Skipped != want.skipped {
t.Errorf("got %v, want %v", got.Skipped, want.skipped)
}
if (got.Err == nil) == want.err {
t.Errorf("got %v, want %v", got.Err, want.err)
}
}
})

t.Run("include steps", func(t *testing.T) {
wantResults := []struct {
desc string
skipped bool
err bool
}{
{"included step 1", false, false},
{"included step 2", false, false},
{"included defererd step d", false, false},
}

for i, want := range wantResults {
got := r.StepResults[1].IncludedRunResults[0].StepResults[i]
if got.Desc != want.desc {
t.Errorf("got %v, want %v", got.Desc, want.desc)
}
if got.Skipped != want.skipped {
t.Errorf("got %v, want %v", got.Skipped, want.skipped)
}
if (got.Err == nil) == want.err {
t.Errorf("got %v, want %v", got.Err, want.err)
}
}
})
})
}
}
31 changes: 31 additions & 0 deletions testdata/book/defer_map.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
desc: Test for defer
steps:
step1:
desc: step 1
test: len(steps) == 0
step2:
defer: true
desc: defererd step a
test: len(steps) == 7
step3:
desc: include step
include:
path: defer_included.yml
step4:
defer: true
desc: defererd step b
test: false
step5:
defer: true
desc: defererd step c
test: len(steps) == 5
step6:
desc: step 2
test: len(steps) == 2
step7:
desc: step 3
test: false
step8:
desc: step 4
test: true

0 comments on commit ae91ea9

Please sign in to comment.