Test on skipmissing failing but on collect(skipmissing) passing

This is odd. Why ?

julia> using Test

julia> y =  [1.1  1.0       0.0   missing  8.0
             2.0  0.952381  1.0  1.0       2.0
             7.0  0.0       1.0  0.0       1.0]
3×5 Matrix{Union{Missing, Float64}}:
 1.1  1.0       0.0   missing  8.0
 2.0  0.952381  1.0  1.0       2.0
 7.0  0.0       1.0  0.0       1.0

julia> y1 = [1.1  1.0       0.0   missing  8.0
             2.0  0.952381  1.0  1.0       2.0
             7.0  0.0       1.0  0.0       1.0]
3×5 Matrix{Union{Missing, Float64}}:
 1.1  1.0       0.0   missing  8.0
 2.0  0.952381  1.0  1.0       2.0
 7.0  0.0       1.0  0.0       1.0

julia> @test skipmissing(y) == skipmissing(y1)
Test Failed at REPL[21]:1
  Expression: skipmissing(y) == skipmissing(y1)
   Evaluated: skipmissing(Union{Missing, Float64}[1.1 1.0 … missing 8.0; 2.0 0.952381 … 1.0 2.0; 7.0 0.0 … 0.0 1.0]) == skipmissing(Union{Missing, Float64}[1.1 1.0 … missing 8.0; 2.0 0.952381 … 1.0 2.0; 7.0 0.0 … 0.0 1.0])
ERROR: There was an error during testing

julia> @test collect(skipmissing(y)) == collect(skipmissing(y1))
Test Passed
julia> skipmiss_y = skipmissing(y);

julia> skipmiss_y2 = skipmissing(y2);

julia> @which skm_y == skm_y2
==(x, y) in Base at Base.jl:116
# ==(x, y) = x === y

# And also
julia> @which isequal(skm_y, skm_y2)
isequal(x, y) in Base at operators.jl:140
# isequal(x, y) = (x == y)::Bool # all `missing` cases are handled in missing.jl

There are no specific == or isequal methods for SkipMissing, so it is falling back to the default === which will return false since skipmiss_y and skipmiss_y2 are different objects.