src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/testutil/dedent_test.go (about)

     1  package testutil
     2  
     3  import "testing"
     4  
     5  var dedentTests = []struct {
     6  	name string
     7  	in   string
     8  	out  string
     9  }{
    10  	{
    11  		name: "no leading newline, no trailing newline",
    12  		in:   " \n  foo\n bar",
    13  		out:  "\n foo\nbar",
    14  	},
    15  	{
    16  		name: "leading newline, no trailing newline",
    17  		in: `
    18  			a
    19  			 b
    20  			c`,
    21  		out: "a\n b\nc",
    22  	},
    23  	{
    24  		name: "leading newline and trailing newline",
    25  		in: `
    26  			a
    27  			 b
    28  			c
    29  			`,
    30  		out: "a\n b\nc\n",
    31  	},
    32  }
    33  
    34  func TestDedent(t *testing.T) {
    35  	for _, tc := range dedentTests {
    36  		got := Dedent(tc.in)
    37  		if got != tc.out {
    38  			t.Errorf("Dedent(%q) -> %q, want %q", tc.in, got, tc.out)
    39  		}
    40  	}
    41  }
    42  
    43  func TestDedentPanicsOnBadInput(t *testing.T) {
    44  	x := Recover(func() {
    45  		Dedent(`
    46  			a
    47  		b`)
    48  	})
    49  	if x == nil {
    50  		t.Errorf("Dedent did not panic")
    51  	}
    52  }