Skip to content

Document how expect().toHaveProperty works with a dot in the property name. #5653

@hawkeye64

Description

@hawkeye64

Do you want to request a feature or report a bug?
bug

What is the current behavior?
toHaveProperty fails with nested property that has a dot (".") in the name.

If the current behavior is a bug, please provide the steps to reproduce and
either a repl.it demo through https://repl.it/languages/jest or a minimal
repository on GitHub that we can yarn install and yarn test.

Here is the data. It was originally xml from a soap message, then converted to json via package xml2js.
let response = {"AccessPolicyConfig": "false", "DefaultAccessPolicy": "true", "Dot1X": "false", "HttpDigest": "false", "KerberosToken": "false", "OnboardKeyGeneration": "false", "RELToken": "false", "RemoteUserHandling": "false", "SAMLToken": "false", "SupportedEAPMethods": "0", "TLS1.0": "false", "TLS1.1": "false", "TLS1.2": "false", "UsernameToken": "true", "X.509Token": "false"}

These tests fail:
expect(response).toHaveProperty('TLS1.0')
expect(response).toHaveProperty('TLS1.1')
expect(response).toHaveProperty('TLS1.2')
expect(response).toHaveProperty('X.509Token')

REPL.IT example:
https://repl.it/@hawkeye64/dot-in-property-test-fail

What is the expected behavior?
The have expect().toHaveProperty() to not fail.

Please provide your exact Jest configuration and mention your Jest, node,
yarn/npm version and operating system.

Jest v22.1.2 node v7.4.0 linux/amd64

config.json:
{
"testRegex": ".*-test\.js$",
"testEnvironment": "node"
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions