Files
sanspie 867efcf2f8
ci-platforms / windows amd64 smoke (push) Skipped
github-native / gitea-pending (push) Skipped
github-native / darwin amd64 native (push) Skipped
github-native / linux amd64 native (push) Skipped
github-native / windows amd64 native (push) Skipped
github-native / darwin arm64 native (push) Skipped
github-native / gitea-result (push) Skipped
ci / checks (push) Failing after 44m58s
ci-platforms / darwin amd64 smoke (push) Skipped
ci-platforms / darwin arm64 smoke (push) Skipped
ci / build (amd64, linux, ubuntu-24.04) (push) Successful in 12m46s
ci / release (push) Skipped
GitHub / windows amd64 native GitHub-hosted native CI: success
GitHub / darwin arm64 native GitHub-hosted native CI: success
GitHub / darwin amd64 native GitHub-hosted native CI: success
GitHub / linux amd64 native GitHub-hosted native CI: success
test: synchronize idle allocations and camera probe
2026-11-10 13:15:15 +03:00

55 lines
1.6 KiB
Go

package assets
import (
"os"
"path/filepath"
"slices"
"testing"
"aego/asset/pipeline"
"aego/project"
)
func TestDirectoryRefreshFindsExternalEmptyFolders(t *testing.T) {
proj, err := project.Create(t.TempDir(), "External directories", false)
if err != nil {
t.Fatal(err)
}
pl, err := pipeline.Open(proj, pipeline.NewImporterRegistry(), nil)
if err != nil {
t.Fatal(err)
}
t.Cleanup(pl.Close)
p := New(Deps{Pipeline: pl})
p.now = 10
p.refresh()
if p.DirectoryRefreshes() != 1 || !slices.Contains(p.dirs, "assets") {
t.Fatalf("initial directory refresh failed: count=%d dirs=%v", p.DirectoryRefreshes(), p.dirs)
}
first := filepath.Join(proj.AssetsDir(), "external-empty")
if err := os.Mkdir(first, 0o755); err != nil {
t.Fatal(err)
}
p.now = 11
p.refresh()
if p.DirectoryRefreshes() != 1 || slices.Contains(p.dirs, "assets/external-empty") {
t.Fatal("directory list refreshed before its normal interval")
}
p.now = 12.01
p.refresh()
if p.DirectoryRefreshes() != 2 || !slices.Contains(p.dirs, "assets/external-empty") {
t.Fatalf("periodic refresh missed an external empty folder: count=%d dirs=%v", p.DirectoryRefreshes(), p.dirs)
}
if err := os.Remove(first); err != nil {
t.Fatal(err)
}
if err := os.Mkdir(filepath.Join(proj.AssetsDir(), "another-empty"), 0o755); err != nil {
t.Fatal(err)
}
p.now = 14.02
p.refresh()
if p.DirectoryRefreshes() != 3 || slices.Contains(p.dirs, "assets/external-empty") || !slices.Contains(p.dirs, "assets/another-empty") {
t.Fatalf("later refresh missed external directory changes: count=%d dirs=%v", p.DirectoryRefreshes(), p.dirs)
}
}