• N
    fix bad test by making number that fits for integer · 6741a0a1
    Neeraj Singh 提交于
    PR https://github.com/rails/rails/pull/10566 had to be reverted
    because after applying the fix test
    "test_raise_record_not_found_error_when_invalid_ids_are_passed"
    started failing.
    
    In this test invalid_id is being assigned a really large number
    which was causing following failure when PR #10566 was applied.
    
    ```
    RangeError: bignum too big to convert into `long long'
    SELECT  `interests`.* FROM `interests`
    WHERE `interests`.`man_id` = ? AND `interests`.`id` = ?
    LIMIT 1  [["man_id", 970345987], ["id", 2394823094892348920348523452345]]
    ```
    
    This test is not failing in master because when test code
    `man.interests.find(invalid_id)` is executed then interests
    are fully loaded in memory and no database query is executed.
    
    After PR #10566 was merged then test code
    `man.interests.find(invalid_id)` started executing sql query
    and hence the error.
    
    In case someone is wondering why the second part of query is not
    failing, then that's because the actual query does not require
    any variable substituation where the number is large. In that
    case the sql generate is following.
    
    ```
    SELECT `interests`.* FROM `interests`
    WHERE `interests`.`man_id` = ? AND `interests`.`id`
    IN (8432342, 2390102913, 2453245234523452)  [["man_id", 970345987]]
    ```
    6741a0a1
inverse_associations_test.rb 29.7 KB