github.com/dmaizel/tests@v0.0.0-20210728163746-cae6a2d9cee8/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 }