BUPKIS
    Preparing search index...

    Variable enumerablePropertyAssertion2Const

    enumerablePropertyAssertion2: AssertionFunctionSync<
        readonly [
            ZodNonOptional<ZodUnknown>,
            "to have enumerable property",
            ZodUnion<readonly [ZodString, ZodNumber, ZodSymbol]>,
        ],
        (
            _subject: unknown,
            key: string | number | symbol,
        ) => ZodCustom<unknown, unknown>,
        readonly [
            ZodNonOptional<ZodUnknown>,
            PhraseLiteralSlot<"to have enumerable property">,
            ZodUnion<readonly [ZodString, ZodNumber, ZodSymbol]>,
        ],
    > = ...

    Asserts that an object has a specified property that is enumerable.

    This is an alternative form of enumerablePropertyAssertion with the object and property key parameters in reverse order. It checks that the given property exists on the object and has its enumerable descriptor set to true using Object.getOwnPropertyDescriptor(). Only own properties (not inherited ones) are considered.

    const obj = { visible: 'value' };
    Object.defineProperty(obj, 'hidden', {
    value: 'secret',
    enumerable: false,
    });

    expect(obj, 'to have enumerable property', 'visible'); // ✓ passes
    expect(obj, 'to have enumerable property', 'hidden'); // ✗ fails - not enumerable
    expect(obj, 'to have enumerable property', 'nonexistent'); // ✗ fails - property doesn't exist

    The object to check for the enumerable property

    The property key to test for enumerability

    enumerablePropertyAssertion - Alternative parameter order