aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/cli/internal/taskhash/taskhash_test.go
diff options
context:
space:
mode:
author简律纯 <hsiangnianian@outlook.com>2023-04-28 01:36:55 +0800
committer简律纯 <hsiangnianian@outlook.com>2023-04-28 01:36:55 +0800
commitfc8c5fdce62fb229202659408798a7b6c98f6e8b (patch)
tree7554f80e50de4af6fd255afa7c21bcdd58a7af34 /cli/internal/taskhash/taskhash_test.go
parentdd84b9d64fb98746a230cd24233ff50a562c39c9 (diff)
downloadHydroRoll-fc8c5fdce62fb229202659408798a7b6c98f6e8b.tar.gz
HydroRoll-fc8c5fdce62fb229202659408798a7b6c98f6e8b.zip
Diffstat (limited to 'cli/internal/taskhash/taskhash_test.go')
-rw-r--r--cli/internal/taskhash/taskhash_test.go138
1 files changed, 0 insertions, 138 deletions
diff --git a/cli/internal/taskhash/taskhash_test.go b/cli/internal/taskhash/taskhash_test.go
deleted file mode 100644
index dea0010..0000000
--- a/cli/internal/taskhash/taskhash_test.go
+++ /dev/null
@@ -1,138 +0,0 @@
-package taskhash
-
-import (
- "path/filepath"
- "strings"
- "testing"
-
- "github.com/vercel/turbo/cli/internal/fs"
- "github.com/vercel/turbo/cli/internal/turbopath"
-)
-
-func Test_manuallyHashPackage(t *testing.T) {
- rootIgnore := strings.Join([]string{
- "ignoreme",
- "ignorethisdir/",
- }, "\n")
- pkgIgnore := strings.Join([]string{
- "pkgignoreme",
- "pkgignorethisdir/",
- }, "\n")
- root := t.TempDir()
- repoRoot := turbopath.AbsoluteSystemPathFromUpstream(root)
- pkgName := turbopath.AnchoredUnixPath("child-dir/libA").ToSystemPath()
- type fileHash struct {
- contents string
- hash string
- }
- files := map[turbopath.AnchoredUnixPath]fileHash{
- "top-level-file": {"top-level-file-contents", ""},
- "other-dir/other-dir-file": {"other-dir-file-contents", ""},
- "ignoreme": {"anything", ""},
- "child-dir/libA/some-file": {"some-file-contents", "7e59c6a6ea9098c6d3beb00e753e2c54ea502311"},
- "child-dir/libA/some-dir/other-file": {"some-file-contents", "7e59c6a6ea9098c6d3beb00e753e2c54ea502311"},
- "child-dir/libA/some-dir/another-one": {"some-file-contents", "7e59c6a6ea9098c6d3beb00e753e2c54ea502311"},
- "child-dir/libA/some-dir/excluded-file": {"some-file-contents", "7e59c6a6ea9098c6d3beb00e753e2c54ea502311"},
- "child-dir/libA/ignoreme": {"anything", ""},
- "child-dir/libA/ignorethisdir/anything": {"anything", ""},
- "child-dir/libA/pkgignoreme": {"anything", ""},
- "child-dir/libA/pkgignorethisdir/file": {"anything", ""},
- }
-
- rootIgnoreFile, err := repoRoot.Join(".gitignore").Create()
- if err != nil {
- t.Fatalf("failed to create .gitignore: %v", err)
- }
- _, err = rootIgnoreFile.WriteString(rootIgnore)
- if err != nil {
- t.Fatalf("failed to write contents to .gitignore: %v", err)
- }
- rootIgnoreFile.Close()
- pkgIgnoreFilename := pkgName.RestoreAnchor(repoRoot).Join(".gitignore")
- err = pkgIgnoreFilename.EnsureDir()
- if err != nil {
- t.Fatalf("failed to ensure directories for %v: %v", pkgIgnoreFilename, err)
- }
- pkgIgnoreFile, err := pkgIgnoreFilename.Create()
- if err != nil {
- t.Fatalf("failed to create libA/.gitignore: %v", err)
- }
- _, err = pkgIgnoreFile.WriteString(pkgIgnore)
- if err != nil {
- t.Fatalf("failed to write contents to libA/.gitignore: %v", err)
- }
- pkgIgnoreFile.Close()
- for path, spec := range files {
- filename := path.ToSystemPath().RestoreAnchor(repoRoot)
- err = filename.EnsureDir()
- if err != nil {
- t.Fatalf("failed to ensure directories for %v: %v", filename, err)
- }
- f, err := filename.Create()
- if err != nil {
- t.Fatalf("failed to create file: %v: %v", filename, err)
- }
- _, err = f.WriteString(spec.contents)
- if err != nil {
- t.Fatalf("failed to write contents to %v: %v", filename, err)
- }
- f.Close()
- }
- // now that we've created the repo, expect our .gitignore file too
- files[turbopath.AnchoredUnixPath("child-dir/libA/.gitignore")] = fileHash{contents: "", hash: "3237694bc3312ded18386964a855074af7b066af"}
-
- pkg := &fs.PackageJSON{
- Dir: pkgName,
- }
- hashes, err := manuallyHashPackage(pkg, []string{}, repoRoot)
- if err != nil {
- t.Fatalf("failed to calculate manual hashes: %v", err)
- }
-
- count := 0
- for path, spec := range files {
- systemPath := path.ToSystemPath()
- if systemPath.HasPrefix(pkgName) {
- relPath := systemPath[len(pkgName)+1:]
- got, ok := hashes[relPath.ToUnixPath()]
- if !ok {
- if spec.hash != "" {
- t.Errorf("did not find hash for %v, but wanted one", path)
- }
- } else if got != spec.hash {
- t.Errorf("hash of %v, got %v want %v", path, got, spec.hash)
- } else {
- count++
- }
- }
- }
- if count != len(hashes) {
- t.Errorf("found extra hashes in %v", hashes)
- }
-
- count = 0
- justFileHashes, err := manuallyHashPackage(pkg, []string{filepath.FromSlash("**/*file"), "!" + filepath.FromSlash("some-dir/excluded-file")}, repoRoot)
- if err != nil {
- t.Fatalf("failed to calculate manual hashes: %v", err)
- }
- for path, spec := range files {
- systemPath := path.ToSystemPath()
- if systemPath.HasPrefix(pkgName) {
- shouldInclude := strings.HasSuffix(systemPath.ToString(), "file") && !strings.HasSuffix(systemPath.ToString(), "excluded-file")
- relPath := systemPath[len(pkgName)+1:]
- got, ok := justFileHashes[relPath.ToUnixPath()]
- if !ok && shouldInclude {
- if spec.hash != "" {
- t.Errorf("did not find hash for %v, but wanted one", path)
- }
- } else if shouldInclude && got != spec.hash {
- t.Errorf("hash of %v, got %v want %v", path, got, spec.hash)
- } else if shouldInclude {
- count++
- }
- }
- }
- if count != len(justFileHashes) {
- t.Errorf("found extra hashes in %v", hashes)
- }
-}