github.com/mineiros-io/terradoc@v0.0.9-0.20220711062319-018bd4ae81f5/internal/renderers/template_functions_test.go (about)

     1  package renderers
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/madlambda/spells/assert"
     7  )
     8  
     9  func TestURLFragment(t *testing.T) {
    10  	input := "Backwards compatibility in `0.0.z` and `0.y.z` version"
    11  	want := "backwards-compatibility-in-00z-and-0yz-version"
    12  
    13  	assert.EqualStrings(t, want, urlfragment(input))
    14  }
    15  
    16  func TestNewLine(t *testing.T) {
    17  	assert.EqualStrings(t, "\n\n", newLine())
    18  }
    19  
    20  func TestIndent(t *testing.T) {
    21  	tests := []struct {
    22  		desc        string
    23  		input       string
    24  		want        string
    25  		indentLevel int
    26  	}{
    27  		{
    28  			input:       "one line stuff",
    29  			want:        "    one line stuff",
    30  			indentLevel: 4,
    31  		},
    32  		{
    33  			input: `multi
    34  
    35  line
    36  
    37  
    38  stuff`,
    39  			want: `  multi
    40  
    41    line
    42  
    43  
    44    stuff`,
    45  			indentLevel: 2,
    46  		},
    47  	}
    48  
    49  	for _, tt := range tests {
    50  		t.Run(tt.desc, func(t *testing.T) {
    51  			got := indent(tt.indentLevel, tt.input)
    52  
    53  			assert.EqualStrings(t, tt.want, got)
    54  		})
    55  	}
    56  }
    57  
    58  func TestRepeat(t *testing.T) {
    59  	assert.EqualStrings(t, "$$$$$", repeat("$", 5))
    60  	assert.EqualStrings(t, "##", repeat("#", 2))
    61  }