Fast Link Checker for Markdown and HTML in Go
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

84 lines
1.7 KiB

package main
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
)
func TestNewMarkupFileFinder(t *testing.T) {
newMarkupFileFinder()
}
func TestMarkupFileFinderFindWithRecursiveOption(t *testing.T) {
for _, fs := range [][]string{{"README.md"}, {"test"}, {"README.md", "test"}} {
m := newMarkupFileFinder()
m.Find(fs, true)
assert.Equal(t, 0, len(m.Errors()))
assert.NotEqual(t, 0, len(m.Filenames()))
for f := range m.Filenames() {
i, err := os.Stat(f)
assert.True(t, isMarkupFile(f))
assert.Equal(t, nil, err)
assert.False(t, i.IsDir())
}
}
}
func TestMarkupFileFinderFindWithDirectory(t *testing.T) {
m := newMarkupFileFinder()
m.Find([]string{"test"}, false)
assert.Equal(t, 1, len(m.Errors()))
assert.Equal(t, 0, len(m.Filenames()))
err := <-m.Errors()
assert.NotEqual(t, nil, err)
}
func TestMarkupFileFinderFindWithNonExistentFile(t *testing.T) {
m := newMarkupFileFinder()
m.Find([]string{"foo.md"}, false)
assert.Equal(t, 1, len(m.Errors()))
assert.Equal(t, 0, len(m.Filenames()))
err := <-m.Errors()
assert.NotEqual(t, nil, err)
}
func TestMarkupFileFinderListDirectory(t *testing.T) {
m := newMarkupFileFinder()
m.listDirectory("test")
close(m.Filenames())
assert.Equal(t, 0, len(m.Errors()))
assert.NotEqual(t, 0, len(m.Filenames()))
for f := range m.Filenames() {
i, err := os.Stat(f)
assert.True(t, isMarkupFile(f))
assert.Equal(t, nil, err)
assert.False(t, i.IsDir())
}
}
func TestMarkupFileFinderListDirectoryWithNonExistentDirectory(t *testing.T) {
m := newMarkupFileFinder()
m.listDirectory("foo")
close(m.Errors())
assert.Equal(t, 1, len(m.Errors()))
assert.Equal(t, 0, len(m.Filenames()))
err := <-m.Errors()
assert.NotEqual(t, nil, err)
}