aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/indent/yang/module.yang58
-rw-r--r--tests/indent/yang_spec.lua23
2 files changed, 81 insertions, 0 deletions
diff --git a/tests/indent/yang/module.yang b/tests/indent/yang/module.yang
new file mode 100644
index 000000000..29c911fa0
--- /dev/null
+++ b/tests/indent/yang/module.yang
@@ -0,0 +1,58 @@
+module test-module {
+ yang-version 1.1;
+ namespace "http://example.com";
+ prefix test;
+
+ import ietf-inet-types { prefix inet; }
+ import tailf-ncs {
+ prefix ncs;
+ }
+
+ description "Multi-line strings has indentation
+ aligned with the first line.";
+
+ typedef foo {
+ type enumeration {
+ enum "foo";
+ enum "bar";
+ }
+ }
+
+ ncs:plan-outline test-nano-service {
+ description "Testing indentation of extension statements.";
+
+ ncs:component-type "ncs:self" {
+ ncs:state "ncs:init" {
+ ncs:create {
+ ncs:nano-callback;
+ }
+ }
+ ncs:state "ncs:ready";
+ }
+
+ ncs:component-type "alloc:resource-allocator" {
+ ncs:state "ncs:init";
+ ncs:state "alloc:resources-allocated";
+ ncs:state "ncs:ready";
+ }
+ }
+
+ container test {
+ }
+
+ augment /alloc:resource-allocator {
+ description "Augmentation for the resource allocator mock services.";
+
+ list test-nano-service {
+ key "id";
+
+ leaf id {
+ type string;
+ description
+ "I'm a multi-line string
+
+ Starting on the next line from the statement.";
+ }
+ }
+ }
+}
diff --git a/tests/indent/yang_spec.lua b/tests/indent/yang_spec.lua
new file mode 100644
index 000000000..c5ff2c886
--- /dev/null
+++ b/tests/indent/yang_spec.lua
@@ -0,0 +1,23 @@
+local Runner = require("tests.indent.common").Runner
+
+local run = Runner:new(it, "tests/indent/yang", {
+ tabstop = 2,
+ shiftwidth = 2,
+ softtabstop = 0,
+ expandtab = true,
+})
+
+describe("indent YANG:", function()
+ describe("whole file:", function()
+ run:whole_file(".", {
+ expected_failures = {},
+ })
+ end)
+
+ describe("new line:", function()
+ run:new_line("module.yang", { on_line = 12, text = "# Aligned indentation ended", indent = 2 })
+ run:new_line("module.yang", { on_line = 37, text = "# Test", indent = 2 })
+ run:new_line("module.yang", { on_line = 40, text = "# Test", indent = 4 })
+ run:new_line("module.yang", { on_line = 52, text = "Aligned string!", indent = 4 })
+ end)
+end)