MCPcopy Create free account
hub / github.com/github/gh-aw / TestAuditDiffJSONSerialization

Function TestAuditDiffJSONSerialization

pkg/cli/audit_diff_test.go:639–684  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

637}
638
639func TestAuditDiffJSONSerialization(t *testing.T) {
640 summary1 := &RunSummary{
641 FirewallAnalysis: &FirewallAnalysis{
642 RequestsByDomain: map[string]DomainRequestStats{
643 "api.github.com:443": {Allowed: 5},
644 },
645 },
646 MCPToolUsage: &MCPToolUsageData{
647 Summary: []MCPToolSummary{
648 {ServerName: "github", ToolName: "issue_read", CallCount: 3},
649 },
650 },
651 Run: WorkflowRun{TokenUsage: 1000, Turns: 4},
652 }
653 summary2 := &RunSummary{
654 FirewallAnalysis: &FirewallAnalysis{
655 RequestsByDomain: map[string]DomainRequestStats{
656 "api.github.com:443": {Allowed: 5},
657 "new.example.com:443": {Allowed: 2},
658 },
659 },
660 MCPToolUsage: &MCPToolUsageData{
661 Summary: []MCPToolSummary{
662 {ServerName: "github", ToolName: "issue_read", CallCount: 5},
663 },
664 },
665 Run: WorkflowRun{TokenUsage: 1500, Turns: 6},
666 }
667
668 diff := computeAuditDiff(100, 200, summary1, summary2)
669
670 data, err := json.MarshalIndent(diff, "", " ")
671 require.NoError(t, err, "Should serialize AuditDiff to JSON")
672
673 var parsed AuditDiff
674 err = json.Unmarshal(data, &parsed)
675 require.NoError(t, err, "Should deserialize AuditDiff from JSON")
676
677 assert.Equal(t, int64(100), parsed.Run1ID, "Run1ID should survive serialization")
678 assert.Equal(t, int64(200), parsed.Run2ID, "Run2ID should survive serialization")
679 require.NotNil(t, parsed.FirewallDiff, "FirewallDiff should survive serialization")
680 assert.Len(t, parsed.FirewallDiff.NewDomains, 1, "New domains should survive serialization")
681 require.NotNil(t, parsed.MCPToolsDiff, "MCPToolsDiff should survive serialization")
682 require.NotNil(t, parsed.RunMetricsDiff, "RunMetricsDiff should survive serialization")
683 assert.Equal(t, 1000, parsed.RunMetricsDiff.Run1TokenUsage, "Token usage should survive serialization")
684}
685
686func TestFormatCountChange(t *testing.T) {
687 tests := []struct {

Callers

nothing calls this directly

Calls 1

computeAuditDiffFunction · 0.85

Tested by

no test coverage detected