Fix properties with
undefined value pass property assertion
I was doing some interface assertions and noticed that properties that have a value of
I wasn't handling array indexes terminating the path, I figured an array index isn't technically a property. However, it looks like the documentation sells this, so I added the code in the documentation to the unit tests and added this functionality.
I also did some deduplication and cleanup of the code.