depot/web/fup/hashfs/hashfs_test.go
Luke Granger-Brown 75afddacc4 fup/hashfs: actually hash the thing
This previous behaviour was to, instead of hashing the file, just return the
first few bytes of it, which is neither intuitive nor the behaviour I was
looking for.
2021-03-22 19:25:55 +00:00

47 lines
953 B
Go

// SPDX-FileCopyrightText: 2021 Luke Granger-Brown <depot@lukegb.com>
//
// SPDX-License-Identifier: Apache-2.0
package hashfs
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 := New(baseFS)
tcs := []struct {
origName string
newName string
wantContent string
}{
{"foo", "foo.8710339dcb68", "hello, world"},
{"bar/bar.txt", "bar/bar.bce50343a56f.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)
}
})
}
}