From 0ca28eb2e9b276bae4417f240c39efcb58bf79ad Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 13 Apr 2024 17:04:55 +0100 Subject: [PATCH] Add indentation tests --- test/indent/expressions.bp | 22 ++++++++++++++++++ test/indent/select.bp | 28 +++++++++++++++++++++++ test/indent_spec.lua | 47 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 test/indent/expressions.bp create mode 100644 test/indent/select.bp create mode 100644 test/indent_spec.lua diff --git a/test/indent/expressions.bp b/test/indent/expressions.bp new file mode 100644 index 0000000..a65ce9a --- /dev/null +++ b/test/indent/expressions.bp @@ -0,0 +1,22 @@ +foo = 1 + 2 + +foo = [ + 1, + 2, + 3, +] + +foo = { + foo: [ + "bar", + ], +}, + +foo = { + foo: [ + "bar", + { + key: "value", + }, + ], +}, diff --git a/test/indent/select.bp b/test/indent/select.bp new file mode 100644 index 0000000..6d95b2c --- /dev/null +++ b/test/indent/select.bp @@ -0,0 +1,28 @@ +foo = select(variant("VARIANT"), { + "x86": "my_x86", + "x86_64": [ + "x86", + "x64", + ], + "arm": { + some: "aarch", + value: "aarch64", + }, + default: 0, +}) + +foo = select( + variant("VARIANT"), + { + "x86": "my_x86", + "x86_64": [ + "x86", + "x64", + ], + "arm": { + some: "aarch", + value: "aarch64", + }, + default: 0, + } +) diff --git a/test/indent_spec.lua b/test/indent_spec.lua new file mode 100644 index 0000000..f36145d --- /dev/null +++ b/test/indent_spec.lua @@ -0,0 +1,47 @@ +package.path = package.path .. ";" .. vim.env.NVIM_TREESITTER .. "/?.lua" + +local Runner = require("tests.indent.common").Runner + +-- FIXME: path to root +local runner = Runner:new(it, ".", { + tabstop = 4, + shiftwidth = 4, + softtabstop = 0, + expandtab = true, +}) + +describe("indent Blueprint:", function() + describe("whole file:", function() + runner:whole_file("test/highlight/", { + expected_failures = { + -- NOTE: none for now + }, + }) + runner:whole_file("test/indent/", { + expected_failures = { + -- NOTE: none for now + }, + }) + end) + + describe("new line:", function() + runner:new_line("test/indent/expressions.bp", { on_line = 2, text = "foo = 42", indent = 0 }, "variable declaration") + runner:new_line("test/indent/expressions.bp", { on_line = 4, text = "0,", indent = 4 }, "list element") + runner:new_line("test/indent/expressions.bp", { on_line = 6, text = "]", indent = 0 }, "list closing delimiter") + runner:new_line("test/indent/expressions.bp", { on_line = 9, text = "key: 42", indent = 4 }, "map property") + runner:new_line("test/indent/expressions.bp", { on_line = 12, text = "key: 42", indent = 4 }, "map property, trailing") + runner:new_line("test/indent/expressions.bp", { on_line = 9, text = "}", indent = 0 }, "map closing delimiter") + runner:new_line("test/indent/expressions.bp", { on_line = 11, text = "]", indent = 4 }, "nested list closing delimiter") + runner:new_line("test/indent/expressions.bp", { on_line = 18, text = "key: 42", indent = 12 }, "nested map property") + runner:new_line("test/indent/expressions.bp", { on_line = 19, text = "key: 42", indent = 12 }, "nested map property, trailing") + + runner:new_line("test/indent/select.bp", { on_line = 1, text = '"case": "value"', indent = 4 }, "select case") + runner:new_line("test/indent/select.bp", { on_line = 1, text = 'default: "value"', indent = 4 }, "default case") + runner:new_line("test/indent/select.bp", { on_line = 11, text = '"case": "value"', indent = 4 }, "select case, trailing") + runner:new_line("test/indent/select.bp", { on_line = 11, text = 'default: "value"', indent = 4 }, "default case, trailing") + runner:new_line("test/indent/select.bp", { on_line = 16, text = '"case": "value"', indent = 8 }, "select case, alternate formatting") + runner:new_line("test/indent/select.bp", { on_line = 16, text = 'default: "value"', indent = 8 }, "default case, alternate formatting") + runner:new_line("test/indent/select.bp", { on_line = 26, text = '"case": "value"', indent = 8 }, "select case, trailing, alternate formattingg") + runner:new_line("test/indent/select.bp", { on_line = 26, text = 'default: "value"', indent = 8 }, "default case, trailing, alternate formattingn") + end) +end)