summaryrefslogtreecommitdiff
path: root/vendor/github.com/onsi/ginkgo/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/onsi/ginkgo/extensions')
-rw-r--r--vendor/github.com/onsi/ginkgo/extensions/table/table.go37
-rw-r--r--vendor/github.com/onsi/ginkgo/extensions/table/table_entry.go33
2 files changed, 36 insertions, 34 deletions
diff --git a/vendor/github.com/onsi/ginkgo/extensions/table/table.go b/vendor/github.com/onsi/ginkgo/extensions/table/table.go
index ae8ab7d24..2ed5314f2 100644
--- a/vendor/github.com/onsi/ginkgo/extensions/table/table.go
+++ b/vendor/github.com/onsi/ginkgo/extensions/table/table.go
@@ -12,7 +12,9 @@ import (
"fmt"
"reflect"
- "github.com/onsi/ginkgo"
+ "github.com/onsi/ginkgo/internal/codelocation"
+ "github.com/onsi/ginkgo/internal/global"
+ "github.com/onsi/ginkgo/types"
)
/*
@@ -42,7 +44,7 @@ It's important to understand that the `Describe`s and `It`s are generated at eva
Individual Entries can be focused (with FEntry) or marked pending (with PEntry or XEntry). In addition, the entire table can be focused or marked pending with FDescribeTable and PDescribeTable/XDescribeTable.
*/
func DescribeTable(description string, itBody interface{}, entries ...TableEntry) bool {
- describeTable(description, itBody, entries, false, false)
+ describeTable(description, itBody, entries, types.FlagTypeNone)
return true
}
@@ -50,7 +52,7 @@ func DescribeTable(description string, itBody interface{}, entries ...TableEntry
You can focus a table with `FDescribeTable`. This is equivalent to `FDescribe`.
*/
func FDescribeTable(description string, itBody interface{}, entries ...TableEntry) bool {
- describeTable(description, itBody, entries, false, true)
+ describeTable(description, itBody, entries, types.FlagTypeFocused)
return true
}
@@ -58,7 +60,7 @@ func FDescribeTable(description string, itBody interface{}, entries ...TableEntr
You can mark a table as pending with `PDescribeTable`. This is equivalent to `PDescribe`.
*/
func PDescribeTable(description string, itBody interface{}, entries ...TableEntry) bool {
- describeTable(description, itBody, entries, true, false)
+ describeTable(description, itBody, entries, types.FlagTypePending)
return true
}
@@ -66,33 +68,24 @@ func PDescribeTable(description string, itBody interface{}, entries ...TableEntr
You can mark a table as pending with `XDescribeTable`. This is equivalent to `XDescribe`.
*/
func XDescribeTable(description string, itBody interface{}, entries ...TableEntry) bool {
- describeTable(description, itBody, entries, true, false)
+ describeTable(description, itBody, entries, types.FlagTypePending)
return true
}
-func describeTable(description string, itBody interface{}, entries []TableEntry, pending bool, focused bool) {
+func describeTable(description string, itBody interface{}, entries []TableEntry, flag types.FlagType) {
itBodyValue := reflect.ValueOf(itBody)
if itBodyValue.Kind() != reflect.Func {
panic(fmt.Sprintf("DescribeTable expects a function, got %#v", itBody))
}
- if pending {
- ginkgo.PDescribe(description, func() {
+ global.Suite.PushContainerNode(
+ description,
+ func() {
for _, entry := range entries {
entry.generateIt(itBodyValue)
}
- })
- } else if focused {
- ginkgo.FDescribe(description, func() {
- for _, entry := range entries {
- entry.generateIt(itBodyValue)
- }
- })
- } else {
- ginkgo.Describe(description, func() {
- for _, entry := range entries {
- entry.generateIt(itBodyValue)
- }
- })
- }
+ },
+ flag,
+ codelocation.New(2),
+ )
}
diff --git a/vendor/github.com/onsi/ginkgo/extensions/table/table_entry.go b/vendor/github.com/onsi/ginkgo/extensions/table/table_entry.go
index 93f3bc3b0..1a919a1fe 100644
--- a/vendor/github.com/onsi/ginkgo/extensions/table/table_entry.go
+++ b/vendor/github.com/onsi/ginkgo/extensions/table/table_entry.go
@@ -3,22 +3,31 @@ package table
import (
"reflect"
- "github.com/onsi/ginkgo"
+ "github.com/onsi/ginkgo/internal/codelocation"
+ "github.com/onsi/ginkgo/internal/global"
+ "github.com/onsi/ginkgo/types"
)
/*
TableEntry represents an entry in a table test. You generally use the `Entry` constructor.
*/
type TableEntry struct {
- Description string
- Parameters []interface{}
- Pending bool
- Focused bool
+ Description string
+ Parameters []interface{}
+ Pending bool
+ Focused bool
+ codeLocation types.CodeLocation
}
func (t TableEntry) generateIt(itBody reflect.Value) {
+ if t.codeLocation == (types.CodeLocation{}) {
+ // The user created the TableEntry struct directly instead of having used the (F/P/X)Entry constructors.
+ // Therefore default to the code location of the surrounding DescribeTable.
+ t.codeLocation = codelocation.New(5)
+ }
+
if t.Pending {
- ginkgo.PIt(t.Description)
+ global.Suite.PushItNode(t.Description, func() {}, types.FlagTypePending, t.codeLocation, 0)
return
}
@@ -38,9 +47,9 @@ func (t TableEntry) generateIt(itBody reflect.Value) {
}
if t.Focused {
- ginkgo.FIt(t.Description, body)
+ global.Suite.PushItNode(t.Description, body, types.FlagTypeFocused, t.codeLocation, global.DefaultTimeout)
} else {
- ginkgo.It(t.Description, body)
+ global.Suite.PushItNode(t.Description, body, types.FlagTypeNone, t.codeLocation, global.DefaultTimeout)
}
}
@@ -53,26 +62,26 @@ Subsequent parameters are saved off and sent to the callback passed in to `Descr
Each Entry ends up generating an individual Ginkgo It.
*/
func Entry(description string, parameters ...interface{}) TableEntry {
- return TableEntry{description, parameters, false, false}
+ return TableEntry{description, parameters, false, false, codelocation.New(1)}
}
/*
You can focus a particular entry with FEntry. This is equivalent to FIt.
*/
func FEntry(description string, parameters ...interface{}) TableEntry {
- return TableEntry{description, parameters, false, true}
+ return TableEntry{description, parameters, false, true, codelocation.New(1)}
}
/*
You can mark a particular entry as pending with PEntry. This is equivalent to PIt.
*/
func PEntry(description string, parameters ...interface{}) TableEntry {
- return TableEntry{description, parameters, true, false}
+ return TableEntry{description, parameters, true, false, codelocation.New(1)}
}
/*
You can mark a particular entry as pending with XEntry. This is equivalent to XIt.
*/
func XEntry(description string, parameters ...interface{}) TableEntry {
- return TableEntry{description, parameters, true, false}
+ return TableEntry{description, parameters, true, false, codelocation.New(1)}
}