1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
package textutils
import "testing"
func TestDelimiterForEveryLine(t *testing.T) {
tests := []struct {
name string
text string
delimiter string
want string
}{
{
name: "put delimiter around text",
text: "bold text",
delimiter: "**",
want: "**bold text**",
},
{
name: "keep whitespace outside (normal space)",
text: " bold text ",
delimiter: "**",
want: " **bold text** ",
},
{
name: "keep whitespace outside (non-breaking space)",
text: "\u00a0bold text\u00a0\u00a0",
delimiter: "**",
want: "\u00a0**bold text**\u00a0\u00a0",
},
{
name: "keep whitespace outside on every line (non-breaking space)",
text: "bold\u00a0\ntext\u00a0",
delimiter: "**",
want: "**bold**\u00a0\n**text**\u00a0",
},
{
name: "put strong on every line",
text: "line 1\nline 2",
delimiter: "**",
want: "**line 1**\n**line 2**",
},
{
name: "skip empty lines",
text: "line 1\n\n\nline 2",
delimiter: "_",
want: "_line 1_\n\n\n_line 2_",
},
{
name: "with indentation",
text: `
line 1
line 2
line 3
`,
delimiter: "__",
want: `
__line 1__
__line 2__
__line 3__
`,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := DelimiterForEveryLine([]byte(tt.text), []byte(tt.delimiter)); string(got) != tt.want {
t.Errorf("DelimiterForEveryLine() = \n'%v' but want \n'%v'", string(got), tt.want)
}
})
}
}
|