Skip to content

fix: @IsIn() returns false positive true if not an Array instance was passed #1693

Open
@ghost

Description

Description

@IsIn() decorator always return true, if not an Array instance was passed as possibleValues argument.

Minimal code-snippet showcasing the problem

import { isIn } from 'class-validator';

const value = 'ABC';

console.log(isIn(value, [value]));   // Expected true, received true
console.log(isIn(value, 5));         // Expected false, received true
console.log(isIn(value, 'ABC'));     // Expected false, received true
console.log(isIn(value, false));     // Expected false, received true

Expected behavior

@IsIn() should not return false positive result if it can't validate given value.

Actual behavior

@IsIn() returns false positive result if not an Array instance was passed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    status: fixedIssues with merged PRs, but not released yet.type: fixIssues describing a broken feature.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions