build(deps): bump github.com/onsi/gomega from 1.38.2 to 1.39.0
Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.38.2 to 1.39.0. - [Release notes](https://github.com/onsi/gomega/releases) - [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/gomega/compare/v1.38.2...v1.39.0) --- updated-dependencies: - dependency-name: github.com/onsi/gomega dependency-version: 1.39.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
committed by
Ralf Haferkamp
parent
98d876b120
commit
123b641fcb
+11
@@ -1,3 +1,14 @@
|
||||
## 1.39.0
|
||||
|
||||
### Features
|
||||
|
||||
Add `MatchErrorStrictly` which only passes if `errors.Is(actual, expected)` returns true. `MatchError`, by contrast, will fallback to string comparison.
|
||||
|
||||
## 1.38.3
|
||||
|
||||
### Fixes
|
||||
make string formatitng more consistent for users who use format.Object directly
|
||||
|
||||
## 1.38.2
|
||||
|
||||
- roll back to go 1.23.0 [c404969]
|
||||
|
||||
+13
-13
@@ -262,7 +262,7 @@ func Object(object any, indentation uint) string {
|
||||
if err, ok := object.(error); ok && !isNilValue(value) { // isNilValue check needed here to avoid nil deref due to boxed nil
|
||||
commonRepresentation += "\n" + IndentString(err.Error(), indentation) + "\n" + indent
|
||||
}
|
||||
return fmt.Sprintf("%s<%s>: %s%s", indent, formatType(value), commonRepresentation, formatValue(value, indentation))
|
||||
return fmt.Sprintf("%s<%s>: %s%s", indent, formatType(value), commonRepresentation, formatValue(value, indentation, true))
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -306,7 +306,7 @@ func formatType(v reflect.Value) string {
|
||||
}
|
||||
}
|
||||
|
||||
func formatValue(value reflect.Value, indentation uint) string {
|
||||
func formatValue(value reflect.Value, indentation uint, isTopLevel bool) string {
|
||||
if indentation > MaxDepth {
|
||||
return "..."
|
||||
}
|
||||
@@ -367,11 +367,11 @@ func formatValue(value reflect.Value, indentation uint) string {
|
||||
case reflect.Func:
|
||||
return fmt.Sprintf("0x%x", value.Pointer())
|
||||
case reflect.Ptr:
|
||||
return formatValue(value.Elem(), indentation)
|
||||
return formatValue(value.Elem(), indentation, isTopLevel)
|
||||
case reflect.Slice:
|
||||
return truncateLongStrings(formatSlice(value, indentation))
|
||||
case reflect.String:
|
||||
return truncateLongStrings(formatString(value.String(), indentation))
|
||||
return truncateLongStrings(formatString(value.String(), indentation, isTopLevel))
|
||||
case reflect.Array:
|
||||
return truncateLongStrings(formatSlice(value, indentation))
|
||||
case reflect.Map:
|
||||
@@ -392,8 +392,8 @@ func formatValue(value reflect.Value, indentation uint) string {
|
||||
}
|
||||
}
|
||||
|
||||
func formatString(object any, indentation uint) string {
|
||||
if indentation == 1 {
|
||||
func formatString(object any, indentation uint, isTopLevel bool) string {
|
||||
if isTopLevel {
|
||||
s := fmt.Sprintf("%s", object)
|
||||
components := strings.Split(s, "\n")
|
||||
result := ""
|
||||
@@ -416,14 +416,14 @@ func formatString(object any, indentation uint) string {
|
||||
|
||||
func formatSlice(v reflect.Value, indentation uint) string {
|
||||
if v.Kind() == reflect.Slice && v.Type().Elem().Kind() == reflect.Uint8 && isPrintableString(string(v.Bytes())) {
|
||||
return formatString(v.Bytes(), indentation)
|
||||
return formatString(v.Bytes(), indentation, false)
|
||||
}
|
||||
|
||||
l := v.Len()
|
||||
result := make([]string, l)
|
||||
longest := 0
|
||||
for i := 0; i < l; i++ {
|
||||
result[i] = formatValue(v.Index(i), indentation+1)
|
||||
for i := range l {
|
||||
result[i] = formatValue(v.Index(i), indentation+1, false)
|
||||
if len(result[i]) > longest {
|
||||
longest = len(result[i])
|
||||
}
|
||||
@@ -443,7 +443,7 @@ func formatMap(v reflect.Value, indentation uint) string {
|
||||
longest := 0
|
||||
for i, key := range v.MapKeys() {
|
||||
value := v.MapIndex(key)
|
||||
result[i] = fmt.Sprintf("%s: %s", formatValue(key, indentation+1), formatValue(value, indentation+1))
|
||||
result[i] = fmt.Sprintf("%s: %s", formatValue(key, indentation+1, false), formatValue(value, indentation+1, false))
|
||||
if len(result[i]) > longest {
|
||||
longest = len(result[i])
|
||||
}
|
||||
@@ -462,10 +462,10 @@ func formatStruct(v reflect.Value, indentation uint) string {
|
||||
l := v.NumField()
|
||||
result := []string{}
|
||||
longest := 0
|
||||
for i := 0; i < l; i++ {
|
||||
for i := range l {
|
||||
structField := t.Field(i)
|
||||
fieldEntry := v.Field(i)
|
||||
representation := fmt.Sprintf("%s: %s", structField.Name, formatValue(fieldEntry, indentation+1))
|
||||
representation := fmt.Sprintf("%s: %s", structField.Name, formatValue(fieldEntry, indentation+1, false))
|
||||
result = append(result, representation)
|
||||
if len(representation) > longest {
|
||||
longest = len(representation)
|
||||
@@ -479,7 +479,7 @@ func formatStruct(v reflect.Value, indentation uint) string {
|
||||
}
|
||||
|
||||
func formatInterface(v reflect.Value, indentation uint) string {
|
||||
return fmt.Sprintf("<%s>%s", formatType(v.Elem()), formatValue(v.Elem(), indentation))
|
||||
return fmt.Sprintf("<%s>%s", formatType(v.Elem()), formatValue(v.Elem(), indentation, false))
|
||||
}
|
||||
|
||||
func isNilValue(a reflect.Value) bool {
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ import (
|
||||
"github.com/onsi/gomega/types"
|
||||
)
|
||||
|
||||
const GOMEGA_VERSION = "1.38.2"
|
||||
const GOMEGA_VERSION = "1.39.0"
|
||||
|
||||
const nilGomegaPanic = `You are trying to make an assertion, but haven't registered Gomega's fail handler.
|
||||
If you're using Ginkgo then you probably forgot to put your assertion in an It().
|
||||
|
||||
+20
-2
@@ -146,6 +146,24 @@ func MatchError(expected any, functionErrorDescription ...any) types.GomegaMatch
|
||||
}
|
||||
}
|
||||
|
||||
// MatchErrorStrictly succeeds iff actual is a non-nil error that matches the passed in
|
||||
// expected error according to errors.Is(actual, expected).
|
||||
//
|
||||
// This behavior differs from MatchError where
|
||||
//
|
||||
// Expect(errors.New("some error")).To(MatchError(errors.New("some error")))
|
||||
//
|
||||
// succeeds, but errors.Is would return false so:
|
||||
//
|
||||
// Expect(errors.New("some error")).To(MatchErrorStrictly(errors.New("some error")))
|
||||
//
|
||||
// fails.
|
||||
func MatchErrorStrictly(expected error) types.GomegaMatcher {
|
||||
return &matchers.MatchErrorStrictlyMatcher{
|
||||
Expected: expected,
|
||||
}
|
||||
}
|
||||
|
||||
// BeClosed succeeds if actual is a closed channel.
|
||||
// It is an error to pass a non-channel to BeClosed, it is also an error to pass nil
|
||||
//
|
||||
@@ -515,8 +533,8 @@ func HaveExistingField(field string) types.GomegaMatcher {
|
||||
// and even interface values.
|
||||
//
|
||||
// actual := 42
|
||||
// Expect(actual).To(HaveValue(42))
|
||||
// Expect(&actual).To(HaveValue(42))
|
||||
// Expect(actual).To(HaveValue(Equal(42)))
|
||||
// Expect(&actual).To(HaveValue(Equal(42)))
|
||||
func HaveValue(matcher types.GomegaMatcher) types.GomegaMatcher {
|
||||
return &matchers.HaveValueMatcher{
|
||||
Matcher: matcher,
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ func (matcher *HaveKeyMatcher) Match(actual any) (success bool, err error) {
|
||||
}
|
||||
|
||||
keys := reflect.ValueOf(actual).MapKeys()
|
||||
for i := 0; i < len(keys); i++ {
|
||||
for i := range keys {
|
||||
success, err := keyMatcher.Match(keys[i].Interface())
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("HaveKey's key matcher failed with:\n%s%s", format.Indent, err.Error())
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ func (matcher *HaveKeyWithValueMatcher) Match(actual any) (success bool, err err
|
||||
}
|
||||
|
||||
keys := reflect.ValueOf(actual).MapKeys()
|
||||
for i := 0; i < len(keys); i++ {
|
||||
for i := range keys {
|
||||
success, err := keyMatcher.Match(keys[i].Interface())
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("HaveKeyWithValue's key matcher failed with:\n%s%s", format.Indent, err.Error())
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package matchers
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/onsi/gomega/format"
|
||||
)
|
||||
|
||||
type MatchErrorStrictlyMatcher struct {
|
||||
Expected error
|
||||
}
|
||||
|
||||
func (matcher *MatchErrorStrictlyMatcher) Match(actual any) (success bool, err error) {
|
||||
|
||||
if isNil(matcher.Expected) {
|
||||
return false, fmt.Errorf("Expected error is nil, use \"ToNot(HaveOccurred())\" to explicitly check for nil errors")
|
||||
}
|
||||
|
||||
if isNil(actual) {
|
||||
return false, fmt.Errorf("Expected an error, got nil")
|
||||
}
|
||||
|
||||
if !isError(actual) {
|
||||
return false, fmt.Errorf("Expected an error. Got:\n%s", format.Object(actual, 1))
|
||||
}
|
||||
|
||||
actualErr := actual.(error)
|
||||
|
||||
return errors.Is(actualErr, matcher.Expected), nil
|
||||
}
|
||||
|
||||
func (matcher *MatchErrorStrictlyMatcher) FailureMessage(actual any) (message string) {
|
||||
return format.Message(actual, "to match error", matcher.Expected)
|
||||
}
|
||||
|
||||
func (matcher *MatchErrorStrictlyMatcher) NegatedFailureMessage(actual any) (message string) {
|
||||
return format.Message(actual, "not to match error", matcher.Expected)
|
||||
}
|
||||
+5
-8
@@ -1,6 +1,9 @@
|
||||
package edge
|
||||
|
||||
import . "github.com/onsi/gomega/matchers/support/goraph/node"
|
||||
import (
|
||||
. "github.com/onsi/gomega/matchers/support/goraph/node"
|
||||
"slices"
|
||||
)
|
||||
|
||||
type Edge struct {
|
||||
Node1 int
|
||||
@@ -20,13 +23,7 @@ func (ec EdgeSet) Free(node Node) bool {
|
||||
}
|
||||
|
||||
func (ec EdgeSet) Contains(edge Edge) bool {
|
||||
for _, e := range ec {
|
||||
if e == edge {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return slices.Contains(ec, edge)
|
||||
}
|
||||
|
||||
func (ec EdgeSet) FindByNodes(node1, node2 Node) (Edge, bool) {
|
||||
|
||||
Reference in New Issue
Block a user