Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(v16.x backport) test: avoid deep comparisons with literals #42021

Closed

Commits on Feb 16, 2022

  1. test: avoid deep comparisons with literals

    Comparing any value to any non-RegExp literal or undefined using
    strictEqual (or notStrictEqual) passes if and only if deepStrictEqual
    (or notDeepStrictEqual, respectively) passes.
    
    Unnecessarily using deep comparisons adds confusion.
    
    This patch adds an ESLint rule that forbids the use of deepStrictEqual
    and notDeepStrictEqual when the expected value (i.e., the second
    argument) is a non-RegExp literal or undefined.
    
    For reference, an ESTree literal is defined as follows.
    
        extend interface Literal <: Expression {
            type: "Literal";
            value: string | boolean | null | number | RegExp | bigint;
        }
    
    The value `undefined` is an `Identifier` with `name: 'undefined'`.
    
    PR-URL: nodejs#40634
    Reviewed-By: Rich Trott <rtrott@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Michaël Zasso <targos@protonmail.com>
    Reviewed-By: Voltrex <mohammadkeyvanzade94@gmail.com>
    tniessen committed Feb 16, 2022
    Configuration menu
    Copy the full SHA
    d23b259 View commit details
    Browse the repository at this point in the history