44 lines
851 B
Go
44 lines
851 B
Go
|
package fupstatic
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
"testing/fstest"
|
||
|
)
|
||
|
|
||
|
func TestHashingFS(t *testing.T) {
|
||
|
baseFS := fstest.MapFS{
|
||
|
"foo": &fstest.MapFile{
|
||
|
Data: []byte("hello, world"),
|
||
|
},
|
||
|
"bar/bar.txt": &fstest.MapFile{
|
||
|
Data: []byte("foo bar baz"),
|
||
|
},
|
||
|
}
|
||
|
|
||
|
f := newStaticFS(baseFS)
|
||
|
|
||
|
tcs := []struct {
|
||
|
origName string
|
||
|
newName string
|
||
|
wantContent string
|
||
|
}{
|
||
|
{"foo", "foo.68656c6c6f2c", "hello, world"},
|
||
|
{"bar/bar.txt", "bar/bar.666f6f206261.txt", "foo bar baz"},
|
||
|
}
|
||
|
|
||
|
for _, tc := range tcs {
|
||
|
t.Run(tc.origName, func(t *testing.T) {
|
||
|
n, ok := f.LookupHashedName(tc.origName)
|
||
|
if !ok {
|
||
|
t.Errorf("LookupHashedName returned false")
|
||
|
} else if n != tc.newName {
|
||
|
t.Errorf("LookupHashedName returned %q; want %q", n, tc.newName)
|
||
|
}
|
||
|
|
||
|
if err := fstest.TestFS(f, tc.newName); err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|