From d0c242b4bc8bf39329655272e2f3922a9d559bda Mon Sep 17 00:00:00 2001 From: Kevin Hahn Date: Mon, 27 Jun 2022 13:34:32 +0700 Subject: add unit tests for arrays --- test/completion/common.lua | 258 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 258 insertions(+) (limited to 'test/completion') diff --git a/test/completion/common.lua b/test/completion/common.lua index 27431000..fe09dea2 100644 --- a/test/completion/common.lua +++ b/test/completion/common.lua @@ -1639,6 +1639,264 @@ f('') } } +TEST [[ +---@alias Option string | "AAA" | "BBB" | "CCC" +---@param x Option[] +function f(x) +end + +f({}) +]] +{ + { + label = '"AAA"', + kind = define.CompletionItemKind.EnumMember, + textEdit = EXISTS + }, + { + label = '"BBB"', + kind = define.CompletionItemKind.EnumMember, + textEdit = EXISTS + }, + { + label = '"CCC"', + kind = define.CompletionItemKind.EnumMember, + textEdit = EXISTS + } +} + +TEST [[ +---@alias Option string | "AAA" | "BBB" | "CCC" +---@param x Option[] +function f(x) +end + +f({""}) +]] +{ + { + label = '"AAA"', + kind = define.CompletionItemKind.EnumMember, + textEdit = EXISTS + }, + { + label = '"BBB"', + kind = define.CompletionItemKind.EnumMember, + textEdit = EXISTS + }, + { + label = '"CCC"', + kind = define.CompletionItemKind.EnumMember, + textEdit = EXISTS + } +} + +TEST [[ +---@alias Option string | "AAA" | "BBB" | "CCC" +---@param x Option[] +function f(x) +end + +f() +]] + (nil) + +TEST [[ +---@alias Option "AAA" | "BBB" | "CCC" + +---@type Option[] +local l = {} +]] +{ + { + label = '"AAA"', + kind = define.CompletionItemKind.EnumMember, + }, + { + label = '"BBB"', + kind = define.CompletionItemKind.EnumMember, + }, + { + label = '"CCC"', + kind = define.CompletionItemKind.EnumMember, + } +} + +TEST [[ +---@alias Option "AAA" | "BBB" | "CCC" + +---@type Option[] +local l = {""} +]] +{ + { + label = '"AAA"', + kind = define.CompletionItemKind.EnumMember, + textEdit = EXISTS + }, + { + label = '"BBB"', + kind = define.CompletionItemKind.EnumMember, + textEdit = EXISTS + }, + { + label = '"CCC"', + kind = define.CompletionItemKind.EnumMember, + textEdit = EXISTS + } +} + +TEST [[ +---@alias Option "AAA" | "BBB" | "CCC" + +---@type Option[] +local l = +]] + (nil) + +TEST [[ +---@class OptionObj +---@field a boolean +---@field b boolean + +---@type OptionObj[] +local l = { {} } +]] +{ + { + label = 'a', + kind = define.CompletionItemKind.Property, + }, + { + label = 'b', + kind = define.CompletionItemKind.Property, + } +} + +TEST [[ +---@class OptionObj +---@field a boolean +---@field b boolean + +---@type OptionObj[] +local l = { } +]] + (nil) + +TEST [[ +---@class OptionObj +---@field a boolean +---@field b boolean + +---@type OptionObj[] +local l = +]] + (nil) + +TEST [[ +---@class OptionObj +---@field a boolean +---@field b boolean +---@field children OptionObj[] + +---@type OptionObj[] +local l = { + { + a = true, + children = { {} } + } +} +]] +{ + { + label = 'a', + kind = define.CompletionItemKind.Property, + }, + { + label = 'b', + kind = define.CompletionItemKind.Property, + }, + { + label = 'children', + kind = define.CompletionItemKind.Property, + } +} + +TEST [[ +---@class OptionObj +---@field a boolean +---@field b boolean +---@field children OptionObj[] + +---@type OptionObj[] +local l = { + { + children = {} + } +} +]] +(nil) + +TEST [[ +---@class OptionObj +---@field a boolean +---@field b boolean +---@field children OptionObj[] + +---@type OptionObj[] +local l = { + { + children = + } +} +]] +(nil) + +TEST [[ +---@class OptionObj +---@field a boolean +---@field b boolean +---@param x OptionObj[] +function f(x) +end + +f({ {} }) +]] +{ + { + label = 'a', + kind = define.CompletionItemKind.Property, + }, + { + label = 'b', + kind = define.CompletionItemKind.Property, + } +} + +TEST [[ +---@class OptionObj +---@field a boolean +---@field b boolean +---@param x OptionObj[] +function f(x) +end + +f({}) +]] + (nil) + +TEST [[ +---@class OptionObj +---@field a boolean +---@field b boolean +---@param x OptionObj[] +function f(x) +end + +f() +]] + (nil) + TEST [[ ---this is ---a multi line -- cgit v1.2.3