a802f59f55
- 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>
127 lines
3.6 KiB
Go
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)
|
|
}
|
|
}
|