Files
fn_registry/functions/infra/vault_diff_test.go
T
egutierrez e3c8979e8d chore: auto-commit (95 archivos)
- cmd/fn/doctor.go
- cmd/fn/main.go
- cpp/apps/primitives_gallery/playground/tables/CMakeLists.txt
- cpp/apps/primitives_gallery/playground/tables/data_table.cpp
- cpp/apps/primitives_gallery/playground/tables/data_table_logic.cpp
- cpp/apps/primitives_gallery/playground/tables/data_table_logic.h
- cpp/apps/primitives_gallery/playground/tables/self_test.cpp
- cpp/apps/primitives_gallery/playground/tables/tql.cpp
- cpp/apps/primitives_gallery/playground/tables/viz.cpp
- cpp/apps/primitives_gallery/playground/tables/viz.h
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 00:50:34 +02:00

127 lines
3.6 KiB
Go

package infra
import (
"testing"
)
func makeVF(relPath, sha256 string) VaultFile {
return VaultFile{
VaultID: "test_vault",
VaultName: "test",
RelPath: relPath,
Sha256: sha256,
}
}
func TestVaultDiff_NoChanges(t *testing.T) {
files := []VaultFile{
makeVF("data/a.csv", "aaa"),
makeVF("data/b.csv", "bbb"),
}
report := VaultDiff(files, files)
if len(report.Added) != 0 {
t.Errorf("Added: want 0, got %d", len(report.Added))
}
if len(report.Removed) != 0 {
t.Errorf("Removed: want 0, got %d", len(report.Removed))
}
if len(report.Changed) != 0 {
t.Errorf("Changed: want 0, got %d", len(report.Changed))
}
if report.Unchanged != 2 {
t.Errorf("Unchanged: want 2, got %d", report.Unchanged)
}
}
func TestVaultDiff_AllAdded(t *testing.T) {
curr := []VaultFile{
makeVF("data/a.csv", "aaa"),
makeVF("data/b.csv", "bbb"),
}
report := VaultDiff(nil, curr)
if len(report.Added) != 2 {
t.Errorf("Added: want 2, got %d", len(report.Added))
}
if len(report.Removed) != 0 {
t.Errorf("Removed: want 0, got %d", len(report.Removed))
}
if report.Added[0].RelPath != "data/a.csv" {
t.Errorf("Added[0]: want data/a.csv, got %s", report.Added[0].RelPath)
}
if report.Added[1].RelPath != "data/b.csv" {
t.Errorf("Added[1]: want data/b.csv, got %s", report.Added[1].RelPath)
}
}
func TestVaultDiff_AllRemoved(t *testing.T) {
prev := []VaultFile{
makeVF("data/a.csv", "aaa"),
makeVF("data/b.csv", "bbb"),
}
report := VaultDiff(prev, nil)
if len(report.Removed) != 2 {
t.Errorf("Removed: want 2, got %d", len(report.Removed))
}
if len(report.Added) != 0 {
t.Errorf("Added: want 0, got %d", len(report.Added))
}
if report.Removed[0].RelPath != "data/a.csv" {
t.Errorf("Removed[0]: want data/a.csv, got %s", report.Removed[0].RelPath)
}
}
func TestVaultDiff_ContentChanged(t *testing.T) {
prev := []VaultFile{
makeVF("data/a.csv", "old_hash"),
}
curr := []VaultFile{
makeVF("data/a.csv", "new_hash"),
}
report := VaultDiff(prev, curr)
if len(report.Changed) != 1 {
t.Fatalf("Changed: want 1, got %d", len(report.Changed))
}
if report.Changed[0].RelPath != "data/a.csv" {
t.Errorf("Changed[0].RelPath: want data/a.csv, got %s", report.Changed[0].RelPath)
}
if report.Changed[0].Prev.Sha256 != "old_hash" {
t.Errorf("Changed[0].Prev.Sha256: want old_hash, got %s", report.Changed[0].Prev.Sha256)
}
if report.Changed[0].Curr.Sha256 != "new_hash" {
t.Errorf("Changed[0].Curr.Sha256: want new_hash, got %s", report.Changed[0].Curr.Sha256)
}
if len(report.Added) != 0 || len(report.Removed) != 0 {
t.Errorf("Expected no added/removed, got %d/%d", len(report.Added), len(report.Removed))
}
if report.Unchanged != 0 {
t.Errorf("Unchanged: want 0, got %d", report.Unchanged)
}
}
func TestVaultDiff_Mixed(t *testing.T) {
prev := []VaultFile{
makeVF("data/a.csv", "aaa"),
makeVF("data/b.csv", "bbb"),
makeVF("data/c.csv", "ccc"),
}
curr := []VaultFile{
makeVF("data/a.csv", "aaa"), // unchanged
makeVF("data/b.csv", "bbb_new"), // changed
makeVF("data/d.csv", "ddd"), // added
}
report := VaultDiff(prev, curr)
if len(report.Added) != 1 || report.Added[0].RelPath != "data/d.csv" {
t.Errorf("Added: want [data/d.csv], got %v", report.Added)
}
if len(report.Removed) != 1 || report.Removed[0].RelPath != "data/c.csv" {
t.Errorf("Removed: want [data/c.csv], got %v", report.Removed)
}
if len(report.Changed) != 1 || report.Changed[0].RelPath != "data/b.csv" {
t.Errorf("Changed: want [data/b.csv], got %v", report.Changed)
}
if report.Unchanged != 1 {
t.Errorf("Unchanged: want 1, got %d", report.Unchanged)
}
}