godog/internal/models/feature_test.go
Brian Hnat 5d705e5b8e
Pretty Print when using rules (#440) (#480)
* Pretty Print when using rules (#440)

* Pretty Print when using rules (#440)

* fix a few formatting mistakes (#440)

* added test with rule and scenario outline (#440)
2022-06-17 07:32:07 -07:00

108 строки
2,8 КиБ
Go

package models_test
import (
"testing"
"github.com/cucumber/godog/internal/models"
"github.com/cucumber/godog/internal/testutils"
"github.com/stretchr/testify/assert"
)
func Test_Find(t *testing.T) {
ft := testutils.BuildTestFeature(t)
t.Run("scenario", func(t *testing.T) {
sc := ft.FindScenario(ft.Pickles[0].AstNodeIds[0])
assert.NotNilf(t, sc, "expected scenario to not be nil")
})
t.Run("background", func(t *testing.T) {
bg := ft.FindBackground(ft.Pickles[0].AstNodeIds[0])
assert.NotNilf(t, bg, "expected background to not be nil")
})
t.Run("example", func(t *testing.T) {
example, row := ft.FindExample(ft.Pickles[1].AstNodeIds[1])
assert.NotNilf(t, example, "expected example to not be nil")
assert.NotNilf(t, row, "expected table row to not be nil")
})
t.Run("step", func(t *testing.T) {
for _, ps := range ft.Pickles[0].Steps {
step := ft.FindStep(ps.AstNodeIds[0])
assert.NotNilf(t, step, "expected step to not be nil")
}
})
t.Run("rule", func(t *testing.T) {
sc := ft.FindRule(ft.Pickles[0].AstNodeIds[0])
assert.Nilf(t, sc, "expected rule to be nil")
})
}
func Test_FindInRule(t *testing.T) {
ft := testutils.BuildTestFeatureWithRules(t)
t.Run("rule", func(t *testing.T) {
sc := ft.FindRule(ft.Pickles[0].AstNodeIds[0])
assert.NotNilf(t, sc, "expected rule to not be nil")
})
t.Run("scenario", func(t *testing.T) {
sc := ft.FindScenario(ft.Pickles[0].AstNodeIds[0])
assert.NotNilf(t, sc, "expected scenario to not be nil")
})
t.Run("background", func(t *testing.T) {
bg := ft.FindBackground(ft.Pickles[0].AstNodeIds[0])
assert.NotNilf(t, bg, "expected background to not be nil")
})
t.Run("example", func(t *testing.T) {
example, row := ft.FindExample(ft.Pickles[1].AstNodeIds[1])
assert.NotNilf(t, example, "expected example to not be nil")
assert.NotNilf(t, row, "expected table row to not be nil")
})
t.Run("step", func(t *testing.T) {
for _, ps := range ft.Pickles[0].Steps {
step := ft.FindStep(ps.AstNodeIds[0])
assert.NotNilf(t, step, "expected step to not be nil")
}
})
}
func Test_NotFind(t *testing.T) {
testCases := []struct {
Feature models.Feature
}{
{testutils.BuildTestFeature(t)},
{testutils.BuildTestFeatureWithRules(t)},
}
for _, tc := range testCases {
ft := tc.Feature
t.Run("scenario", func(t *testing.T) {
sc := ft.FindScenario("-")
assert.Nilf(t, sc, "expected scenario to be nil")
})
t.Run("background", func(t *testing.T) {
bg := ft.FindBackground("-")
assert.Nilf(t, bg, "expected background to be nil")
})
t.Run("example", func(t *testing.T) {
example, row := ft.FindExample("-")
assert.Nilf(t, example, "expected example to be nil")
assert.Nilf(t, row, "expected table row to be nil")
})
t.Run("step", func(t *testing.T) {
step := ft.FindStep("-")
assert.Nilf(t, step, "expected step to be nil")
})
}
}