Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Matchfields "pops the stack" too far and tells me the name of the type, not the type #559

Open
squeedee opened this issue Jun 14, 2022 · 0 comments

Comments

@squeedee
Copy link

In this assertion: https://github.com/squeedee/cartographer/blob/effd797484083d3bf7663fc5529c9b17821d16e7/tests/integration/runnable/runnable_test.go#L843

I use MatchFields against a struct. If the fields actually match, then this test passes, but when they don't, the FailureMessage method of the fields.go matcher tells me that the "Expected" is a string, full error below:

• Failure [2.009 seconds]
Stamping a resource on Runnable Creation
/Users/vmware/workspace/cartographer/tests/integration/runnable/runnable_test.go:37
  Latest stampedObject is the status
  /Users/vmware/workspace/cartographer/tests/integration/runnable/runnable_test.go:710
    populates the runnable.Status.outputs properly [It]
    /Users/vmware/workspace/cartographer/tests/integration/runnable/runnable_test.go:745

    Timed out after 1.000s.
    Expected
        <string>: RunnableStatus   <<< #### this should be the struct ####
    to match fields: {
    .Conditions:
    	Expected
    	    <[]v1.Condition | len:3, cap:4>: [
    	        {
    	            Type: "RunTemplateReady",
    	            Status: "True",
    	            ObservedGeneration: 0,
    	            LastTransitionTime: {
    	                Time: 2022-06-14T10:45:39-04:00,
    	            },
    	            Reason: "Ready",
    	            Message: "",
    	        },
    	        {
    	            Type: "StampedObjectReady",
    	            Status: "Unknown",
    	            ObservedGeneration: 0,
    	            LastTransitionTime: {
    	                Time: 2022-06-14T10:45:39-04:00,
    	            },
    	            Reason: "StampedObjectStatusAbsent",
    	            Message: "",
    	        },
    	        {
    	            Type: "Ready",
    	            Status: "Unknown",
    	            ObservedGeneration: 0,
    	            LastTransitionTime: {
    	                Time: 2022-06-14T10:45:39-04:00,
    	            },
    	            Reason: "StampedObjectStatusAbsent",
    	            Message: "",
    	        },
    	    ]
    	to contain elements
    	    <[]*gstruct.FieldsMatcher | len:3, cap:3>: [
    	        {
    	            Fields: {
    	                "Type": <*matchers.EqualMatcher | 0xc000537ad0>{
    	                    Expected: <string>"Ready",
    	                },
    	                "Status": <*matchers.EqualMatcher | 0xc000537ae0>{
    	                    Expected: <v1.ConditionStatus>"False",
    	                },
    	            },
    	            IgnoreExtras: true,
    	            IgnoreMissing: false,
    	            failures: [
    	                <*errors.NestedError | 0xc000ae5380>{
    	                    Path: ".Status",
    	                    Err: <*errors.errorString | 0xc0005377b0>{
    	                        s: "Expected\n    <v1.ConditionStatus>: Unknown\nto equal\n    <v1.ConditionStatus>: False",
    	                    },
    	                },
    	            ],
    	        },
    	        {
    	            Fields: {
    	                "Type": <*matchers.EqualMatcher | 0xc000537af0>{
    	                    Expected: <string>"StampedObjectReady",
    	                },
    	                "Status": <*matchers.EqualMatcher | 0xc000537b00>{
    	                    Expected: <v1.ConditionStatus>"False",
    	                },
    	            },
    	            IgnoreExtras: true,
    	            IgnoreMissing: false,
    	            failures: [
    	                <*errors.NestedError | 0xc000ae53a0>{
    	                    Path: ".Type",
    	                    Err: <*errors.errorString | 0xc0005378e0>{
    	                        s: "Expected\n    <string>: Ready\nto equal\n    <string>: StampedObjectReady",
    	                    },
    	                },
    	                <*errors.NestedError | 0xc000ae53c0>{
    	                    Path: ".Status",
    	                    Err: <*errors.errorString | 0xc0005379d0>{
    	                        s: "Expected\n    <v1.ConditionStatus>: Unknown\nto equal\n    <v1.ConditionStatus>: False",
    	                    },
    	                },
    	            ],
    	        },
    	        {
    	            Fields: {
    	                "Type": <*matchers.EqualMatcher | 0xc000537b10>{
    	                    Expected: <string>"RunTemplateReady",
    	                },
    	                "Status": <*matchers.EqualMatcher | 0xc000537b20>{
    	                    Expected: <v1.ConditionStatus>"True",
    	                },
    	            },
    	            IgnoreExtras: true,
    	            IgnoreMissing: false,
    	            failures: [
    	                <*errors.NestedError | 0xc000ae5400>{
    	                    Path: ".Type",
    	                    Err: <*errors.errorString | 0xc000537c50>{
    	                        s: "Expected\n    <string>: Ready\nto equal\n    <string>: RunTemplateReady",
    	                    },
    	                },
    	                <*errors.NestedError | 0xc000ae5420>{
    	                    Path: ".Status",
    	                    Err: <*errors.errorString | 0xc000537d40>{
    	                        s: "Expected\n    <v1.ConditionStatus>: Unknown\nto equal\n    <v1.ConditionStatus>: True",
    	                    },
    	                },
    	            ],
    	        },
    	    ]
    	the missing elements were
    	    <[]*gstruct.FieldsMatcher | len:2, cap:2>: [
    	        {
    	            Fields: {
    	                "Type": <*matchers.EqualMatcher | 0xc000537ad0>{
    	                    Expected: <string>"Ready",
    	                },
    	                "Status": <*matchers.EqualMatcher | 0xc000537ae0>{
    	                    Expected: <v1.ConditionStatus>"False",
    	                },
    	            },
    	            IgnoreExtras: true,
    	            IgnoreMissing: false,
    	            failures: [
    	                <*errors.NestedError | 0xc000ae5380>{
    	                    Path: ".Status",
    	                    Err: <*errors.errorString | 0xc0005377b0>{
    	                        s: "Expected\n    <v1.ConditionStatus>: Unknown\nto equal\n    <v1.ConditionStatus>: False",
    	                    },
    	                },
    	            ],
    	        },
    	        {
    	            Fields: {
    	                "Status": <*matchers.EqualMatcher | 0xc000537b00>{
    	                    Expected: <v1.ConditionStatus>"False",
    	                },
    	                "Type": <*matchers.EqualMatcher | 0xc000537af0>{
    	                    Expected: <string>"StampedObjectReady",
    	                },
    	            },
    	            IgnoreExtras: true,
    	            IgnoreMissing: false,
    	            failures: [
    	                <*errors.NestedError | 0xc000ae53a0>{
    	                    Path: ".Type",
    	                    Err: <*errors.errorString | 0xc0005378e0>{
    	                        s: "Expected\n    <string>: Ready\nto equal\n    <string>: StampedObjectReady",
    	                    },
    	                },
    	                <*errors.NestedError | 0xc000ae53c0>{
    	                    Path: ".Status",
    	                    Err: <*errors.errorString | 0xc0005379d0>{
    	                        s: "Expected\n    <v1.ConditionStatus>: Unknown\nto equal\n    <v1.ConditionStatus>: False",
    	                    },
    	                },
    	            ],
    	        },
    	    ]
    }
    

    /Users/vmware/workspace/cartographer/tests/integration/runnable/runnable_test.go:847
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant