2015-07-01 15:35:44 +00:00
/ *
Copyright 2015 The Kubernetes Authors All rights reserved .
Licensed under the Apache License , Version 2.0 ( the "License" ) ;
you may not use this file except in compliance with the License .
You may obtain a copy of the License at
http : //www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing , software
distributed under the License is distributed on an "AS IS" BASIS ,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
See the License for the specific language governing permissions and
limitations under the License .
* /
package main
import (
"testing"
"github.com/stretchr/testify/assert"
)
func Test_buildTOC ( t * testing . T ) {
var cases = [ ] struct {
in string
out string
} {
{ "" , "" } ,
{ "Lorem ipsum\ndolor sit amet\n" , "" } ,
2015-07-11 04:50:56 +00:00
{
"# Title\nLorem ipsum \n## Section Heading\ndolor sit amet\n" ,
"- [Title](#title)\n - [Section Heading](#section-heading)\n" ,
2015-07-13 16:26:44 +00:00
} ,
{
"# Title\nLorem ipsum \n## Section Heading\ndolor sit amet\n```bash\n#!/bin/sh\n```" ,
"- [Title](#title)\n - [Section Heading](#section-heading)\n" ,
2015-07-11 04:50:56 +00:00
} ,
2015-07-15 18:26:51 +00:00
{
2015-07-17 00:56:56 +00:00
"# Title\nLorem ipsum \n## Section Heading\n### Ok, why doesn't this work? ...add 4 *more* `symbols`!\ndolor sit amet\n" ,
"- [Title](#title)\n - [Section Heading](#section-heading)\n - [Ok, why doesn't this work? ...add 4 *more* `symbols`!](#ok-why-doesnt-this-work-add-4-more-symbols)\n" ,
2015-07-15 18:26:51 +00:00
} ,
2015-07-01 15:35:44 +00:00
}
for _ , c := range cases {
actual , err := buildTOC ( [ ] byte ( c . in ) )
assert . NoError ( t , err )
if c . out != string ( actual ) {
t . Errorf ( "Expected TOC '%v' but got '%v'" , c . out , string ( actual ) )
}
}
}
func Test_updateTOC ( t * testing . T ) {
var cases = [ ] struct {
in string
out string
} {
{ "" , "" } ,
2015-07-11 04:50:56 +00:00
{
"Lorem ipsum\ndolor sit amet\n" ,
"Lorem ipsum\ndolor sit amet\n" ,
} ,
{
"# Title\nLorem ipsum \n**table of contents**\n<!-- BEGIN MUNGE: GENERATED_TOC -->\nold cruft\n<!-- END MUNGE: GENERATED_TOC -->\n## Section Heading\ndolor sit amet\n" ,
"# Title\nLorem ipsum \n**table of contents**\n<!-- BEGIN MUNGE: GENERATED_TOC -->\n- [Title](#title)\n - [Section Heading](#section-heading)\n\n<!-- END MUNGE: GENERATED_TOC -->\n## Section Heading\ndolor sit amet\n" ,
} ,
2015-07-01 15:35:44 +00:00
}
for _ , c := range cases {
2015-07-09 23:52:03 +00:00
actual , err := updateTOC ( "filename.md" , [ ] byte ( c . in ) )
2015-07-01 15:35:44 +00:00
assert . NoError ( t , err )
if c . out != string ( actual ) {
t . Errorf ( "Expected TOC '%v' but got '%v'" , c . out , string ( actual ) )
}
}
}