test(shared): improve test case for toDisplayString (#4337)

This commit is contained in:
lidlanca 2021-08-16 15:34:59 -04:00 committed by GitHub
parent 42a334e12e
commit 3201224ecb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -19,9 +19,46 @@ describe('toDisplayString', () => {
expect(toDisplayString(obj)).toBe(JSON.stringify(obj, null, 2))
const arr = [obj]
expect(toDisplayString(arr)).toBe(JSON.stringify(arr, null, 2))
const foo = Object.create(null)
foo.bar = 1
expect(toDisplayString(foo)).toBe(JSON.stringify(foo, null, 2))
const objWithToStringOverride = {
foo: 555,
toString() {
return 'override'
}
}
expect(toDisplayString(objWithToStringOverride)).toBe('override')
const objWithNonInvokeableToString = {
foo: 555,
toString: null
}
expect(toDisplayString(objWithNonInvokeableToString)).toBe(
`{
"foo": 555,
"toString": null
}`
)
// object created from null does not have .toString in its prototype
const nullObjectWithoutToString = Object.create(null)
nullObjectWithoutToString.bar = 1
expect(toDisplayString(nullObjectWithoutToString)).toBe(
`{
"bar": 1
}`
)
// array toString override is ignored
const arrWithToStringOverride = [1, 2, 3]
arrWithToStringOverride.toString = () =>
'override for array is not supported'
expect(toDisplayString(arrWithToStringOverride)).toBe(
`[
1,
2,
3
]`
)
})
test('refs', () => {