@@ -31,7 +31,7 @@ import (
3131 "github.com/stretchr/testify/require"
3232)
3333
34- func TestBuildEvidence (t * testing.T ) {
34+ func TestBuild (t * testing.T ) {
3535 rootDir := t .TempDir ()
3636
3737 // Create test files
@@ -47,35 +47,30 @@ func TestBuildEvidence(t *testing.T) {
4747 CommitSHA : "abc123" ,
4848 }
4949
50- evidence , err := BuildEvidence (rootDir , []string {"CLAUDE.md" , ".claude/settings.json" }, gitCtx )
50+ data , err := Build (rootDir , []string {"CLAUDE.md" , ".claude/settings.json" }, gitCtx )
5151 require .NoError (t , err )
5252
53- // Verify envelope
54- assert .Equal (t , EvidenceID , evidence .ID )
55- assert .Equal (t , EvidenceSchemaURL , evidence .Schema )
56-
57- // Verify data
58- assert .Equal (t , "v1alpha" , evidence .Data .SchemaVersion )
59- assert .Equal (t , "claude" , evidence .Data .Agent .Name )
60- assert .NotEmpty (t , evidence .Data .CapturedAt )
61- assert .NotEmpty (t , evidence .Data .ConfigHash )
53+ assert .Equal (t , "v1alpha" , data .SchemaVersion )
54+ assert .Equal (t , "claude" , data .Agent .Name )
55+ assert .NotEmpty (t , data .CapturedAt )
56+ assert .NotEmpty (t , data .ConfigHash )
6257
6358 // Verify git context
64- require .NotNil (t , evidence . Data .GitContext )
65- assert .Equal (t , "https://github.com/org/repo" , evidence . Data .GitContext .Repository )
66- assert .Equal (t , "abc123" , evidence . Data .GitContext .CommitSHA )
59+ require .NotNil (t , data .GitContext )
60+ assert .Equal (t , "https://github.com/org/repo" , data .GitContext .Repository )
61+ assert .Equal (t , "abc123" , data .GitContext .CommitSHA )
6762
6863 // Verify config files
69- require .Len (t , evidence . Data .ConfigFiles , 2 )
64+ require .Len (t , data .ConfigFiles , 2 )
7065
71- cf1 := evidence . Data .ConfigFiles [0 ]
66+ cf1 := data .ConfigFiles [0 ]
7267 assert .Equal (t , "CLAUDE.md" , cf1 .Path )
7368 assert .Equal (t , int64 (len (file1Content )), cf1 .Size )
7469 hash1 := sha256 .Sum256 (file1Content )
7570 assert .Equal (t , hex .EncodeToString (hash1 [:]), cf1 .SHA256 )
7671 assert .Equal (t , base64 .StdEncoding .EncodeToString (file1Content ), cf1 .Base64Content )
7772
78- cf2 := evidence . Data .ConfigFiles [1 ]
73+ cf2 := data .ConfigFiles [1 ]
7974 assert .Equal (t , ".claude/settings.json" , cf2 .Path )
8075 hash2 := sha256 .Sum256 (file2Content )
8176 assert .Equal (t , hex .EncodeToString (hash2 [:]), cf2 .SHA256 )
@@ -87,53 +82,58 @@ func TestBuildEvidence(t *testing.T) {
8782 }
8883 sort .Strings (hashes )
8984 combined := sha256 .Sum256 ([]byte (strings .Join (hashes , "" )))
90- assert .Equal (t , hex .EncodeToString (combined [:]), evidence . Data .ConfigHash )
85+ assert .Equal (t , hex .EncodeToString (combined [:]), data .ConfigHash )
9186}
9287
93- func TestBuildEvidenceWithoutGitContext (t * testing.T ) {
88+ func TestBuildWithoutGitContext (t * testing.T ) {
9489 rootDir := t .TempDir ()
9590 require .NoError (t , os .WriteFile (filepath .Join (rootDir , "CLAUDE.md" ), []byte ("content" ), 0o600 ))
9691
97- evidence , err := BuildEvidence (rootDir , []string {"CLAUDE.md" }, nil )
92+ data , err := Build (rootDir , []string {"CLAUDE.md" }, nil )
9893 require .NoError (t , err )
9994
100- assert .Nil (t , evidence . Data .GitContext )
101- assert .Len (t , evidence . Data .ConfigFiles , 1 )
95+ assert .Nil (t , data .GitContext )
96+ assert .Len (t , data .ConfigFiles , 1 )
10297}
10398
104- func TestBuildEvidenceJSONFormat (t * testing.T ) {
99+ func TestBuildJSONFormat (t * testing.T ) {
105100 rootDir := t .TempDir ()
106101 require .NoError (t , os .WriteFile (filepath .Join (rootDir , "CLAUDE.md" ), []byte ("content" ), 0o600 ))
107102
108- evidence , err := BuildEvidence (rootDir , []string {"CLAUDE.md" }, nil )
103+ data , err := Build (rootDir , []string {"CLAUDE.md" }, nil )
109104 require .NoError (t , err )
110105
111- // Verify it marshals to valid JSON with the correct envelope field
112- jsonData , err := json .Marshal (evidence )
106+ // Verify it marshals to valid JSON with top-level fields (no envelope)
107+ jsonData , err := json .Marshal (data )
113108 require .NoError (t , err )
114109
115110 var raw map [string ]any
116111 require .NoError (t , json .Unmarshal (jsonData , & raw ))
117112
118- assert .Equal (t , EvidenceID , raw ["chainloop.material.evidence.id" ])
119- assert .Equal (t , EvidenceSchemaURL , raw ["schema" ])
120- assert .NotNil (t , raw ["data" ])
113+ assert .NotNil (t , raw ["schema_version" ])
114+ assert .NotNil (t , raw ["agent" ])
115+ assert .NotNil (t , raw ["config_hash" ])
116+ assert .NotNil (t , raw ["captured_at" ])
117+ assert .NotNil (t , raw ["config_files" ])
118+ // Ensure no envelope fields
119+ assert .Nil (t , raw ["chainloop.material.evidence.id" ])
120+ assert .Nil (t , raw ["data" ])
121121}
122122
123- func TestBuildEvidenceRejectsSymlinksEscapingRoot (t * testing.T ) {
123+ func TestBuildRejectsSymlinksEscapingRoot (t * testing.T ) {
124124 rootDir := t .TempDir ()
125125 outsideDir := t .TempDir ()
126126
127127 // Create a file outside rootDir and a symlink pointing to it
128128 require .NoError (t , os .WriteFile (filepath .Join (outsideDir , "secret.txt" ), []byte ("secret" ), 0o600 ))
129129 require .NoError (t , os .Symlink (filepath .Join (outsideDir , "secret.txt" ), filepath .Join (rootDir , "CLAUDE.md" )))
130130
131- _ , err := BuildEvidence (rootDir , []string {"CLAUDE.md" }, nil )
131+ _ , err := Build (rootDir , []string {"CLAUDE.md" }, nil )
132132 require .Error (t , err )
133133 assert .Contains (t , err .Error (), "path escapes root directory via symlink" )
134134}
135135
136- func TestBuildEvidenceRejectsSymlinkedParentDir (t * testing.T ) {
136+ func TestBuildRejectsSymlinkedParentDir (t * testing.T ) {
137137 rootDir := t .TempDir ()
138138 outsideDir := t .TempDir ()
139139
@@ -145,16 +145,16 @@ func TestBuildEvidenceRejectsSymlinkedParentDir(t *testing.T) {
145145 // Symlink .claude -> outside directory
146146 require .NoError (t , os .Symlink (outsideClaude , filepath .Join (rootDir , ".claude" )))
147147
148- _ , err := BuildEvidence (rootDir , []string {".claude/settings.json" }, nil )
148+ _ , err := Build (rootDir , []string {".claude/settings.json" }, nil )
149149 require .Error (t , err )
150150 assert .Contains (t , err .Error (), "path escapes root directory via symlink" )
151151}
152152
153- func TestBuildEvidenceAllowsRegularFilesInRoot (t * testing.T ) {
153+ func TestBuildAllowsRegularFilesInRoot (t * testing.T ) {
154154 rootDir := t .TempDir ()
155155 require .NoError (t , os .WriteFile (filepath .Join (rootDir , "CLAUDE.md" ), []byte ("content" ), 0o600 ))
156156
157- evidence , err := BuildEvidence (rootDir , []string {"CLAUDE.md" }, nil )
157+ data , err := Build (rootDir , []string {"CLAUDE.md" }, nil )
158158 require .NoError (t , err )
159- assert .Len (t , evidence . Data .ConfigFiles , 1 )
159+ assert .Len (t , data .ConfigFiles , 1 )
160160}
0 commit comments