Skip to main content
Glama

MCPJungle mcp gateway

by mcpjungle
Mozilla Public License 2.0
638
  • Apple
util_test.go•3.88 kB
package util import ( "reflect" "sort" "testing" ) func TestDiffTools_NoChange(t *testing.T) { old := []string{"a", "b", "c"} newT := []string{"a", "b", "c"} added, removed := DiffTools(old, newT) if len(added) != 0 || len(removed) != 0 { t.Errorf("Expected no changes, got added=%v removed=%v", added, removed) } } func TestDiffTools_OnlyAdded(t *testing.T) { old := []string{"a", "b"} newT := []string{"a", "b", "c", "d"} added, removed := DiffTools(old, newT) expectedAdded := []string{"c", "d"} // ensure order does not affect the test outcome sort.Strings(added) sort.Strings(expectedAdded) if !reflect.DeepEqual(added, expectedAdded) || len(removed) != 0 { t.Errorf("Expected added=%v, removed=[], got added=%v removed=%v", expectedAdded, added, removed) } } func TestDiffTools_OnlyRemoved(t *testing.T) { old := []string{"a", "b", "c"} newT := []string{"a"} added, removed := DiffTools(old, newT) expectedRemoved := []string{"b", "c"} // ensure order does not affect the test outcome sort.Strings(removed) sort.Strings(expectedRemoved) if !reflect.DeepEqual(removed, expectedRemoved) || len(added) != 0 { t.Errorf("Expected added=[], removed=%v, got added=%v removed=%v", expectedRemoved, added, removed) } } func TestDiffTools_AddedAndRemoved(t *testing.T) { old := []string{"a", "b", "c"} newT := []string{"b", "d", "e"} added, removed := DiffTools(old, newT) expectedAdded := []string{"d", "e"} expectedRemoved := []string{"a", "c"} // ensure order does not affect the test outcome sort.Strings(added) sort.Strings(expectedAdded) sort.Strings(removed) sort.Strings(expectedRemoved) if !reflect.DeepEqual(added, expectedAdded) || !reflect.DeepEqual(removed, expectedRemoved) { t.Errorf("Expected added=%v, removed=%v, got added=%v removed=%v", expectedAdded, expectedRemoved, added, removed) } } func TestDiffTools_EmptyOld(t *testing.T) { var old []string newT := []string{"x", "y"} added, removed := DiffTools(old, newT) expectedAdded := []string{"x", "y"} // ensure order does not affect the test outcome sort.Strings(added) sort.Strings(expectedAdded) if !reflect.DeepEqual(added, expectedAdded) || len(removed) != 0 { t.Errorf("Expected added=%v, removed=[], got added=%v removed=%v", expectedAdded, added, removed) } } func TestDiffTools_EmptyNew(t *testing.T) { old := []string{"x", "y"} var newT []string added, removed := DiffTools(old, newT) expectedRemoved := []string{"x", "y"} // ensure order does not affect the test outcome sort.Strings(removed) sort.Strings(expectedRemoved) if !reflect.DeepEqual(removed, expectedRemoved) || len(added) != 0 { t.Errorf("Expected added=[], removed=%v, got added=%v removed=%v", expectedRemoved, added, removed) } } func TestDiffTools_BothEmpty(t *testing.T) { var old []string var newT []string added, removed := DiffTools(old, newT) if len(added) != 0 || len(removed) != 0 { t.Errorf("Expected no changes, got added=%v removed=%v", added, removed) } } func TestDiffTools_Duplicates(t *testing.T) { old := []string{"a", "a", "b"} newT := []string{"a", "b", "b", "c"} added, removed := DiffTools(old, newT) expectedAdded := []string{"c"} var expectedRemoved []string // ensure order does not affect the test outcome sort.Strings(added) sort.Strings(expectedAdded) sort.Strings(removed) sort.Strings(expectedRemoved) if !reflect.DeepEqual(added, expectedAdded) || !reflect.DeepEqual(removed, expectedRemoved) { t.Errorf("Expected added=%v, removed=%v, got added=%v removed=%v", expectedAdded, expectedRemoved, added, removed) } } func TestDiffTools_OrderDoesNotMatter(t *testing.T) { old := []string{"a", "b", "c"} newT := []string{"c", "b", "a"} added, removed := DiffTools(old, newT) if len(added) != 0 || len(removed) != 0 { t.Errorf("Expected no changes, got added=%v removed=%v", added, removed) } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mcpjungle/MCPJungle'

If you have feedback or need assistance with the MCP directory API, please join our Discord server