github.com/kata-containers/tests@v0.0.0-20240307153542-772105b56064/cmd/check-markdown/heading_test.go (about)

     1  //
     2  // Copyright (c) 2019 Intel Corporation
     3  //
     4  // SPDX-License-Identifier: Apache-2.0
     5  //
     6  
     7  package main
     8  
     9  import (
    10  	"fmt"
    11  	"testing"
    12  
    13  	"github.com/stretchr/testify/assert"
    14  )
    15  
    16  func TestNewHeading(t *testing.T) {
    17  	assert := assert.New(t)
    18  
    19  	type testData struct {
    20  		headingName      string
    21  		mdName           string
    22  		expectedLinkName string
    23  		level            int
    24  		expectError      bool
    25  	}
    26  
    27  	data := []testData{
    28  		{"", "", "", -1, true},
    29  		{"a", "", "", -1, true},
    30  		{"a", "a", "", -1, true},
    31  		{"a", "a", "", 0, true},
    32  		{"a", "", "", 1, true},
    33  
    34  		{"a", "a", "a", 1, false},
    35  		{"a-b", "`a-b`", "`a-b`", 1, false},
    36  		{"a_b", "`a_b`", "`a_b`", 1, false},
    37  		{"foo (json) bar", "foo `(json)` bar", "foo-json-bar", 1, false},
    38  		{"func(json)", "`func(json)`", "funcjson", 1, false},
    39  		{"?", "?", "", 1, false},
    40  		{"a b", "a b", "a-b", 1, false},
    41  		{"a - b", "a - b", "a---b", 1, false},
    42  		{"a - b?", "a - b?", "a---b", 1, false},
    43  		{"a - b.", "a - b.", "a---b", 1, false},
    44  		{"a:b", "a:b", "ab", 1, false},
    45  		{"a;b", "a;b", "ab", 1, false},
    46  		{"a@b", "a@b", "ab", 1, false},
    47  		{"a+b", "a+b", "ab", 1, false},
    48  		{"a,b", "a,b", "ab", 1, false},
    49  	}
    50  
    51  	for i, d := range data {
    52  		msg := fmt.Sprintf("test[%d]: %+v\n", i, d)
    53  
    54  		h, err := newHeading(d.headingName, d.mdName, d.level)
    55  		if d.expectError {
    56  			assert.Error(err, msg)
    57  			continue
    58  		}
    59  
    60  		assert.Equal(h.Name, d.headingName, msg)
    61  		assert.Equal(h.MDName, d.mdName, msg)
    62  		assert.Equal(h.Level, d.level, msg)
    63  		assert.Equal(h.LinkName, d.expectedLinkName, msg)
    64  	}
    65  }