MCPcopy Create free account
hub / github.com/bytebase/bytebase / assertNoChange

Function assertNoChange

backend/tests/collision_helper_test.go:695–721  ·  view source on GitHub ↗

assertNoChange compares two row slices keyed by name, fails if any row disappeared, appeared, or duplicated. Per-row equality beyond identity is delegated to the caller's `compare` func.

(
	t *testing.T,
	before, after []T,
	key func(T) string,
	compare func(b, af T),
	label, kind string,
)

Source from the content-addressed store, hash-verified

693// row disappeared, appeared, or duplicated. Per-row equality beyond
694// identity is delegated to the caller's `compare` func.
695func assertNoChange[T any](
696 t *testing.T,
697 before, after []T,
698 key func(T) string,
699 compare func(b, af T),
700 label, kind string,
701) {
702 t.Helper()
703 a := require.New(t)
704 byKey := make(map[string]T, len(before))
705 for _, r := range before {
706 _, dup := byKey[key(r)]
707 a.False(dup, "%s: duplicate %s %q in before snapshot", label, kind, key(r))
708 byKey[key(r)] = r
709 }
710 a.Equal(len(before), len(after), "%s: %s count changed", label, kind)
711 seen := make(map[string]bool, len(after))
712 for _, r := range after {
713 a.False(seen[key(r)], "%s: duplicate %s %q in after snapshot", label, kind, key(r))
714 seen[key(r)] = true
715 b, ok := byKey[key(r)]
716 a.True(ok, "%s: %s %q appeared after", label, kind, key(r))
717 if ok {
718 compare(b, r)
719 }
720 }
721}

Callers 1

assertProjectUnchangedFunction · 0.85

Calls 2

EqualMethod · 0.65
keyFunction · 0.50

Tested by

no test coverage detected