@@ -79,19 +79,18 @@ func TestLocalBackend_Name(t *testing.T) {
7979 assert .Equal (t , "Local (/tmp/test)" , backend .Name ())
8080}
8181
82- func TestLocalBackend_Upload_ComponentVSA (t * testing.T ) {
82+ func TestLocalBackend_Upload (t * testing.T ) {
8383 // Create temporary directory
8484 tempDir := t .TempDir ()
8585 backend := & LocalBackend {basePath : tempDir }
8686
8787 ctx := context .Background ()
88- testEnvelope := `{"payload":"test-component","signatures":[{"sig":"test-sig"}]}`
89- imageRef := "quay.io/test/image@sha256:abc123def456"
88+ testEnvelope := `{"payload":"test-vsa","signatures":[{"sig":"test-sig"}]}`
9089
91- err := backend .Upload (ctx , []byte (testEnvelope ), imageRef )
90+ err := backend .Upload (ctx , []byte (testEnvelope ))
9291 require .NoError (t , err )
9392
94- // Verify file was created (should contain hash of imageRef)
93+ // Verify file was created
9594 files , err := os .ReadDir (tempDir )
9695 require .NoError (t , err )
9796 require .Len (t , files , 1 )
@@ -108,126 +107,69 @@ func TestLocalBackend_Upload_ComponentVSA(t *testing.T) {
108107 assert .Equal (t , testEnvelope , string (content ))
109108}
110109
111- func TestLocalBackend_Upload_SnapshotVSA (t * testing.T ) {
112- // Create temporary directory
113- tempDir := t .TempDir ()
114- backend := & LocalBackend {basePath : tempDir }
115-
116- ctx := context .Background ()
117- testEnvelope := `{"payload":"test-snapshot","signatures":[{"sig":"test-sig"}]}`
118- imageRef := "" // Empty for snapshot VSAs
119-
120- err := backend .Upload (ctx , []byte (testEnvelope ), imageRef )
121- require .NoError (t , err )
122-
123- // Verify file was created with snapshot naming
124- files , err := os .ReadDir (tempDir )
125- require .NoError (t , err )
126- require .Len (t , files , 1 )
127-
128- filename := files [0 ].Name ()
129- assert .True (t , strings .HasPrefix (filename , "vsa-snapshot-" ))
130- assert .True (t , strings .HasSuffix (filename , ".json" ))
131-
132- // Verify file content
133- filePath := filepath .Join (tempDir , filename )
134- content , err := os .ReadFile (filePath )
135- require .NoError (t , err )
136- assert .Equal (t , testEnvelope , string (content ))
137- }
138-
139110func TestLocalBackend_Upload_FilenameUniqueness (t * testing.T ) {
140111 // Create temporary directory
141112 tempDir := t .TempDir ()
142113 backend := & LocalBackend {basePath : tempDir }
143114
144115 ctx := context .Background ()
145116 testEnvelope := `{"payload":"test","signatures":[{"sig":"test"}]}`
146- imageRef := "quay.io/test/image@sha256:same"
147117
148118 // Upload same content multiple times
149- err1 := backend .Upload (ctx , []byte (testEnvelope ), imageRef )
119+ err1 := backend .Upload (ctx , []byte (testEnvelope ))
150120 require .NoError (t , err1 )
151121
152- err2 := backend .Upload (ctx , []byte (testEnvelope ), imageRef )
122+ err2 := backend .Upload (ctx , []byte (testEnvelope ))
153123 require .NoError (t , err2 )
154124
155125 // Should have created two different files due to timestamps
156126 files , err := os .ReadDir (tempDir )
157127 require .NoError (t , err )
158128 assert .Len (t , files , 2 )
159129
160- // Both should be valid component VSA files
130+ // Both should be valid VSA files with proper naming
161131 for _ , file := range files {
162132 assert .True (t , strings .HasPrefix (file .Name (), "vsa-" ))
163133 assert .True (t , strings .HasSuffix (file .Name (), ".json" ))
164- assert .False (t , strings . HasPrefix ( file .Name (), "vsa-snapshot-" ))
134+ assert .Contains (t , file .Name (), "-" ) // Should have timestamp and hash parts
165135 }
166- }
167136
168- func TestLocalBackend_Upload_SnapshotFilenameUniqueness (t * testing.T ) {
169- // Create temporary directory
170- tempDir := t .TempDir ()
171- backend := & LocalBackend {basePath : tempDir }
172-
173- ctx := context .Background ()
174- testEnvelope := `{"payload":"test-snapshot","signatures":[{"sig":"test"}]}`
175- imageRef := "" // Empty for snapshots
176-
177- // Upload multiple snapshot VSAs
178- err1 := backend .Upload (ctx , []byte (testEnvelope ), imageRef )
179- require .NoError (t , err1 )
180-
181- err2 := backend .Upload (ctx , []byte (testEnvelope ), imageRef )
182- require .NoError (t , err2 )
183-
184- // Should have created two different files due to timestamps
185- files , err := os .ReadDir (tempDir )
186- require .NoError (t , err )
187- assert .Len (t , files , 2 )
188-
189- // Both should be snapshot VSA files
190- for _ , file := range files {
191- assert .True (t , strings .HasPrefix (file .Name (), "vsa-snapshot-" ))
192- assert .True (t , strings .HasSuffix (file .Name (), ".json" ))
193- }
137+ // Verify filenames are different (uniqueness)
138+ assert .NotEqual (t , files [0 ].Name (), files [1 ].Name ())
194139}
195140
196- func TestLocalBackend_Upload_WriteError (t * testing.T ) {
197- // Use non-existent directory to trigger write error (without creating it first)
198- backend := & LocalBackend {basePath : "/non/existent/path" }
199-
141+ func TestLocalBackend_Upload_DirectoryHandling (t * testing.T ) {
200142 ctx := context .Background ()
201143 testEnvelope := `{"payload":"test","signatures":[{"sig":"test"}]}`
202- imageRef := "test-image@sha256:abc123"
203144
204- err := backend .Upload (ctx , []byte (testEnvelope ), imageRef )
205- assert .Error (t , err )
206- assert .Contains (t , err .Error (), "failed to create directory" )
207- }
145+ t .Run ("successful directory creation" , func (t * testing.T ) {
146+ // Create base temp directory
147+ baseDir := t .TempDir ()
208148
209- func TestLocalBackend_Upload_DirectoryCreation ( t * testing. T ) {
210- // Create base temp directory
211- baseDir := t . TempDir ()
149+ // Use a subdirectory that doesn't exist yet
150+ subDir := filepath . Join ( baseDir , "subdir" , "nested" )
151+ backend := & LocalBackend { basePath : subDir }
212152
213- // Use a subdirectory that doesn't exist yet
214- subDir := filepath . Join ( baseDir , "subdir" , "nested" )
215- backend := & LocalBackend { basePath : subDir }
153+ // This should create the directory structure
154+ err := backend . Upload ( ctx , [] byte ( testEnvelope ) )
155+ require . NoError ( t , err )
216156
217- ctx := context . Background ()
218- testEnvelope := `{"payload":"test","signatures":[{"sig":"test"}]}`
219- imageRef := "test-image@sha256:abc123"
157+ // Verify directory was created
158+ _ , err = os . Stat ( subDir )
159+ assert . NoError ( t , err )
220160
221- // This should create the directory structure
222- err := backend .Upload (ctx , []byte (testEnvelope ), imageRef )
223- require .NoError (t , err )
161+ // Verify file was created
162+ files , err := os .ReadDir (subDir )
163+ require .NoError (t , err )
164+ assert .Len (t , files , 1 )
165+ })
224166
225- // Verify directory was created
226- _ , err = os . Stat ( subDir )
227- assert . NoError ( t , err )
167+ t . Run ( "directory creation error" , func ( t * testing. T ) {
168+ // Use non-existent directory to trigger write error (without creating it first )
169+ backend := & LocalBackend { basePath : "/non/existent/path" }
228170
229- // Verify file was created
230- files , err := os . ReadDir ( subDir )
231- require . NoError (t , err )
232- assert . Len ( t , files , 1 )
171+ err := backend . Upload ( ctx , [] byte ( testEnvelope ))
172+ assert . Error ( t , err )
173+ assert . Contains (t , err . Error (), "failed to create directory" )
174+ } )
233175}
0 commit comments