Files
nvim-cmp/lua/cmp/utils/misc_spec.lua
2024-11-02 13:54:35 +09:00

91 lines
1.5 KiB
Lua

local spec = require('cmp.utils.spec')
local misc = require('cmp.utils.misc')
describe('misc', function()
before_each(spec.before)
it('copy', function()
-- basic.
local tbl, copy
tbl = {
a = {
b = 1,
},
}
copy = misc.copy(tbl)
assert.are_not.equal(tbl, copy)
assert.are_not.equal(tbl.a, copy.a)
assert.are.same(tbl, copy)
-- self reference.
tbl = {
a = {
b = 1,
},
}
tbl.a.c = tbl.a
copy = misc.copy(tbl)
assert.are_not.equal(tbl, copy)
assert.are_not.equal(tbl.a, copy.a)
assert.are_not.equal(tbl.a.c, copy.a.c)
assert.are.same(tbl, copy)
end)
it('merge', function()
local merged
merged = misc.merge({
a = {},
}, {
a = {
b = 1,
},
})
assert.are.equal(merged.a.b, 1)
merged = misc.merge({
a = {
i = 1,
},
}, {
a = {
c = 2,
},
})
assert.are.equal(merged.a.i, 1)
assert.are.equal(merged.a.c, 2)
merged = misc.merge({
a = false,
}, {
a = {
b = 1,
},
})
assert.are.equal(merged.a, false)
merged = misc.merge({
a = misc.none,
}, {
a = {
b = 1,
},
})
assert.are.equal(merged.a, nil)
merged = misc.merge({
a = misc.none,
}, {
a = nil,
})
assert.are.equal(merged.a, nil)
merged = misc.merge({
a = nil,
}, {
a = misc.none,
})
assert.are.equal(merged.a, nil)
end)
end)